Abstract
We consider the decidability of the verification problem of programs modulo axioms — automatically verifying whether programs satisfy their assertions, when the function and relation symbols are interpreted as arbitrary functions and relations that satisfy a set of first-order axioms. Though verification of uninterpreted programs (with no axioms) is already undecidable, a recent work introduced a subclass of coherent uninterpreted programs, and showed that they admit decidable verification [26]. We undertake a systematic study of various natural axioms for relations and functions, and study the decidability of the coherent verification problem. Axioms include relations being reflexive, symmetric, transitive, or total order relations, functions restricted to being associative, idempotent or commutative, and combinations of such axioms as well. Our 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.
Highlights
Programs are proved correct against safety specifications typically by induction— the induction hypothesis is specified using inductive invariants of the program, and one proves that the reachable states of the program stays within the region defined by the invariants, inductively
We show that combinations of reflexivity, irreflexivity, symmetry, and transitivity, admit a decidable verification problem for coherent program
We observe that in the absence of any assumes of the form ¬R(x, y) the verification problem modulo strict total orders reduces that modulo strict partial orders, giving us the following (ARSTO denote the axioms of irreflexivity, transitivty and totality for the relation R)
Summary
Programs are proved correct against safety specifications typically by induction— the induction hypothesis is specified using inductive invariants of the program, and one proves that the reachable states of the program stays within the region defined by the invariants, inductively. The results of [26] can be seen as an approximate/abstraction-based verification method in practice — if the program verifies assuming functions and relations to be uninterpreted, the program is correct for any data domain. The early-assumes condition is with respect to the axioms — if the program execution observes a new assumption of equality or a relation holding between terms, we require that any equality entailed newly by it, the previous assumptions and the axioms A do not involve a dropped term This is a smooth extension of the notion of coherence from [26]; when A = ∅, we essentially retrieve the notion from [26]. The decidability results established for properties of individual relation or function symbols discussed above can be combined to yield decidable verification modulo a set of axioms. The verification of coherent programs with respect to models where relational symbols satisfy some subset of reflexivity/irreflexivity/symmetery/transitivity axioms or none, and function symbols are either uninterpreted, commutative, or idempotent, is decidable. Due to the large number of results and technically involved proofs, we give only the main theorems and proof gists for some of these in the paper; details can be found in [27]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.