A Proof Strategy Language and Proof Script Generation for Isabelle/HOL

  • Yutaka Nagashima
  • Ramana Kumar
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10395)


We introduce a language, PSL, designed to capture high level proof strategies in Isabelle/HOL. Given a strategy and a proof obligation, PSL’s runtime system generates and combines various tactics to explore a large search space with low memory usage. Upon success, PSL generates an efficient proof script, which bypasses a large part of the proof search. We also present PSL’s monadic interpreter to show that the underlying idea of PSL is transferable to other ITPs.



We thank Jasmin C. Blanchette for his extensive comments that improved the evaluation of try_hard. Pang Luo helped us for the evaluation. Leonardo de Moura, Daniel Matichuk, Kai Engelhardt, and Gerwin Klein provided valuable comments on an early draft of this paper. We thank the anonymous reviewers for useful feedback, both at CADE-26 and for previous versions of this paper at other conferences. This work was partially funded by the ERC Consolidator grant 649043 - AI4REASON.


  1. 1.
    Blanchette, J., Fleury, M., Wand, D.: Concrete Semantics with Isabelle/HOL (2015).
  2. 2.
    Blanchette, J.C., Kaliszyk, C., Paulson, L.C., Urban, J.: Hammering towards QED. J. Formalized Reasoning 9(1), 101–148 (2016). MathSciNetGoogle Scholar
  3. 3.
    Böhme, S., Nipkow, T.: Sledgehammer: Judgement day. In: Giesl, J., Hähnle, R. (eds.) IJCAR 2010. LNCS (LNAI), vol. 6173, pp. 107–121. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-14203-1_9 CrossRefGoogle Scholar
  4. 4.
    Breitner, J.: The safety of call arity. Archive of Formal Proofs, February 2015. Formal proof development
  5. 5.
    Bundy, A.: The use of explicit plans to guide inductive proofs. In: Lusk, E., Overbeek, R. (eds.) CADE 1988. LNCS, vol. 310, pp. 111–120. Springer, Heidelberg (1988). doi: 10.1007/BFb0012826 CrossRefGoogle Scholar
  6. 6.
    Delahaye, D.: A tactic language for the system Coq. In: Parigot, M., Voronkov, A. (eds.) LPAR 2000. LNAI, vol. 1955, pp. 85–95. Springer, Heidelberg (2000). doi: 10.1007/3-540-44404-1_7 CrossRefGoogle Scholar
  7. 7.
    Dixon, L., Fleuriot, J.: IsaPlanner: A prototype proof planner in isabelle. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 279–283. Springer, Heidelberg (2003). doi: 10.1007/978-3-540-45085-6_22 CrossRefGoogle Scholar
  8. 8.
    Gransden, T., Walkinshaw, N., Raman, R.: SEPIA: search for proofs using inferred automata. In: Felty, A.P., Middeldorp, A. (eds.) CADE 2003. LNCS, vol. 9195, pp. 246–255. Springer, Heidelberg (2015).
  9. 9.
    Kaufmann, M., Moore, J.S., Manolios, P.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Norwell (2000)Google Scholar
  10. 10.
    Lammich, P.: Collections framework. Archive of Formal Proofs, November 2009. Formal proof development
  11. 11.
    Martin, A.P., Gardiner, P.H.B., Woodcock, J.: A tactic calculus-abridged version. Formal. Asp. Comput. 8(4), 479–489 (1996). CrossRefzbMATHGoogle Scholar
  12. 12.
    Martin, A., Gibbons, J.: A monadic interpretation of tactics (2002)Google Scholar
  13. 13.
    Matichuk, D., Wenzel, M., Murray, T.: An isabelle proof method language. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 390–405. Springer, Cham (2014). doi: 10.1007/978-3-319-08970-6_25 Google Scholar
  14. 14.
    de Moura, L., Kong, S., Avigad, J., van Doorn, F., von Raumer, J.: The Lean theorem prover (system description). In: Felty, A.P., Middeldorp, A. (eds.) CADE 2003. LNCS, vol. 9195, pp. 378–388. Springer, Heidelberg (2015).
  15. 15.
    Nagashima, Y.: Evaluation Results (2016).
  16. 16.
    Nagashima, Y.: Evaluation Tool (2016).
  17. 17.
    Nagashima, Y.: Keep failed proof attempts in memory. In: Isabelle Workshop, Nancy, France, August 2016Google Scholar
  18. 18.
    Nagashima, Y.: PSL (2016).
  19. 19.
    Nagashima, Y., O’Connor, L.: Close encounters of the higher kind - emulating constructor classes in standard ML, September 2016Google Scholar
  20. 20.
    Nipkow, T.: List index. Archive of Formal Proofs, February 2010. Formal proof development
  21. 21.
    Nipkow, T.: Skew heap. Archive of Formal Proofs, August 2014. Formal proof development
  22. 22.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002). zbMATHGoogle Scholar
  23. 23.
    Nishihara, T., Minamide, Y.: Depth first search. Archive of Formal Proofs, June 2004. Formal proof development
  24. 24.
    Owre, S., Rushby, J.M., Shankar, N.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992). doi: 10.1007/3-540-55602-8_217 Google Scholar
  25. 25.
    Paulson, L.C.: The foundation of a generic theorem prover. CoRR cs.LO/9301105 (1993).
  26. 26.
    Sickert, S.: Linear temporal logic. Archive of Formal Proofs, March 2016. Formal proof development
  27. 27.
    Sternagel, C.: Efficient mergesort. Archive of Formal Proofs, November 2011. Formal proof development
  28. 28.
    The Coq development team: The Coq proof assistant reference manual (2009)Google Scholar
  29. 29.
    Traytel, D.: A codatatype of formal languages. Archive of Formal Proofs, November 2013. Formal proof development
  30. 30.
    Wadler, P.: How to replace failure by a list of successes a method for exception handling, backtracking, and pattern matching in lazy functional languages. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 113–128. Springer, Heidelberg (1985). doi: 10.1007/3-540-15975-4_33 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Data61CSIROSydneyAustralia
  2. 2.Data61CSIRO/UNSWSydneyAustralia

Personalised recommendations