Handling Polymorphism in Automated Deduction

  • Jean-François Couchot
  • Stéphane Lescuyer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4603)


Polymorphism has become a common way of designing short and reusable programs by abstracting generic definitions from type-specific ones. Such a convenience is valuable in logic as well, because it unburdens the specifier from writing redundant declarations of logical symbols. However, top shelf automated theorem provers such as Simplify, Yices or other SMT-LIB ones do not handle polymorphism. To this end, we present efficient reductions of polymorphism in both unsorted and many-sorted first order logics. For each encoding, we show that the formulas and their encoded counterparts are logically equivalent in the context of automated theorem proving. The efficiency keynote is to disturb the prover as little as possible, especially the internal decision procedures used for special sorts, e.g. integer linear arithmetic, to which we apply a special treatment. The corresponding implementations are presented in the framework of the Why/Caduceus toolkit.


First Order Logic Proof Obligation Proof Assistant Ground Term Automate Deduction 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)MATHGoogle Scholar
  2. 2.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. In: Coq’Art: the Calculus of Inductive Constructions, Springer, Heidelberg (2004)Google Scholar
  3. 3.
    Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: a Theorem Prover for Program Checking. J. ACM 52(3), 365–473 (2005)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Déharbe, D., Ranise, S.: BDD-driven First-Order Satisfiability Procedures (extended version). Technical Report 4630, LORIA (2002)Google Scholar
  5. 5.
    Ranise, S., Tinelli, C.: The Satisfiability Modulo Theories Library (SMT-LIB) (2006), http://www.SMT-LIB.org
  6. 6.
    Dutertre, B., de Moura, L.: The YICES SMT Solver (2006), avaliable at http://yices.csl.sri.com/tool-paper.pdf
  7. 7.
    Barrett, C.W., Berezin, S.: CVC Lite: A New Implementation of the Cooperating Validity Checker Category B. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 515–518. Springer, Heidelberg (2004)Google Scholar
  8. 8.
    Couchot, J.F., Lescuyer, S.: Handling Polymorphism in Automated Deduction (2007), Available at http://lri.fr/~couchot/ftp/publis/CL07t.ps
  9. 9.
    Enderton, H.B.: A Mathematical Introduction to Logic. Ac. Press, Inc. (1972)Google Scholar
  10. 10.
    Armando, A., Ranise, S., Rusinowitch, M.: A Rewriting Approach to Satisfiability Procedures. Journal of Information and computation 183, 140–164 (2003)MATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Lescuyer, S.: Codage de la logique du premier ordre polymorphe multi-sortée dans la logique sans sortes. Master’s thesis (in english), pp. 28–58 (2006)Google Scholar
  12. 12.
    Pugh, W.: The Omega Test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM 35(8), 102–114 (1992)CrossRefGoogle Scholar
  13. 13.
    Ayache, N., Filliâtre, J.C.: Combining the Coq Proof Assistant with First-Order Decision Procedures. Unpublished (March 2006)Google Scholar
  14. 14.
    Filliâtre, J.C.: Why: a multi-language multi-prover verification tool. Research Report 1366, LRI, Université Paris Sud (March 2003)Google Scholar
  15. 15.
    Filliâtre, J.C., Marché, C.: Multi-Prover Verification of C Programs. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 15–29. Springer, Heidelberg (2004)Google Scholar
  16. 16.
    Dahn, I.: Interpretation of a mizar-like logic in first-order logic. In: Selected Papers from Automated Deduction in Classical and Non-Classical Logics, pp. 137–151. Springer, London (2000)CrossRefGoogle Scholar
  17. 17.
    Schmitt, S., Lorigo, L., Kreitz, C., Nogin, A.: Jprover: Integrating connection-based theorem proving into interactive proof assistants. In: Goré, R.P., Leitsch, A., Nipkow, T. (eds.) IJCAR 2001. LNCS (LNAI), vol. 2083, pp. 421–426. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  18. 18.
    Rudnicki, P.: An overview of the Mizar project. In: Workshop on Types for Proofs and Programs, pp. 311–330 (1992)Google Scholar
  19. 19.
    Allen, S.F., Constable, R.L., Eaton, R., Kreitz, C., Lorigo, L.: The nuprl open logical environment. In: McAllester, D. (ed.) Automated Deduction - CADE-17. LNCS, vol. 1831, pp. 170–176. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  20. 20.
    Hurd, J.: First-Order Proof Tactics in Higher-Order Logic Theorem Provers. Technical Report NASA/CP-2003-212448, NASA (2003)Google Scholar
  21. 21.
    Meng, J., Paulson, L.C.: Translating Higher-Order Problems to First-Order Clauses. In: ESCoR (CEUR Workshop Proceedings), vol. 192, pp. 70–80 (2006)Google Scholar
  22. 22.
    Meng, J., Quigley, C., Paulson, L.C.: Automation for interactive proof: first prototype. Inf. Comput. 204(10), 1575–1596 (2006)MATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    Schulz, S.: System Description: E 0.81. In: Basin, D., Rusinowitch, M. (eds.) IJCAR 2004. LNCS (LNAI), vol. 3097, pp. 223–228. Springer, Heidelberg (2004)Google Scholar
  24. 24.
    Riazanov, A., Voronkov, A.: The design and Implementation of VAMPIRE. AI Commun. 15(2-3), 91–110 (2002)MATHGoogle Scholar
  25. 25.
    Paulson, L.C.: A generic tableau prover and its integration with Isabelle. J. UCS: Journal of Universal Computer Science 5(3), 73 (1999)MATHMathSciNetGoogle Scholar
  26. 26.
    Bouillaguet, C., Kuncak, V., Wies, T., Zee, K., Rinard, M.: Using first-order theorem provers in the Jahob data structure verification system. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 74–88. Springer, Heidelberg (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Jean-François Couchot
    • 1
    • 2
  • Stéphane Lescuyer
    • 1
    • 2
  1. 1.INRIA Futurs, ProVal, Parc Orsay Université, F-91893 
  2. 2.LRI, Univ Paris-Sud, CNRS, Orsay, F-91405 

Personalised recommendations