# Deductive Verification in Decidable Fragments with Ivy

@inproceedings{McMillan2018DeductiveVI, title={Deductive Verification in Decidable Fragments with Ivy}, author={Kenneth L. McMillan and Oded Padon}, booktitle={SAS}, year={2018} }

This paper surveys the work to date on Ivy, a language and a tool for the formal specification and verification of distributed systems. Ivy supports deductive verification using automated provers, model checking, automated testing, manual theorem proving and generation of executable code. In order to achieve greater verification productivity, a key design goal for Ivy is to allow the engineer to apply automated provers in the realm in which their performance is relatively predictable, stable…

## 17 Citations

Deductive Verification of Distributed Protocols in First-Order Logic

- Computer Science2018 Formal Methods in Computer Aided Design (FMCAD)
- 2018

Formal verification of infinite-state systems, and distributed systems in particular, is a long standing research goal and the unpredictability of automated provers presents a major hurdle to usability of these tools.

Comprehensive Reachability Refutation and Witnesses Generation via Language and Tooling Co-Design

- Computer Science
- 2021

A core programming language calculus, BosqeIR, is presented that is uniquely suited for automated reasoning and a program checker BSQChk is constructed that is focused on the pragmatic task of providing actionable results to a developer for possible program errors.

Seamless Interactive Program Verification

- Computer ScienceVSTTE
- 2019

A novel user interaction concept that allows the user to interact with the verification system on different abstraction levels and on different verification/proof artifacts.

Bounded Quantifier Instantiation for Checking Inductive Invariants

- Computer ScienceTACAS
- 2017

We consider the problem of checking whether a proposed invariant \(\varphi \) expressed in first-order logic with quantifier alternation is inductive, i.e. preserved by a piece of code. While the…

Verification of Threshold-Based Distributed Algorithms by Decomposition to Decidable Logics

- Computer ScienceCAV
- 2019

This work develops a new methodology for decomposing the verification task of such protocols into two decidable logics: EPR and BAPA, and develops an algorithm for automatically generating the properties needed for verifying a given protocol, facilitating fully automated deductive verification.

What’s Decidable About Program Verification Modulo Axioms?

- EconomicsTACAS
- 2020

The comprehensive results unearth a rich landscape that shows that though several axiom classes admit decidability for coherent programs, coherence is not a panacea as several others continue to be undecidable.

Inferring Inductive Invariants from Phase Structures

- Computer ScienceCAV
- 2019

This paper proposes user-guided invariant inference based on phase invariants, which capture the different logical phases of the protocol, and finds that phase structures are pleasantly well matched to the intuitive reasoning routinely used by domain experts to understand why distributed protocols are correct.

On the Formal Verification of the Stellar Consensus Protocol

- Computer ScienceFMBC@CAV
- 2020

This paper believes this is the first mechanized proof of both safety and liveness, specified in LTL, for a deployed BFT protocol.

Stratified Guarded First-Order Transition Systems

- Computer ScienceSAS
- 2020

This work presents three subclasses of first-order transition systems where every universal invariant can effectively be decided via fixpoint iteration, defined in terms of syntactical restrictions: negation, stratification and guardedness.

How to Win First-Order Safety Games

- Computer ScienceVMCAI
- 2020

The usefulness of the approach is demonstrated by automatically inferring nontrivial FO specifications for message passing in a leader election protocol as well as for a conference management system to exclude unapp appreciated disclosure of reports.

## References

SHOWING 1-10 OF 41 REFERENCES

Deductive Verification of Distributed Protocols in First-Order Logic

- Computer Science2018 Formal Methods in Computer Aided Design (FMCAD)
- 2018

Formal verification of infinite-state systems, and distributed systems in particular, is a long standing research goal and the unpredictability of automated provers presents a major hurdle to usability of these tools.

Modularity for decidability of deductive verification with applications to distributed systems

- Computer ScienceProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
- 2018

This work proposes to solve the problem of unpredictablility of automated provers in handling quantified formulas by using a modular proof methodology that allows for decidable verification conditions, resulting in a more practical verification approach.

Ivy: safety verification by interactive generalization

- Computer SciencePLDI 2016
- 2016

Ivy's key principle is that whenever verification fails, Ivy graphically displays a concrete counterexample to induction, and the user then interactively guides generalization from this countereXample until an inductive invariant is found.

Dafny: An Automatic Program Verifier for Functional Correctness

- Computer ScienceLPAR
- 2010

A tour of the language and verifier Dafny, which has been used to verify the functional correctness of a number of challenging pointer-based programs, is given and the full functional specification of the Schorr-Waite algorithm is shown.

IronFleet: proving practical distributed systems correct

- Computer ScienceSOSP
- 2015

A methodology for building practical and provably correct distributed systems based on a unique blend of TLA-style state-machine refinement and Hoare-logic verification is described, which proves that each obeys a concise safety specification, as well as desirable liveness requirements.

Liveness and Acceleration in Parameterized Verification

- Computer ScienceCAV
- 2000

The paper considers the problem of uniform verification of parameterizedsystems by symbolic model checking, using formulas in fs1s (a syntactic variant of the 2nd order logic ws1s) for the symbolic…

Modular reasoning about heap paths via effectively propositional formulas

- Computer SciencePOPL 2014
- 2014

This paper tackles the problem of procedure-modular verification of reachability properties of heap-manipulating programs using efficient decision procedures that are complete, and implements a tool atop Z3 and reports on preliminary experiments that establish the correctness of several programs that manipulate linked data structures.

Verification of concurrent programs: a temporal proof system

- Computer Science
- 1983

A proof system based on temporal logic is presented for proving properties of concurrent programs based on the shared-variables computation model and derived proof principles for these classes of properties obtained and lead to a compact representation of proofs.

Temporal Prophecy for Proving Temporal Properties of Infinite-State Systems

- Computer Science2018 Formal Methods in Computer Aided Design (FMCAD)
- 2018

This paper introduces a mechanism for tackling imprecision in temporal verification, inspired by prophecy variables, and integrates its approach into the Ivy deductive verification system, and shows that it can handle challenging temporal verification examples.