English
Related papers

Related papers: Finding $\forall\exists$ Hyperbugs using Symbolic …

200 papers

Hyperproperties are correctness conditions for labelled transition systems that are more expressive than traditional trace properties, with particular relevance to security. Recently, Attiya and Enea studied a notion of strong observational…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-08-02 John Derrick , Simon Doherty , Brijesh Dongol , Gerhard Schellhorn , Heike Wehrheim

Runtime verification is checking whether a system execution satisfies or violates a given correctness property. A procedure that automatically, and typically on the fly, verifies conformance of the system's behavior to the specified…

Software Engineering · Computer Science 2013-03-06 Mikhail Chupilko , Alexander Kamkin

In this paper, we present a novel marriage of static and dynamic analysis. Given a large code base with many functions and a mature test suite, we propose using static analysis to find functions 1) with assertions or other evident…

Software Engineering · Computer Science 2016-09-22 Mohammad Amin Alipour , Alex Groce , Chaoqiang Zhang , Anahita Sanadaji , Gokul Caushik

Symbolic execution is a program analysis technique commonly utilized to determine whether programs violate properties and, in case violations are found, to generate inputs that can trigger them. Used in the context of security properties…

Programming Languages · Computer Science 2023-01-20 Ignacio Tiraboschi , Tamara Rezk , Xavier Rival

Symbolic execution has shown its ability to find security-relevant flaws in software, but faces significant scalability challenges. There is a commonly held belief that manual intervention by an expert can help alleviate these limiting…

Software Engineering · Computer Science 2018-05-10 John Galea , Sean Heelan , Daniel Neville , Daniel Kroening

The problem of mechanically formalizing and proving metatheoretic properties of programming language calculi, type systems, operational semantics, and related formal systems has received considerable attention recently. However, the dual…

Programming Languages · Computer Science 2017-05-29 James Cheney , Alberto Momigliano

Trace properties, which are sets of execution traces, are often used to analyze systems, but their expressiveness is limited. Clarkson and Schneider defined hyperproperties as a generalization of trace properties to sets of sets of traces.…

Logic in Computer Science · Computer Science 2023-10-03 Bernd Finkbeiner , Ernst-Rüdiger Olderog

A long-standing open challenge for automated program repair is the overfitting problem, which is caused by having insufficient or incomplete specifications to validate whether a generated patch is correct or not. Most available repair…

Software Engineering · Computer Science 2021-11-11 Omar I. Al-Bataineh , Anastasiia Grishina , Leon Moonen

Hyperproperties generalize trace properties by expressing relations between multiple computations. Hyperpropertes include policies from information-flow security, like observational determinism or non-interference, and many other system…

Logic in Computer Science · Computer Science 2021-07-27 Bernd Finkbeiner

Tracing back the instruction execution sequence to debug a multicore system can be very time-consuming because the relationships of the instructions can be very complex. For instructions that cannot be checked by the environment immediately…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-09-09 Yuzhe Luo , Xin Yu

Hyperproperties relate multiple computation traces to each other. Model checkers for hyperproperties thus return, in case a system model violates the specification, a set of traces as a counterexample. Fixing the erroneous relations between…

Logic in Computer Science · Computer Science 2022-06-07 Norine Coenen , Raimund Dachselt , Bernd Finkbeiner , Hadar Frenkel , Christopher Hahn , Tom Horak , Niklas Metzger , Julian Siber

Hoare-style program logics are a popular and effective technique for software verification. Relational program logics are an instance of this approach that enables reasoning about relationships between the execution of two or more programs.…

Programming Languages · Computer Science 2022-09-09 Robert Dickerson , Qianchuan Ye , Michael K. Zhang , Benjamin Delaware

Control flow in unstructured programs can be complex and dynamic, which makes static analysis difficult. Yet, automated reasoning about unstructured control flow is important when certifying properties of binary (machine) code in…

Programming Languages · Computer Science 2026-01-15 Andreas Lindner , Karl Palmskog , Scott Constable , Mads Dam , Roberto Guanciale , Hamed Nemati

Model-based mutation testing uses altered test models to derive test cases that are able to reveal whether a modelled fault has been implemented. This requires conformance checking between the original and the mutated model. This paper…

Software Engineering · Computer Science 2012-02-29 Bernhard K. Aichernig , Elisabeth Jöbstl

In runtime verification, pattern matching, which searches for occurrences of a specific pattern within a word, provides more information than a simple violation detection of the monitored property, by locating concrete evidence of the…

Formal Languages and Automata Theory · Computer Science 2025-07-17 Masaki Waga , Étienne André

Model checkers provide algorithms for proving that a mathematical model of a system satisfies a given specification. In case of a violation, a counterexample that shows the erroneous behavior is returned. Understanding these counterexamples…

Human-Computer Interaction · Computer Science 2021-08-10 Tom Horak , Norine Coenen , Niklas Metzger , Christopher Hahn , Tamara Flemisch , Julián Méndez , Dennis Dimov , Bernd Finkbeiner , Raimund Dachselt

One of the problems of formal verification is that it is not functionally complete due the incompleteness of specifications. An implementation meeting an incomplete specification may still have a lot of bugs. In testing, this issue is…

Logic in Computer Science · Computer Science 2020-10-14 Eugene Goldberg

Microarchitectural security verification of software has seen the emergence of two broad classes of approaches. The first is based on semantic security properties (e.g., non-interference) which are verified for a given program and a…

Cryptography and Security · Computer Science 2024-06-11 Adwait Godbole , Yatin A. Manerkar , Sanjit A. Seshia

Information-flow control mechanisms are difficult both to design and to prove correct. To reduce the time wasted on doomed proof attempts due to broken definitions, we advocate modern random testing techniques for finding counterexamples…

We design various logics for proving hyper properties of iterative programs by application of abstract interpretation principles. In part I, we design a generic, structural, fixpoint abstract interpreter parameterized by an algebraic…

Logic in Computer Science · Computer Science 2024-11-19 Patrick Cousot , Jeffery Wang