Proving Equalities in a Commutative Ring Done Right in Coq

We present a new implementation of a reflexive tactic which solves equalities in a ring structure inside the Coq system. The efficiency is improved to a point that we can now prove equalities that were previously beyond reach. A special care has been taken to implement efficient algorithms while keeping the complexity of the correctness proofs low. This leads to a single tool, with a single implementation, which can be addressed for a ring or for a semi-ring, abstract or not, using the Leibniz equality or a setoid equality. This example shows that such reflective methods can be effectively used in symbolic computation.

[1]  Julien Narboux,et al.  A Decision Procedure for Geometry in Coq , 2004, TPHOLs.

[2]  George E. Collins,et al.  Hauptvortrag: Quantifier elimination for real closed fields by cylindrical algebraic decomposition , 1975, Automata Theory and Formal Languages.

[3]  David Delahaye,et al.  A Tactic Language for the System Coq , 2000, LPAR.

[4]  Benjamin Grégoire,et al.  A compiled implementation of strong reduction , 2002, ICFP '02.

[5]  John Harrison,et al.  A Skeptic's Approach to Combining HOL and Maple , 1998, Journal of Automated Reasoning.

[6]  Samuel Boutin,et al.  Using Reflection to Build Efficient and Certified Decision Procedures , 1997, TACS.

[7]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[8]  Martin Hofmann,et al.  A Simple Model for Quotient Types , 1995, TLCA.

[9]  Gilles Barthe,et al.  Setoids in type theory , 2003, Journal of Functional Programming.

[10]  David Delahaye,et al.  Field, une procédure de décision pour les nombres réels en Coq , 2001, JFLA.

[11]  Robert L. Constable,et al.  The semantics of reflected proof , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.