Skip to main content Accessibility help

A light-weight integration of automated and interactive theorem proving

  • KARIM KANSO (a1) and ANTON SETZER (a1)

In this paper, aimed at dependently typed programmers, we present a novel connection between automated and interactive theorem proving paradigms. The novelty is that the connection offers a better trade-off between usability, efficiency and soundness when compared to existing techniques. This technique allows for a powerful interactive proof framework that facilitates efficient verification of finite domain theorems and guided construction of the proof of infinite domain theorems. Such situations typically occur with industrial verification. As a case study, an embedding of SAT and CTL model checking is presented, both of which have been implemented for the dependently typed proof assistant Agda.

Finally, an example of a real world railway control system is presented, and shown using our proof framework to be safe with respect to an abstract model of trains not colliding or derailing. We demonstrate how to formulate safety directly and show using interactive theorem proving that signalling principles imply safety. Therefore, a proof by an automated theorem prover that the signalling principles hold for a concrete system implies the overall safety. Therefore, instead of the need for domain experts to validate that the signalling principles imply safety they only need to make sure that the safety is formulated correctly. Therefore, some of the validation is replaced by verification using interactive theorem proving.

Hide All
Abrial, J. R., Butler, M., Hallerstede, S. and Voisin, L. (2006) An open extensible tool environment for event-B. In: Liu, Z. and He, J. (eds.) Formal Methods and Software Engineering. Springer Lecture Notes in Computer Science 4260 588605.
Armand, M., Grégoire, B., Spiwack, A. and Théry, L. (2010) Extending Coq with imperative features and its application to SAT verification. In: Kaufmann, M. and Paulson, L. (eds.) Interactive Theorem Proving. Springer Lecture Notes in Computer Science 6172 8398.
Bar-Hillel, Y., Perles, M. and Shamir, E. (1964) On formal properties of simple phrase structure grammars. In: Language and Information: Selected Essays on their Theory and Application 116–150.
Barrett, C., Sebastiani, R., Seshia, S. A. and Tinelli, C. (2009) Satisfiability modulo theories. In: Biere, A., Heule, M., van Maaren, H. and Walsh, T. (eds.) Handbook of Satisfiability, volume 185, IOS Press 737797.
Bierman, G. M., Gordon, A. D., Hriţcu, C. and Langworthy, D. (2010) Semantic subtyping with an SMT solver. In: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, ACM 105116.
Böhme, S. and Nipkow, T. (2010) Sledgehammer: Judgement day. In: Giesl, J. and Hähnle, R. (eds.) Automated Reasoning. Lecture Notes in Computer Science 6173 107121.
Boutin, S. (1997) Using reflection to build efficient and certified decision procedures. In: Theoretical Aspects of Computer Software. Springer Lecture Notes in Computer Science 1281 515529.
Bove, A., Dybjer, P. and Norell, U. (2009) A brief overview of Agda – a functional language with dependent types. In: Berghofer, S., Nipkow, T., Urban, C. and Wenzel, M. (eds.) Theorem Proving in Higher Order Logics. Springer Lecture Notes in Computer Science 5674 7378.
Curry, H. B. (1934) Functionality in combinatory logic. In: Proceedings of the National Academy of Sciences of the United States of America 20 (11) 584.
Curry, H. B., Feys, R., Craig, W. and Craig, W. (1958) Combinatory Logic, volume 1, North-Holland.
Davis, M., Putnam, H. and Robinson, J. (1961) The decision problem for exponential diophantine equations. The Annals of Mathematics 74 (3) 425436.
de Bruijn, N. (1970) The mathematical language AUTOMATH, its usage, and some of its extensions. In: Laudet, M., Lacombe, D., Nolin, L. and Schtzenberger, M. (eds.) Symposium on Automatic Demonstration. Springer Lecture Notes in Computer Science 125 2961.
De Moura, L. and Bjørner, N. (2009) Satisfiability modulo theories: An appetizer. In: Formal Methods: Foundations and Applications 23–36.
Dedekind, R. (1863) Vorlesungen über Zahlentheorie, F. Vieweg und Sohn.
Diller, J. and Troelstra, A. S. (1984) Realizability and intuitionistic logic. Synthese 60 253282.
Dong, Y., Ramakrishnan, C. R. and Smolka, S. A. (2003) Model checking and evidence exploration. In: Proceedings of 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems 214–223.
Fontaine, P., Marion, J. Y., Merz, S., Nieto, L. and Tiu, A. (2006) Expressiveness+ automation+ soundness: Towards combining SMT solvers and interactive proof assistants. In: Tools and Algorithms for the Construction and Analysis of Systems 167–181.
Foster, S. and Struth, G. (2011) Integrating an automated theorem prover into Agda. In: Bobaru, M., Havelund, K., Holzmann, G. and Joshi, R. (eds.) NASA Formal Methods. Springer Lecture Notes in Computer Science 6617 116130.
Harrison, J. (2008) Automated and interactive theorem proving. In: Grumberg, O., Nipkow, T. and Pfaller, C. (eds.) Formal Logical Methods for System Security and Correctness. NATO Science for Peace and Security Series 14 111147.
Hendriks, D. (2002) Proof reflection in coq Journal of Automated Reasoning 29 (3) 277307.
Howard, W. A. (1980) The formulae-as-types notion of construction. To HB Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism 44 479490.
Huth, M. and Ryan, M. (2004) Logic in Computer Science, Cambridge University Press Cambridge.
Jones, C. B., Grov, G. and Bundy, A. (2010) Ideas for a high-level proof strategy language, Technical Report CS-TR-1210, Newcastle University.
Kanso, K. (2008) Formal Verification of Ladder Logic, Master's thesis, Department of Computer Science, Swansea University.
Kanso, K., Moller, F. and Setzer, A. (2009) Automated verification of signalling principles in railway interlocking systems. Electronic Notes in Theoretical Computer Science 250 (2) 1931.
Kerr, D. and Rowbotham, T. (2001) Introduction to Railway Signalling, Institution of Railway Signal Engineers.
Leach, M. (2003) RAILWAY Control Systems, 2nd edition, Institution of Railway Signal Engineers.
Lescuyer, S. and Conchon, S. (2008) A reflexive formalization of a SAT solver in coq. In: TPHOLs 2008: Emerging Trends of the 21st International Conference on Theorem Proving in Higher Order Logics.
Müller, O. and Nipkow, T. (1995) Combining model checking and deduction for i/o- automata. In: Brinksma, E., Cleaveland, W., Larsen, K., Margaria, T. and Steffen, B. (eds.) Tools and Algorithms for the Construction and Analysis of Systems. Springer Lecture Notes in Computer Science 1019 116.
Nock, O. S. (2002) Railway Signalling, 2nd edition, Institution of Railway Signal Engineers.
Nordström, B., Petersson, K. and Smith, J. M. (1990) Programming in Martin-Löf's Type Theory, International Series of Monographs on Computer Science, volume 7, Oxford University Press.
Owre, S., Rushby, J. and Shankar, N. (1992) PVS: A prototype verification system. In: Kapur, D. (ed.) Automated Deduction CADE-11. Springer Lecture Notes in Computer Science 607 748752.
Paulson, L. and Susanto, K. (2007) Source-level proof reconstruction for interactive theorem proving In: Schneider, K. and Brandt, J. (eds.) Theorem Proving in Higher Order Logics. Lecture Notes in Computer Science 4732 232245.
Stump, A. (2009) Proof checking technology for satisfiability modulo theories. Electronic Notes in Theoretical Computer Science 228 121133.
Sutcliffe, G. (2009) The TPTP problem library and associated infrastructure: The FOF and CNF parts, v3.5.0. Journal of Automated Reasoning 43 (4) 337362.
Verma, K. N. (2000) Reflecting Symbolic Model Checking in coq , Master's thesis, Mémoire de DEA, DEA Programmation, Paris.
Weber, T. (2006) Integrating a SAT solver with an LCF-style theorem prover. In: Proceedings of the 3rd Workshop on Pragmatics of Decision Procedures in Automated Reasoning (PDPAR 2005). Electronic Notes in Theoretical Computer Science 144 (2) 6778.
Woodbridge, P. (2011) Locking frame testing. Available at
Woodcock, J., Larsen, P. G., Bicarregui, J. and Fitzgerald, J. (2009) Formal methods: Practice and experience. ACM Computing Surveys (CSUR) 41 (4) 136.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed