Verifying Relational Properties using Trace Logic

06/24/2019
by   Gilles Barthe, et al.
0

We present a logical framework for the verification of relational properties in imperative programs. Our work is motivated by relational properties which come from security applications and often require reasoning about formulas with quantifier-alternations. Our framework reduces verification of relational properties of imperative programs to a validity problem into trace logic, an expressive instance of first-order predicate logic. Trace logic draws its expressiveness from its syntax, which allows expressing properties over computation traces. Its axiomatization supports fine-grained reasoning about intermediate steps in program execution, notably loop iterations. We present an algorithm to encode the semantics of programs as well as their relational properties in trace logic, and then show how first-order theorem proving can be used to reason about the resulting trace logic formulas. Our work is implemented in the tool Rapid and evaluated with examples coming from the security field.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/04/2020

Trace Logic for Inductive Loop Reasoning

We propose trace logic, an instance of many-sorted first-order logic, to...
research
03/20/2019

Quantum Relational Hoare Logic with Expectations

We present a variant of the quantum relational Hoare logic from (Unruh, ...
research
03/25/2023

The WhyRel Prototype for Relational Verification

Verifying relations between programs arises as a task in various verific...
research
05/10/2020

Verification of Quantitative Hyperproperties Using Trace Enumeration Relations

Many important cryptographic primitives offer probabilistic guarantees o...
research
11/17/2022

Towards Trace-based Deductive Verification (Tech Report)

Contracts specifying a procedure's behavior in terms of pre- and postcon...
research
02/07/2020

RHLE: Relational Reasoning for Existential Program Verification

Reasoning about nondeterministic programs requires a specification of ho...
research
02/17/2022

Scheduling Complexity of Interleaving Search

miniKanren is a lightweight embedded language for logic and relational p...

Please sign up or login with your details

Forgot password? Click here to reset