Packaging Mathematical Structures

  • François Garillot
  • Georges Gonthier
  • Assia Mahboubi
  • Laurence Rideau
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5674)


This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular supports multiple inheritance, maximal sharing of notations and theories, and automated structure inference. Our methodology is robust enough to handle a hierarchy comprising a broad variety of algebraic structures, from types with a choice operator to algebraically closed fields. Interfaces for the structures enjoy the convenience of a classical setting, without requiring any axiom. Finally, we present two applications of our proof techniques: a key lemma for characterising the discrete logarithm, and a matrix decomposition problem.


Formalization of Algebra Coercive subtyping Type inference Coq SSReflect 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lang, S.: Algebra. Springer, Heidelberg (2002)CrossRefzbMATHGoogle Scholar
  2. 2.
    Jackson, P.: Enhancing the Nuprl proof-development system and applying it to computational abstract algebra. PhD thesis, Cornell University (1995)Google Scholar
  3. 3.
    Betarte, G., Tasistro, A.: Formalisation of systems of algebras using dependent record types and subtyping: An example. In: Proc. 7th Nordic workshop on Programming Theory (1995)Google Scholar
  4. 4.
    Pottier, L.: User contributions in Coq, Algebra (1999),
  5. 5.
    Geuvers, H., Pollack, R., Wiedijk, F., Zwanenburg, J.: A constructive algebraic hierarchy in Coq. Journal of Symbolic Computation 34(4), 271–286 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Haftmann, F., Wenzel, M.: Local theory specifications in Isabelle/Isar. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds.) TYPES 2008. LNCS, vol. 5497, pp. 153–168. Springer, Heidelberg (2009)Google Scholar
  7. 7.
    Rudnicki, P., Schwarzweller, C., Trybulec, A.: Commutative algebra in the Mizar system. J. Symb. Comput. 32(1), 143–169 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Gonthier, G., Mahboubi, A., Rideau, L., Tassi, E., Théry, L.: A Modular Formalisation of Finite Group Theory. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 86–101. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Bertot, Y., Gonthier, G., Ould Biha, S., Pasca, I.: Canonical big operators. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 86–101. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    Gonthier, G., Mahboubi, A.: A small scale reflection extension for the Coq system. INRIA Technical report,
  11. 11.
    Paulin-Mohring, C.: Définitions Inductives en Théorie des Types d’Ordre Supérieur. Habilitation à diriger les recherches, Université Claude Bernard Lyon I (1996)Google Scholar
  12. 12.
    Sozeau, M., Oury, N.: First-Class Type Classes. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 278–293. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  13. 13.
    Pollack, R.: Dependently typed records in type theory. Formal Aspects of Computing 13, 386–402 (2002)CrossRefzbMATHGoogle Scholar
  14. 14.
    Bruijn, N.G.D.: Telescopic mappings in typed lambda calculus. Information and Computation 91, 189–204 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Paulson, L.C.: Defining Functions on Equivalence Classes. ACM Transactions on Computational Logic 7(4), 658–675 (2006)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Barthe, G., Capretta, V., Pons, O.: Setoids in type theory. Journal of Functional Programming 13(2), 261–293 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Altenkirch, T., McBride, C., Swierstra, W.: Observational equality, now! In: Proceedings of the PLPV 2007 workshop, pp. 57–68. ACM, New York (2007)Google Scholar
  18. 18.
    Olteanu, G.: Computing the Wedderburn decomposition of group algebras by the Brauer-Witt theorem. Mathematics of Computation 76(258), 1073–1087 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Rotman, J.J.: An Introduction to the Theory of Groups. Springer, Heidelberg (1994)Google Scholar
  20. 20.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. McGraw-Hill, New York (2003)zbMATHGoogle Scholar
  21. 21.
    Sacerdoti Coen, C., Tassi, E.: Working with Mathematical Structures in Type Theory. In: Miculan, M., Scagnetto, I., Honsell, F. (eds.) TYPES 2007. LNCS, vol. 4941, pp. 157–172. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  22. 22.
    Sacerdoti Coen, C., Tassi, E.: A constructive and formal proof of Lebesgue Dominated Convergence Theorem in the interactive theorem prover Matita. Journal of Formalized Reasoning 1, 51–89 (2008)MathSciNetzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • François Garillot
    • 1
  • Georges Gonthier
    • 2
  • Assia Mahboubi
    • 3
  • Laurence Rideau
    • 4
  1. 1.Microsoft Research - INRIA Joint CentreFrance
  2. 2.Microsoft Research CambridgeUK
  3. 3.Inria Saclay and LIX, École PolytechniqueFrance
  4. 4.Inria Sophia-Antipolis – MéditerranéeFrance

Personalised recommendations