# 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}
}
• Published in SAS 29 August 2018
• Computer Science
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 Science
2018 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 Science
VSTTE
• 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 Science
TACAS
• 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 Science
CAV
• 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?
• Economics
TACAS
• 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 Science
CAV
• 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 Science
FMBC@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 Science
SAS
• 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 Science
VMCAI
• 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 Science
2018 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 Science
Proceedings 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 Science
PLDI 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
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 Science
SOSP
• 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 Science
CAV
• 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
The Power of Temporal Proofs
• Computer Science, Philosophy
Theor. Comput. Sci.
• 1989
Modular reasoning about heap paths via effectively propositional formulas
• Computer Science
POPL 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 Science
2018 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.