Deciding Equality in the Constructor Theory

  • Pierre Corbineau
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4502)


We give a decision procedure for the satisfiability of finite sets of ground equations and disequations in the constructor theory: the terms used may contain both uninterpreted and constructor function symbols. Constructor function symbols are by definition injective and terms built with distinct constructors are themselves distinct. This corresponds to properties of (co-)inductive type constructors in inductive type theory. We do this in a framework where function symbols can be partially applied and equations between functions are allowed. We describe our algorithm as an extension of congruence-closure and give correctness, completeness and termination arguments. We then proceed to discuss its limits and extension possibilities by describing its implementation in the Coq proof assistant.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bachmair, L., Tiwari, A., Vigneron, L.: Abstract congruence closure. Journal of Automated Reasoning 31(2), 129–168 (2003)MATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Bachmair, L., Tiwari, A.: Abstract congruence closure and specializations. In: McAllester, D. (ed.) CADE-17. LNCS, vol. 1831, pp. 64–78. Springer, Heidelberg (2000)Google Scholar
  3. 3.
    Contejean, E., Corbineau, P.: Reflecting proofs in first-order logic with equality. In: Nieuwenhuis, R. (ed.) CADE-20. LNCS (LNAI), vol. 3632, pp. 7–22. Springer, Heidelberg (2005)Google Scholar
  4. 4.
    Corbineau, P.: Autour de la clôture de congruence avec Coq. Master’s thesis, Université Paris 7 (2001),
  5. 5.
    Corbineau, P.: Démonstration automatique en Théorie des Types. PhD thesis, Université Paris 11 (2005),
  6. 6.
    Downey, P.J., Sethi, R., Tarjan, R.E.: Variations on the common subexpressions problem. Journal of the ACM 27(4), 771–785 (1980)CrossRefMathSciNetGoogle Scholar
  7. 7.
    Markov, A.A.: On the impossibility of certain algorithms in the theory of associative systems. Doklady Akademii Nauk SSSR 55(7), 587–590 (1947) (in Russian, English translation in C.R. Acad. Sci. URSS, 55, 533–586)Google Scholar
  8. 8.
    McBride, C.: Dependently Typed Functional Programs and their Proofs. PhD thesis, University of Edinburgh (1999),
  9. 9.
    Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie-Mellon University, available as Technical Report CMU-CS-98-154 (1998)Google Scholar
  10. 10.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. on Programming, Languages and Systems 1(2), 245–257 (1979)MATHCrossRefGoogle Scholar
  11. 11.
    Nelson, G., Oppen, D.C.: Fast decision procedures based on congruence closure. Journal of the ACM 27, 356–364 (1980)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Nieuwenhuis, R., Oliveras, A.: Proof-Producing Congruence Closure. In: Giesl, J. (ed.) RTA 2005. LNCS, vol. 3467, pp. 453–468. Springer, Heidelberg (2005)Google Scholar
  13. 13.
    The Objective Caml language,
  14. 14.
    Oppen, D.C.: Reasoning about recursively defined data structures. Journal of the ACM (1978)Google Scholar
  15. 15.
    Post, E.L.: Recursive unsolvability of a problem of Thue. Journal of Symbolic Logic 13, 1–11 (1947)MathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Pierre Corbineau
    • 1
  1. 1.Institute for Computing and Information Science, Radboud University Nijmegen, Postbus 9010, 6500GL NijmegenThe Netherlands

Personalised recommendations