Abstract
Hoare's logic and Dijkstra's predicate transformer calculus have proved adequate for reducing the correctness problem for programs to the validity problem for logical formulas. However, the size of the logical formulas to be validated grows faster than the size of the program, and, even in the propositional case, the validation problem is NP-complete and becomes practically intractable for large programs. We introduce a strategy for dealing with this problem. The principle is to write the formulas in the form (h 1 ∧ ⋯ ∧ h n) ⇒ c, and to use efficiently computable criteria to select a small subset I ⊂{1,..., n} such that c remains a logical consequence of H I ={h i : i ∈ I}. These criteria are motivated and the efficiency of the method is investigated.
Preview
Unable to display preview. Download preview PDF.
References
K.R. Apt and D.C. Kozen, Limits for Automatic Program Verification, Inform. Process. Letters 22 (1986) 307–309.
S. Bensalem, Y. Lakhnech and H. Saidi, Powerful techniques for the automatic generation of invariants, Proc. 8th Int. Conf. on Computer-Aided Verification, to appear in Lect. Notes in Comput. Sci. (1996).
N. Bjorner, A. Browne and Z. Manna, Automatic Generation of Invariants and Intermediate Assertions, Lect. N. in Comp. Sc. 976 (1995) 589–623.
J.R. Burch et al., Symbolic Model Checking: 1020 States and Beyond, Proc. 5th. Symp. on Logic in Computer Science (1990) 428–439.
E. Clarke, Program invariants as fixed points, Proc. 18th IEEE Symp. on Foundations of Comput. Sci. (1977) 18–29.
E. Clarke, E. Emerson and A. Sistla, Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications, ACM Trans. Programming Languages Syst. 8 (1986) 244–263.
K.M. Chandy and J. Misra, Parallel Program Design: A Foundation (Addison-Wesley, Reading, MA, 1988).
C.C. Chang and H.J. Keisler, Model Theory (North-Holland, Amsterdam, 1973).
P. Cousot and N. Halbwachs, Automatic Discovery of Linear Restraints Among Variables of a Program, Proc. 5th ACM Symp. on Principles of Programming Languages (1978) 84–96.
E.W. Dijkstra, A discipline of programming (Prentice Hall, New Jersey, 1976)
M. Fitting, First-order logic and automated theorem proving (Springer, 1990).
J.-Y. Girard, Proof theory and logical complexity (Bibliopolis, Napoli, 1966).
D.M. Goldschlag, Mechanically Verifying Concurrent programs with the Boyer-Moore prover, IEEE Trans. on Software Engineering 16 (1990) 1005–1023.
S. Graf and H. Saidi, Verifying invariants using theorem proving, Proc. 8th Int. Conf. on Computer-Aided Verification, to appear in Lect. Notes in Comput. Sci. (1996).
E.P. Gribomont, A Programming Logic for Formal Concurrent Systems, Lect. Notes in Comput. Sci. 458 (1990) 298–313.
E.P. Gribomont, Concurrency without toil: a systematic method for parallel program design, Sci. Comput. Programming 21 (1993) 1–56.
E.P. Gribomont and D. Rossetto, CAVEAT: technique and tool for Computer Aided VErification And Transformation, Lect. N. in Comp. Sc. 939 (1995) 70–83.
B. Jonsson and L. Kempe, Verifying safety properties of a class of infinite-state distributed algorithms, Lect. N. in Comp. Sc. 939 (1995) 42–53.
R.P. Kurshan and L. Lamport, Verification of a Multiplier: 64 Bits and Beyond, Lect. Notes in Comput. Sci. 697 (1993) 166–179.
L. Lamport, An Assertional Correctness Proof of a Distributed Algorithm, Sci. Comput. Programming 2 (1983) 175–206.
K. Larsen, B. Steffen and C. Weise, A constraint oriented proof methodology based on modal transitions systems, Lect. Notes in Comput. Sci. 129 (1995) 17–40.
K. Larsen, B. Steffen and C. Weise, Fisher's protocol revisited: a simple proof using modal constraints, Proc. 4th DIMACS Workshop on Verification and Control of Hybrid Systems. New Brunswick, New Jersey, 22–24 October, 1995.
Z. Manna et al., STeP: the Stanford Temporal Prover (Draft), June 1994.
G. Ricart and A.K. Agrawala, An optimal algorithm for mutual exclusion, Comm. ACM 24 (1981) 9–17 (corrigendum: Comm. ACM 24 (1981) 578).
D.M. Russinoff, A Verification System for Concurrent Programs Based on the Boyer-Moore Prover, Formal Aspects of Computing 4 (1992) 597–611.
D.M. Russinoff, A Mechanically Verified Incremental Garbage Collector, Formal Aspects of Computing 6 (1994) 359–390.
P. Wolper and V. Lovinfosse, Verifying Properties of large Sets of Processes with Network Invariants, CAV'89, Lect. Notes in Comput. Sci. 407 (1990) 68–80.
L. Wallen, Automated Deduction in Nonclassical Logics (MIT Press, 1990).
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gribomont, E.P. (1996). Preprocessing for invariant validation. In: Wirsing, M., Nivat, M. (eds) Algebraic Methodology and Software Technology. AMAST 1996. Lecture Notes in Computer Science, vol 1101. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014321
Download citation
DOI: https://doi.org/10.1007/BFb0014321
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61463-0
Online ISBN: 978-3-540-68595-1
eBook Packages: Springer Book Archive