Mathematics in Computer Science

, Volume 9, Issue 1, pp 41–62 | Cite as

Coquelicot: A User-Friendly Library of Real Analysis for Coq

  • Sylvie Boldo
  • Catherine Lelay
  • Guillaume Melquiond
Article

Abstract

Real analysis is pervasive to many applications, if only because it is a suitable tool for modeling physical or socio-economical systems. As such, its support is warranted in proof assistants, so that the users have a way to formally verify mathematical theorems and correctness of critical systems. The Coq system comes with an axiomatization of standard real numbers and a library of theorems on real analysis. Unfortunately, this standard library is lacking some widely used results. For instance, power series are not developed further than their definition. Moreover, the definitions of integrals and derivatives are based on dependent types, which make them especially cumbersome to use in practice. To palliate these inadequacies, we have designed a user-friendly library: Coquelicot. An easier way of writing formulas and theorem statements is achieved by relying on total functions in place of dependent types for limits, derivatives, integrals, power series, and so on. To help with the proof process, the library comes with a comprehensive set of theorems that cover not only these notions, but also some extensions such as parametric integrals, two-dimensional differentiability, asymptotic behaviors. It also offers some automation for performing differentiability proofs. Moreover, Coquelicot is a conservative extension of Coq’s standard library and we provide correspondence theorems between the two libraries. We have exercised the library on several use cases: in an exam at university entry level, for the definitions and properties of Bessel functions, and for the solution of the one-dimensional wave equation.

Keywords

Standard real analysis Coq proof assistant Library Generalized limits Differentiability Parametric integrals Power series 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Baccalauréat général, Série S, Mathématiques, Session 2013, June 2013 (2013). http://eduscol.education.fr/prep-exam/sujets/13MASCOMLR1.pdf
  2. 2.
    Bertot, Y.: Proving the convergence of a sequence based on algebraic-geometric means to π (2013). http://www-sop.inria.fr/members/Yves.Bertot/proofs.html
  3. 3.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. Springer, Berlin (2004)Google Scholar
  4. 4.
    Besson, F.: Fast reflexive arithmetic tactics: the linear case and beyond. In: Proceedings of the International Workshop on Types for Proofs and Programs (TYPES’06), Nottingham, UK. Lecture Notes in Computer Science, vol. 4502, pp. 48–62 (2006)Google Scholar
  5. 5.
    Boldo S., Clément F., Filliâtre J.-C., Mayero M., Melquiond G., Weis P.: Wave equation numerical resolution: a comprehensive mechanized proof of a C program. J. Autom. Reason. 50(4), 423–456 (2013)CrossRefMATHGoogle Scholar
  6. 6.
    Boldo, S., Lelay, C., Melquiond, G.: Improving real analysis in Coq: a user-friendly approach to integrals and derivatives. In: Hawblitzel, C., Miller, D. (eds.) Proceedings of the 2nd International Conference on Certified Programs and Proofs (CPP), Kyoto, Japan. Lecture Notes in Computer Science, vol. 7679, pp. 289–304 (2012)Google Scholar
  7. 7.
    Boldo, S., Lelay, C., Melquiond, G.: Formalization of real analysis: a survey of proof assistants and libraries. Math. Struct. Comput. Sci. (2014, to be published). http://hal.inria.fr/hal-00806920
  8. 8.
    Cohen, C.: Reasoning about big enough numbers in Coq. In: Proceedings of the 4th Coq Workshop, Princeton, NJ, USA (2012)Google Scholar
  9. 9.
    Cruz-Filipe, L., Geuvers, H., Wiedijk, F.: C-CoRN: the constructive Coq repository at Nijmegen. In: Asperti, A., Bancerek, G., Trybulec, A. (eds.) Proceedings of the 3rd International Conference of Mathematical Knowledge Management (MKM). Lecture Notes in Computer Science, vol. 3119, pp. 88–103 (2004)Google Scholar
  10. 10.
    Cruz-Filipe, L.: A constructive formalization of the fundamental theorem of calculus. In: Geuvers, H., Wiedijk, F. (eds.) Proceedings of the International Workshop on Types for Proofs and Programs (TYPES’02). Lecture Notes in Computer Science, vol. 2646, pp. 108–126. Springer, Berlin (2003)Google Scholar
  11. 11.
    Daumas M., Lester D., Muñoz C.: Verified real number calculations: a library for interval arithmetic. IEEE Trans. Comput. 58(2), 226–237 (2009)CrossRefMathSciNetGoogle Scholar
  12. 12.
    Dutertre, B.: Elements of mathematical analysis in PVS. In: von Wright, J., Grundy, J., Harrison, J. (eds.) Proceedings of the 9th International Conference Theorem Proving in Higher Order Logics (TPHOLs). Lecture Notes in Computer Science, vol. 1125, pp. 141–156 (1996)Google Scholar
  13. 13.
    Fleuriot, J.: On the mechanization of real analysis in Isabelle/HOL. In: Aagaard, M., Harrison, J. (eds.) Proceeding of the 13th International Conference of Theorem Proving in Higher Order Logics (TPHOLs). Lecture Notes in Computer Science, vol. 1869, pp. 145–161 (2000)Google Scholar
  14. 14.
    Gamboa R., Kaufmann M.: Nonstandard analysis in ACL2. J. Autom. Reason. 27(4), 323–351 (2001)CrossRefMATHMathSciNetGoogle Scholar
  15. 15.
    Geuvers, H., Niqui, M.: Constructive reals in Coq: axioms and categoricity. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) Proceedings of the International Workshop on Types for Proofs and Programs (TYPES’00). Lecture Notes in Computer Science, vol. 2277, pp. 79–95 (2002)Google Scholar
  16. 16.
    Harrison J.: Constructing the real numbers in HOL. Form. Methods Syst. Des. 5(1–2), 35–59 (1994)CrossRefMATHGoogle Scholar
  17. 17.
    Harrison, J.: HOL light: an overview. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs), Munich, Germany. Lecture Notes in Computer Science, vol. 5674, pp. 60–66 (2009)Google Scholar
  18. 18.
    Harrison J.: The HOL light theory of Euclidean space. J. Autom. Reason. 50, 173–190 (2013)CrossRefMATHGoogle Scholar
  19. 19.
    Hölzl, J., Immler, F., Huffman, B.: Type classes and filters for mathematical analysis in Isabelle/HOL. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds) Proceedings of the 4th International Conference on Interactive Theorem Proving (ITP), Rennes, France. Lecture Notes in Computer Science, vol. 7998, pp. 279–294 (2013)Google Scholar
  20. 20.
    Kaliszyk C., O’Connor R.: Computing with classical real numbers. J. Formaliz. Reason. 2(1), 27–39 (2009)MathSciNetGoogle Scholar
  21. 21.
    Krebbers, R., Spitters, B.: Type classes for efficient exact real arithmetic in Coq. Log. Methods Comput. Sci. 9(1:1), 1–27 (2013)Google Scholar
  22. 22.
    Lelay, C.: A new formalization of power series in Coq. In: 5th Coq Workshop, Rennes, France, July 2013, pp. 1–2 (2013). http://coq.inria.fr/coq-workshop/2013#Lelay
  23. 23.
    Lelay, C., Melquiond, G.: Différentiabilité et intégrabilité en Coq. Application à la formule de d’Alembert. In: 23èmes Journées Francophones des Langages Applicatifs, Carnac, France, pp. 119–133 (2012)Google Scholar
  24. 24.
    Mayero, M.: Formalisation et automatisation de preuves en analyses réelle et numérique. PhD thesis, Université Paris VI (2001)Google Scholar
  25. 25.
    McLaughlin, S., Harrison, J.: A proof-producing decision procedure for real arithmetic. In: Nieuwenhuis, R. (ed.) Proceedings of the 20th International Conference on Automated Deduction (CADE-20), Tallinn, Estonia. Lecture Notes in Computer Science, vol. 3632, pp. 295–314 (2005)Google Scholar
  26. 26.
    Melquiond, G.: Proving bounds on real-valued functions with computations. In: Armando, A., Baumgartner, P., Dowek, G. (eds.) Proceedings of the 4th International Joint Conference on Automated Reasoning (IJCAR), Sydney, Australia. Lecture Notes in Artificial Intelligence, vol. 5195, pp. 2–17 (2008)Google Scholar
  27. 27.
    Muñoz C., Narkawicz A.: Formalization of a Bernstein polynomials and applications to global optimization. J. Autom. Reason. 51(2), 151–196 (2013)CrossRefGoogle Scholar
  28. 28.
    Naumowicz, A., Korniłowicz, A.: A brief overview of Mizar. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) Proceedings of the 22th International Conference on Theorem Proving in Higher Order Logics (TPHOLs). Lecture Notes in Computer Science, vol. 5674, pp. 67–72 (2009)Google Scholar
  29. 29.
    O’Connor R.: A monadic, functional implementation of real numbers. Math. Struct. Comput. Sci. 17(1), 129–159 (2007)CrossRefMATHMathSciNetGoogle Scholar
  30. 30.
    O’Connor R., Spitters B.: A computer-verified monadic functional implementation of the integral. Theor. Comput. Sci. 411(37), 3386–3402 (2010)CrossRefMATHMathSciNetGoogle Scholar
  31. 31.
    Owre, S., Rushby, J., Shankar, N.: PVS: a prototype verification system. In: Kapur, D. (ed.) Proceedings of the 11th International Conference on Automated Deduction (CADE), Saratoga, NY, June 1992. Lecture Notes in Artificial Intelligence, vol. 607, pp. 748–752 (1992)Google Scholar
  32. 32.
    Pottier, L.: Connecting Gröbner bases programs with Coq to do proofs in algebra, geometry and arithmetics. In: Sutcliffe, G., Rudnicki, P., Schmidt, R.A., Konev, B., Schulz, S. (eds.) Knowledge Exchange: Automated Provers and Proof Assistants. CEUR Workshop Proceedings, Doha, Qatar, pp. 67–76 (2008)Google Scholar
  33. 33.
    Rushby J., Owre S., Shankar N.: Subtypes for specifications: predicate subtyping in PVS. IEEE Trans. Softw. Eng. 24(9), 709–720 (1998)CrossRefGoogle Scholar
  34. 34.
    Trybulec, A.: Some features of the Mizar language. In: Proceedings of the ESPRIT Workshop, Torino, Italy (1993)Google Scholar
  35. 35.
    Trybulec, A.: Non negative real numbers. Part I. J. Formal. Math. (1998). AddendaGoogle Scholar

Copyright information

© Springer Basel 2014

Authors and Affiliations

  • Sylvie Boldo
    • 1
  • Catherine Lelay
    • 1
  • Guillaume Melquiond
    • 1
  1. 1.Inria Saclay-Île-de-FranceUniversité Paris-SudOrsay CedexFrance

Personalised recommendations