DeepAI AI Chat
Log In Sign Up

Reductions for Automated Hypersafety Verification

by   Azadeh Farzan, et al.

We propose an automated verification technique for hypersafety properties, which express sets of valid interrelations between multiple finite runs of a program. The key observation is that constructing a proof for a small representative set of the runs of the product program (i.e. the product of the several copies of the program by itself), called a reduction, is sufficient to formally prove the hypersafety property about the program. We propose an algorithm based on a counterexample-guided refinement loop that simultaneously searches for a reduction and a proof of the correctness for the reduction. We demonstrate that our tool Weaver is very effective in verifying a diverse array of hypersafety properties for a diverse class of input programs.


page 1

page 2

page 3

page 4


Reductions for Safety Proofs (Extended Version)

Program reductions are used widely to simplify reasoning about the corre...

Putting the Squeeze on Array Programs: Loop Verification via Inductive Rank Reduction

Automatic verification of array manipulating programs is a challenging p...

Verification of a Generative Separation Kernel

We present a formal verification of the functional correctness of the Mu...

LTL under reductions with weaker conditions than stutter-invariance

Verification of properties expressed as-regular languages such as LTL ca...

A Failed Proof Can Yield a Useful Test

A successful automated program proof is, in software verification, the u...

Understanding Counterexamples for Relational Properties with DIbugger

Software verification is a tedious process that involves the analysis of...

RustHorn: CHC-based Verification for Rust Programs (full version)

Reduction to the satisfiability problem for constrained Horn clauses (CH...