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.
Similar content being viewed by others
References
M. Ajtai, “The complexity of the pigeonhole principle,” in Proc. 29th Annual Symposium on Foundations of Computer Science, IEEE Press, pp. 346–355, 1988.
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.
P. Bjesse, K. Claessen, M. Sheeran, and S. Singh, “Lava: Hardware design in Haskell,” in '98, ACM Press, 1998.
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.
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.
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.
A. Biere, A. Cimatti, E. Clarke, and Y. Zhu, “Symbolic model checking without BDDs,” in '99, 1999.
R. Bryant, “Graph-based algorithms for boolean function manipulation,” IEEE Trans. Comp., Vol. c-35, No. 8, pp. 677–691, August 1986.
S.A. Cook, “The complexity of theorem-proving procedures,” in Proc. 3rd ACM Symp. on the Theory of Computing, 1971.
M. D'Agostino, “Investigation into the complexity of some propositional calculi,” D. Phil. Dissertation, Programming Research Group, Oxford University, 1990.
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].
M. Davis and H. Putnam, “A computing procedure for quantification theory,” Journal of the ACM, Vol. 7, pp. 201–215, 1960. Reprinted in [30].
ESPRIT Project No. 25581-FAST. Integrating Formal Approaches to Specification, Test Case Generation and Automatic Design Verification. http://www.prover.com/fast/
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.
G. Gopalakrishnan and P. Windley (Eds.), in Proc. Int. Conf. on Formal Methods in Computer-Aided Design, LNCS Vol. 1522, Springer-Verlag, 1998.
J.F. Groote, “Hiding propositional constants in BDDs,” Formal Methods in System Design, Vol. 8, pp. 91–96, 1996.
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.
J. Harrison, “The Stålmarck method as a HOL derived rule,” Theorem Proving in Higher Order Logics, LNCS Vol. 1125, Springer-Verlag, 1996.
J.K.J. Hintikka, “Form and content in quantification theory,” Acta Philosophica Fennica, VII, 1955.
S. Kanger, “Provability in logic,” Stockholm Studies in Philosophy, 1, Acta Universitatis Stockholmiensis, 1957.
S.C. Kleene, Mathematical Logic, John Wiley and Sons Inc., New York, 1967.
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.
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, “The synchronous dataflow programming language LUSTRE,” Proc. IEEE, Vol. 79, No. 9, 1991.
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.
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.
M. Mondadori, “An improvement of Jeffrey's deductive trees,” Annali dell'Universita di Ferrara, Sez III, Discussion paper 7, Universita di Ferrara, 1989.
K. Schütte. Proof Theory, Springer-Verlag, Berlin, 1977.
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).
M. Sheeran and G. Stålmarck, “Model checking using induction and boolean satisfiability,” Technical Report U-99003, Prover Technology, June 1999.
J. Siekman and G. Wrightson (Eds.), Automation of Reasoning, Springer-Verlag, New York, 1983.
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.
R.M. Smullyan, First Order Logic, Springer-Verlag, Berlin, 1969.
M. Srivas and A. Camilleri (Eds.), in Proc. Int. Conf. on Formal Methods in Computer-Aided Design, LNCS Vol. 1146, Springer-Verlag, 1996.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1008725524946