Skip to main content
Log in

A Tutorial on Stålmarck's Proof Procedure for Propositional Logic

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

We explain Stålmarck's proof procedure for classical propositional logic. The method is implemented in a commercial tool that has been used successfully in real industrial verification projects. Here, we present the proof system underlying the method, and motivate the various design decisions that have resulted in a system that copes well with the large formulas encountered in industrial-scale verification.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. M. Ajtai, “The complexity of the pigeonhole principle,” in Proc. 29th Annual Symposium on Foundations of Computer Science, IEEE Press, pp. 346–355, 1988.

  2. E.W. Beth, “Semantic entailment and formal derivability,” Mededelingen der Kon. Nederlandse Akademie van Wetenschappen. Afd. letterkunde, n.s., 18, Amsterdam, pp. 309–342, 1955.

    Google Scholar 

  3. P. Bjesse, K. Claessen, M. Sheeran, and S. Singh, “Lava: Hardware design in Haskell,” in '98, ACM Press, 1998.

  4. A. Borälv, “The industrial success of verification tools based on St°almarck's method,” in Proc. 9th Int. Conf. on Computer Aided Verification, Springer-Verlag, LNCS Vol. 1254, pp. 7–10, 1997.

    Google Scholar 

  5. A. Borälv, “Case study: Formal verification of a computerized railway interlocking,” Formal Aspects of Computing, Vol. 10, No. 4, pp. 338–360, April 1999.

    Google Scholar 

  6. A. Borälv and G. Stålmarck, “Automated verification in railways,” in M.G. Hinchey and J.P. Bowen (Eds.), Industrial-Strength Formal Methods in Practice, Springer-Verlag, London, 1999.

    Google Scholar 

  7. A. Biere, A. Cimatti, E. Clarke, and Y. Zhu, “Symbolic model checking without BDDs,” in '99, 1999.

  8. R. Bryant, “Graph-based algorithms for boolean function manipulation,” IEEE Trans. Comp., Vol. c-35, No. 8, pp. 677–691, August 1986.

    Google Scholar 

  9. S.A. Cook, “The complexity of theorem-proving procedures,” in Proc. 3rd ACM Symp. on the Theory of Computing, 1971.

  10. M. D'Agostino, “Investigation into the complexity of some propositional calculi,” D. Phil. Dissertation, Programming Research Group, Oxford University, 1990.

  11. M. Davis, G. Logemann, and D. Loveland, “A machine program for theorem proving,” Communications of the ACM, Vol. 5, pp. 394–397, 1962. Reprinted in [30].

    Google Scholar 

  12. M. Davis and H. Putnam, “A computing procedure for quantification theory,” Journal of the ACM, Vol. 7, pp. 201–215, 1960. Reprinted in [30].

    Google Scholar 

  13. ESPRIT Project No. 25581-FAST. Integrating Formal Approaches to Specification, Test Case Generation and Automatic Design Verification. http://www.prover.com/fast/

  14. G. Gentzen, “Untersuchungen über das logische Schliessen,” Mathematische Zeitschrift, Vol. 39, pp. 176–210, 1935. English translation in The Collected Papers of Gerhard Gentzen, M.E. Szabo (Ed.), North-Holland, Amsterdam, 1969.

    Google Scholar 

  15. G. Gopalakrishnan and P. Windley (Eds.), in Proc. Int. Conf. on Formal Methods in Computer-Aided Design, LNCS Vol. 1522, Springer-Verlag, 1998.

  16. J.F. Groote, “Hiding propositional constants in BDDs,” Formal Methods in System Design, Vol. 8, pp. 91–96, 1996.

    Google Scholar 

  17. J.F. Groote, J.W.C. Koorn, and S.F.M. van Vlijmen, “The safety guaranteeing system at station Hoorn-Kersenboogerd (extended abstract),” in Proc. 10th Annual Conference on Computer Assurance (COMPASS' 95), IEEE Press, pp. 57–68, 1995. A longer version appears as Technical Report 121, Logic Group Preprint Series, Department of Philosophy, Utrecht University, 1994.

  18. J. Harrison, “The Stålmarck method as a HOL derived rule,” Theorem Proving in Higher Order Logics, LNCS Vol. 1125, Springer-Verlag, 1996.

  19. J.K.J. Hintikka, “Form and content in quantification theory,” Acta Philosophica Fennica, VII, 1955.

  20. S. Kanger, “Provability in logic,” Stockholm Studies in Philosophy, 1, Acta Universitatis Stockholmiensis, 1957.

  21. S.C. Kleene, Mathematical Logic, John Wiley and Sons Inc., New York, 1967.

    Google Scholar 

  22. W. Kunz and D.K. Pradhan, “Recursive learning: A new implication technique for efficient solutions to CAD-problems: Test, verification and optimization,” IEEE Trans. CAD, Vol. 13, No. 9, 1994.

  23. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, “The synchronous dataflow programming language LUSTRE,” Proc. IEEE, Vol. 79, No. 9, 1991.

  24. N. Halbwachs, F. Lagnier, and C. Ratel, “Programming and verifying real-time systems by means of the synchronous data-flow programming language Lustre,” in IEEE Transactions on Software Engineering, September 1992.

  25. M. Ljung, “Formal modelling and automatic verification of Lustre programs using NP-tools,” Master's Project Thesis, Prover Technology AB and Department of Teleinformatics, KTH, Stockholm, 1999.

    Google Scholar 

  26. M. Mondadori, “An improvement of Jeffrey's deductive trees,” Annali dell'Universita di Ferrara, Sez III, Discussion paper 7, Universita di Ferrara, 1989.

  27. K. Schütte. Proof Theory, Springer-Verlag, Berlin, 1977.

    Google Scholar 

  28. G. Stålmarck, “A system for determining propositional logic theorems by applying values and rules to triplets that are generated from a formula,” 1989. Swedish Patent No. 467 076 (approved 1992), U.S. Patent No. 5 276 897 (approved 1994), European Patent No. 0403 454 (approved 1995).

  29. M. Sheeran and G. Stålmarck, “Model checking using induction and boolean satisfiability,” Technical Report U-99003, Prover Technology, June 1999.

  30. J. Siekman and G. Wrightson (Eds.), Automation of Reasoning, Springer-Verlag, New York, 1983.

    Google Scholar 

  31. S. Singh and C.J. Lillieroth, “Formal verification of reconfigurable cores,” in Proc. Int. Conf. on Field-Programmable Custom Computing Machines, FCCM'99, IEEE Press, 1999.

  32. R.M. Smullyan, First Order Logic, Springer-Verlag, Berlin, 1969.

    Google Scholar 

  33. M. Srivas and A. Camilleri (Eds.), in Proc. Int. Conf. on Formal Methods in Computer-Aided Design, LNCS Vol. 1146, Springer-Verlag, 1996.

  34. G. Stålmarck, “A note on the computational complexity of the pure classical implication calculus,” Information Processing Letters, Vol. 31, pp. 277–278, June 1989.

    Google Scholar 

  35. G. Stålmarck and M. Säflund, “Modeling and verifying systems and software in propositional logic,” in Proc. Int. Conf. on Safety of Computer Control Systems, IFAC SafeComp'90, Pergamon Press, Oxford, pp. 31–36, 1990.

    Google Scholar 

  36. M. Säflund, “Modelling and formally verifying systems and software in industrial applications,” in '94), Xu Ferong (Ed.), International Academic Publishers, pp. 169–174, June 1994.

  37. J. Åhrman, “Evaluation of an algorithm for generating partial models in propositional logic using St°almarck's method,” Master's Thesis, Royal Institute of Technology, Department of Numerical Analysis and Computing Science, 1998.

  38. O. Åkerlund, G. Stålmarck, and M. Helander, “Formal safety and reliability analysis of embedded aerospace systems at Saab,” in Proc. 7th IEEE Int. Symp. on Software Reliability Engineering (Industrial Track), IEEE Computer Society Press, 1996.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sheeran, M., Stålmarck, G. A Tutorial on Stålmarck's Proof Procedure for Propositional Logic. Formal Methods in System Design 16, 23–58 (2000). https://doi.org/10.1023/A:1008725524946

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008725524946

Navigation