An Essence of SSReflect

  • Iain Whiteside
  • David Aspinall
  • Gudmund Grov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7362)


SSReflect is a powerful language for proving theorems in the Coq system. It has been used for some of the largest proofs in formal mathematics thus far. However, although it constructs proofs in a formal system, like most other proof languages the semantics is informal making it difficult to reason about such proof scripts. We give a semantics to a subset of the language, using a hierarchical notion of proof tree, and show some simple transformations on proofs that preserve the semantics.


Proof Tree Translation Rule Proof Term Colour Theorem Proof Script 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aspinall, D., Denney, E., Lüth, C.: Tactics for hierarchical proof. Mathematics in Computer Science 3, 309–330 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Autexier, S., Dietrich, D.: A Tactic Language for Declarative Proofs. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 99–114. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  3. 3.
    Corbineau, P.: A Declarative Language for the Coq Proof Assistant. In: Miculan, M., Scagnetto, I., Honsell, F. (eds.) TYPES 2007. LNCS, vol. 4941, pp. 69–84. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Denney, E., Power, J., Tourlas, K.: Hiproofs: A hierarchical notion of proof tree. Electr. Notes Theor. Comput. Sci. 155, 341–359 (2006)CrossRefGoogle Scholar
  5. 5.
    Barendregt, H., et al.: Lambda calculi with types. In: Handbook of Logic in Computer Science, pp. 117–309. Oxford University Press (1992)Google Scholar
  6. 6.
    Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley (1999)Google Scholar
  7. 7.
    Gonthier, G.: The Four Colour Theorem: Engineering of a Formal Proof. In: Kapur, D. (ed.) ASCM 2007. LNCS (LNAI), vol. 5081, p. 333. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. 8.
    Gonthier, G., Mahboubi, A., Rideau, L., Tassi, E., Théry, L.: A Modular Formalisation of Finite Group Theory. Rapport de recherche RR-6156, INRIA (2007)Google Scholar
  9. 9.
    Gonthier, G., Mahboubi, A., Tassi, E.: A Small Scale Reflection Extension for the Coq system. Rapport de recherche RR-6455, INRIA (2008)Google Scholar
  10. 10.
    Gonthier, G., Stéphane Le, R.: An Ssreflect Tutorial. Technical Report RT-0367, INRIA (2009)Google Scholar
  11. 11.
    Guidi, F.: Procedural representation of cic proof terms. J. Autom. Reason. 44(1-2), 53–78 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  12. 12.
    Harrison, J.: Proof Style. In: Giménez, E. (ed.) TYPES 1996. LNCS, vol. 1512, pp. 154–172. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  13. 13.
    Heras, J., Poza, M., Dénès, M., Rideau, L.: Incidence Simplicial Matrices Formalized in Coq/SSReflect. In: Davenport, J.H., Farmer, W.M., Urban, J., Rabe, F. (eds.) Calculemus/MKM 2011. LNCS, vol. 6824, pp. 30–44. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  14. 14.
    Huet, G., Kahn, G., Paulin-Mohring, C.: The Coq proof assistant: A tutorial (August 2007)Google Scholar
  15. 15.
    Komendantsky, V.: Reflexive toolbox for regular expression matching: verification of functional programs in Coq+SSReflect. In: PLPV 2012, pp. 61–70 (2012)Google Scholar
  16. 16.
    Mens, T., Tourwe, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  17. 17.
    Sacerdoti Coen, C.: Declarative representation of proof terms. J. Autom. Reason. 44(1-2), 25–52 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  18. 18.
    Wenzel, M.: Isar - A Generic Interpretative Approach to Readable Formal Proof Documents. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 167–184. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  19. 19.
    Whiteside, I., Aspinall, D., Dixon, L., Grov, G.: Towards Formal Proof Script Refactoring. In: Davenport, J.H., Farmer, W.M., Urban, J., Rabe, F. (eds.) Calculemus/MKM 2011. LNCS (LNAI), vol. 6824, pp. 260–275. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Iain Whiteside
    • 1
  • David Aspinall
    • 1
  • Gudmund Grov
    • 1
  1. 1.CISA, School of InformaticsUniversity of EdinburghEdinburghScotland

Personalised recommendations