Skip to main content
    • Aa
    • Aa

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.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

J. R. Abrial , M. Butler , S. Hallerstede and L. Voisin (2006) An open extensible tool environment for event-B. In: Z. Liu and J. He (eds.) Formal Methods and Software Engineering. Springer Lecture Notes in Computer Science 4260 588605.

M. Armand , B. Grégoire , A. Spiwack and L. Théry (2010) Extending Coq with imperative features and its application to SAT verification. In: M. Kaufmann and L. Paulson (eds.) Interactive Theorem Proving. Springer Lecture Notes in Computer Science 6172 8398.

G. M. Bierman , A. D. Gordon , C. Hriţcu and D. Langworthy (2010) Semantic subtyping with an SMT solver. In: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, ACM 105116.

S. Böhme and T. Nipkow (2010) Sledgehammer: Judgement day. In: J. Giesl and R. Hähnle (eds.) Automated Reasoning. Lecture Notes in Computer Science 6173 107121.

S. Boutin (1997) Using reflection to build efficient and certified decision procedures. In: Theoretical Aspects of Computer Software. Springer Lecture Notes in Computer Science 1281 515529.

A. Bove , P. Dybjer and U. Norell (2009) A brief overview of Agda – a functional language with dependent types. In: S. Berghofer , T. Nipkow , C. Urban and M. Wenzel (eds.) Theorem Proving in Higher Order Logics. Springer Lecture Notes in Computer Science 5674 7378.

H. B. Curry (1934) Functionality in combinatory logic. In: Proceedings of the National Academy of Sciences of the United States of America 20 (11) 584.

H. B. Curry , R. Feys , W. Craig and W. Craig (1958) Combinatory Logic, volume 1, North-Holland.

M. Davis , H. Putnam and J. Robinson (1961) The decision problem for exponential diophantine equations. The Annals of Mathematics 74 (3) 425436.

J. Diller and A. S. Troelstra (1984) Realizability and intuitionistic logic. Synthese 60 253282.

S. Foster and G. Struth (2011) Integrating an automated theorem prover into Agda. In: M. Bobaru , K. Havelund , G. Holzmann and R. Joshi (eds.) NASA Formal Methods. Springer Lecture Notes in Computer Science 6617 116130.

D. Hendriks (2002) Proof reflection in coq Journal of Automated Reasoning 29 (3) 277307.

K. Kanso , F. Moller and A. Setzer (2009) Automated verification of signalling principles in railway interlocking systems. Electronic Notes in Theoretical Computer Science 250 (2) 1931.

O. Müller and T. Nipkow (1995) Combining model checking and deduction for i/o- automata. In: E. Brinksma , W. Cleaveland , K. Larsen , T. Margaria and B. Steffen (eds.) Tools and Algorithms for the Construction and Analysis of Systems. Springer Lecture Notes in Computer Science 1019 116.

S. Owre , J. Rushby and N. Shankar (1992) PVS: A prototype verification system. In: D. Kapur (ed.) Automated Deduction CADE-11. Springer Lecture Notes in Computer Science 607 748752.

L. Paulson and K. Susanto (2007) Source-level proof reconstruction for interactive theorem proving In: K. Schneider and J. Brandt (eds.) Theorem Proving in Higher Order Logics. Lecture Notes in Computer Science 4732 232245.

A. Stump (2009) Proof checking technology for satisfiability modulo theories. Electronic Notes in Theoretical Computer Science 228 121133.

G. Sutcliffe (2009) The TPTP problem library and associated infrastructure: The FOF and CNF parts, v3.5.0. Journal of Automated Reasoning 43 (4) 337362.

T. Weber (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.

J. Woodcock , P. G. Larsen , J. Bicarregui and J. Fitzgerald (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: 8 *
Loading metrics...

Abstract views

Total abstract views: 151 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 23rd September 2017. This data will be updated every 24 hours.