Theorem Proving and SMT Solving
Produces a formal proof of the correctness of a software system which can be used to provide robust evidence for certification of software systems. Properties verified are typically safety and liveness properties.
Theorem provers may be automatic or interactive, with proof tactics and libraries provided to assist the users. Theorem Provers and SMT solvers are used for verification, proving the correctness of programs, software testing based on symbolic execution, and for synthesis, generating program fragments by searching over the space of possible programs. Theorem provers like Coq, PVS and Isabelle/HOL are proof management systems that provide a formal language to write mathematical formulae and tools for proving these formulae in a logical calculus. Different theorem provers support proofs in different logics, e.g., Keymeara X supports proofs for differential dynamic logic, a logic for specifying and verifying properties of hybrid systems with mixed discrete and continuous dynamics whereas the STeP theorem prover is concerned with invariant conditions. SMT solvers like Z3 support proof strategies through providing theories of arithmetic, fixed-size bit-vectors, extensional arrays, datatypes, uninterpreted functions, and quantifiers which facilitate reasoning. Applications are primarily in extended static checking, test case generation, deductive verification, and predicate abstraction.
- Provides a formal proof of the system correctness which can be used for robust evidence for certification
- Tools provide many proof tactics provided to automate proofs
- Approaches available for discrete and continuous dynamics.
- Often require interaction when proof tactics fail
- Specialist knowledge required
- Since provers operate on a formal model, there needs to be a separate step to show that the formal model properties actually represent the system properties
[TPS1] KeYmaera: a hybrid theorem prover for hybrid systems (system description) A. Platzer and J.-D. Quesel, Automated Reasoning, Springer, Berlin (2008), pp. 171-178
[TPS2] Z. Manna, N. Bjoerner, A. Browne, and E. Chang, STeP: The Stanford Temporal Prover, LNCS, Vol. 915, 1995, pp. 793–794.
[TPS3] A. Rizaldi, J. Keinholz, M. Huber, J. Feldle, F. Immler, M. Althoff, E. Hilgendorf, and T. Nipkow. Formalising and monitoring traffic rules for autonomous vehicles in Isabelle/HOL. volume 10510 of LNCS, pages 50–66. Springer, 2017.
[TPS4] Deductive verification of hybrid systems using step, Z. Manna and H.B. Sipma Hybrid Systems: Computation and Control, Springer, Berlin (1998), pp. 305-318
[TPS5] P. Bagade, A. Banerjee, S.K.S. Gupta, Chapter 12 - Validation, Verification, and Formal Methods for Cyber-Physical Systems, In Intelligent Data-Centric Systems, Cyber-Physical Systems, Academic Press, 2017
[TPS6] A Survey on Theorem Provers in Formal Methods M. Saqib Nawaz, Moin Malik, Yi Li, Meng Sun and M. Ikram Ullah Lali, https://arxiv.org/pdf/1912.03028.pdf