Abstract
AbstractFormal software verification relies on properties of functions and built-in operators. Unless these properties are handled directly by decision procedures, an automated verifier includes them in verification conditions by supplying them as universally quantified axioms or theorems. The use of quantifiers sometimes leads to bad performance, especially if automation causes the quantifiers to be instantiated many times.This paper proposes free facts as an alternative to some axioms. A free fact is a pre-instantiated axiom that is generated alongside the formulas in a verification condition that can benefit from the facts. Replacing an axiom with free facts thus reduces the number of quantifiers in verification conditions. Free facts are statically triggered by syntactic occurrences of certain patterns in the proof terms. This is less powerful than the dynamically triggered patterns used during proof construction. However, the paper shows that free facts perform well in practice.
Publisher
Springer Nature Switzerland
Reference41 articles.
1. Dafny 2024 - POPL 2024. https://popl24.sigplan.org/home/dafny-2024#event-overview. Accessed 15 Mar 2024
2. Understanding how F* uses Z3 - Proof-Oriented Programming in F* documentation. https://fstar-lang.org/tutorial/book/under_the_hood/uth_smt.html. Accessed 01 July 2024
3. Dafny Documentation (2024). https://dafny.org/dafny/DafnyRef/DafnyRef.html. Accessed 18 Mar 2024
4. Lecture Notes in Computer Science;K Bansal,2015
5. Barbosa, H., et al.: cvc5: a versatile and industrial-strength SMT solver. In: TACAS 2022. LNCS, vol. 13243, pp. 415–442. Springer, Cham (2022). https://doi.org/10.1007/978-3-030-99524-9_24