Skip to main content

Preprocessing for invariant validation

  • Conference
  • Conference paper
  • First Online:
Algebraic Methodology and Software Technology (AMAST 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1101))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K.R. Apt and D.C. Kozen, Limits for Automatic Program Verification, Inform. Process. Letters 22 (1986) 307–309.

    Google Scholar 

  2. 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).

    Google Scholar 

  3. N. Bjorner, A. Browne and Z. Manna, Automatic Generation of Invariants and Intermediate Assertions, Lect. N. in Comp. Sc. 976 (1995) 589–623.

    Google Scholar 

  4. J.R. Burch et al., Symbolic Model Checking: 1020 States and Beyond, Proc. 5th. Symp. on Logic in Computer Science (1990) 428–439.

    Google Scholar 

  5. E. Clarke, Program invariants as fixed points, Proc. 18th IEEE Symp. on Foundations of Comput. Sci. (1977) 18–29.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. K.M. Chandy and J. Misra, Parallel Program Design: A Foundation (Addison-Wesley, Reading, MA, 1988).

    Google Scholar 

  8. C.C. Chang and H.J. Keisler, Model Theory (North-Holland, Amsterdam, 1973).

    Google Scholar 

  9. 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.

    Google Scholar 

  10. E.W. Dijkstra, A discipline of programming (Prentice Hall, New Jersey, 1976)

    Google Scholar 

  11. M. Fitting, First-order logic and automated theorem proving (Springer, 1990).

    Google Scholar 

  12. J.-Y. Girard, Proof theory and logical complexity (Bibliopolis, Napoli, 1966).

    Google Scholar 

  13. D.M. Goldschlag, Mechanically Verifying Concurrent programs with the Boyer-Moore prover, IEEE Trans. on Software Engineering 16 (1990) 1005–1023.

    Google Scholar 

  14. 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).

    Google Scholar 

  15. E.P. Gribomont, A Programming Logic for Formal Concurrent Systems, Lect. Notes in Comput. Sci. 458 (1990) 298–313.

    Google Scholar 

  16. E.P. Gribomont, Concurrency without toil: a systematic method for parallel program design, Sci. Comput. Programming 21 (1993) 1–56.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. R.P. Kurshan and L. Lamport, Verification of a Multiplier: 64 Bits and Beyond, Lect. Notes in Comput. Sci. 697 (1993) 166–179.

    Google Scholar 

  20. L. Lamport, An Assertional Correctness Proof of a Distributed Algorithm, Sci. Comput. Programming 2 (1983) 175–206.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. Z. Manna et al., STeP: the Stanford Temporal Prover (Draft), June 1994.

    Google Scholar 

  24. G. Ricart and A.K. Agrawala, An optimal algorithm for mutual exclusion, Comm. ACM 24 (1981) 9–17 (corrigendum: Comm. ACM 24 (1981) 578).

    Google Scholar 

  25. D.M. Russinoff, A Verification System for Concurrent Programs Based on the Boyer-Moore Prover, Formal Aspects of Computing 4 (1992) 597–611.

    Google Scholar 

  26. D.M. Russinoff, A Mechanically Verified Incremental Garbage Collector, Formal Aspects of Computing 6 (1994) 359–390.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. L. Wallen, Automated Deduction in Nonclassical Logics (MIT Press, 1990).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to E. Pascal Gribomont .

Editor information

Martin Wirsing Maurice Nivat

Rights and permissions

Reprints 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

Publish with us

Policies and ethics