scholarly journals Corrigendum: Soundness and Completeness of an Axiom System for Program Verification

1981 ◽  
Vol 10 (3) ◽  
pp. 612-612 ◽  
Author(s):  
Stephen A. Cook
2021 ◽  
Vol 33 (4) ◽  
pp. 177-194
Author(s):  
Rafael Faritovich Sadykov ◽  
Mikhail Usamovich Mandrykin

The process of developing C programs is quite often prone to errors related to the uses of pointer arithmetic and operations on memory addresses. This promotes a need in developing various tools for automated program verification. One of the techniques frequently employed by those tools is invocation of appropriate decision procedures implemented within existing SMT-solvers. But at the same time both the SMT standard and most existing SMT-solvers lack the relevant logics (combinations of logical theories) for directly and precisely modelling the semantics of pointer operations in C. One of the possible ways to support these logics is to implement them in an SMT solver, but this approach can be time-consuming (as requires modifying the solver’s source code), inflexible (introducing any changes to the theory’s signature or semantics can be unreasonably hard) and limited (every solver has to be supported separately). Another way is to design and implement custom quantifier instantiation strategies. These strategies can be then used to translate formulas in the desired theory combinations to formulas in well-supported decidable logics such as QF_UFLIA. In this paper, we present an instantiation procedure for translating formulas in the theory of bounded pointer arithmetic into the QF_UFLIA logic. We formally proved soundness and completeness of our instantiation procedure in Isabelle/HOL. The paper presents an informal description of this proof of the proposed procedure. The theory of bounded pointer arithmetic itself was formulated based on known errors regarding the correct use of pointer arithmetic operations in industrial code as well as the semantics of these operations specified in the C standard. Similar procedure can also be defined for a practically relevant fragment of the theory of bit vectors (monotone propositional combinations of equalities between bitwise expressions). Our approach is sufficient to obtain efficient decision procedures implemented as Isabelle/HOL proof methods for several decidable logical theories used in C program verification by relying on the existing capabilities of well-known SMT solvers, such as Z3 and proof reconstruction capabilities of the Isabelle/HOL proof assistant.


2021 ◽  
Vol 43 (4) ◽  
pp. 1-54
Author(s):  
Yusuke Matsushita ◽  
Takeshi Tsukada ◽  
Naoki Kobayashi

Reduction to satisfiability of constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. Current CHC-based methods, however, do not work very well for pointer-manipulating programs, especially those with dynamic memory allocation. This article presents a novel reduction of pointer-manipulating Rust programs into CHCs, which clears away pointers and memory states by leveraging Rust’s guarantees on permission. We formalize our reduction for a simplified core of Rust and prove its soundness and completeness. We have implemented a prototype verifier for a subset of Rust and confirmed the effectiveness of our method.


1987 ◽  
Vol 16 (220) ◽  
Author(s):  
K. Lodaya ◽  
P. S. Thiagarajan

<p>This paper introduces a non-interleaved model for the behaviour of distributed computing systems, and an accompanying temporal logic with an explicit treatment of concurrency (based on a notion of local rather than global states).</p><p>A subclass of event structures (called n-agent event structures) is used as the underlying model -- intended to describe the computational behaviour of n communicating, sequential (and possibly non-deterministic) agents. The logic is centered around indexed modalities to describe the states of knowledge of the individual agents during such a computation.</p><p>An axiom system for the logic is presented, and a full proof of its soundness and completeness (Henkin style proof) is given.</p>


2021 ◽  
Vol 22 (3) ◽  
pp. 1-16
Author(s):  
Andrej Dudenhefner ◽  
Paweł Urzyczyn

We propose a notion of the Kripke-style model for intersection logic. Using a game interpretation, we prove soundness and completeness of the proposed semantics. In other words, a formula is provable (a type is inhabited) if and only if it is forced in every model. As a by-product, we obtain another proof of normalization for the Barendregt–Coppo–Dezani intersection type assignment system.


2009 ◽  
Vol 44 (6) ◽  
pp. 223-234 ◽  
Author(s):  
Saurabh Srivastava ◽  
Sumit Gulwani

1992 ◽  
Vol 17 (3) ◽  
pp. 271-282
Author(s):  
Y.S. Ramakrishna ◽  
L.E. Moser ◽  
L.K. Dillon ◽  
P.M. Melliar-Smith ◽  
G. Kutty

We present an automata-theoretic decision procedure for Since/Until Temporal Logic (SUTL), a linear-time propositional temporal logic with strong non-strict since and until operators. The logic, which is intended for specifying and reasoning about computer systems, employs neither next nor previous operators. Such operators obstruct the use of hierarchical abstraction and refinement and make reasoning about concurrency difficult. A proof of the soundness and completeness of the decision procedure is given, and its complexity is analyzed.


Sign in / Sign up

Export Citation Format

Share Document