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… 
Deductive Verification of Distributed Protocols in First-Order Logic
  • Oded Padon
  • Computer Science
    2018 Formal Methods in Computer Aided Design (FMCAD)
  • 2018
TLDR
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
TLDR
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
TLDR
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
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
TLDR
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?
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
  • Oded Padon
  • Computer Science
    2018 Formal Methods in Computer Aided Design (FMCAD)
  • 2018
TLDR
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
  • M. Taube, Giuliano Losa, Doug Woos
  • Computer Science
    Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
  • 2018
TLDR
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
TLDR
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
TLDR
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
TLDR
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
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
  • M. Abadi
  • Computer Science, Philosophy
    Theor. Comput. Sci.
  • 1989
Modular reasoning about heap paths via effectively propositional formulas
TLDR
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
TLDR
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
TLDR
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.
...
...