aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-08 17:03:37 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-08 17:03:37 +0000
commit6703700903619004f05ad56293b7ec0a2e672d3a (patch)
tree7686794722387220929994965c01dc6642d5e8e0 /theories
parent7e324da8bd211f01593952ac51bd309e80c7546a (diff)
Change implementation of resolution for typeclasses to use a customized
eauto instead of an arbitrary tactic. Export more from eauto to allow easier debugging. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10534 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories')
-rw-r--r--theories/Classes/Init.v19
-rw-r--r--theories/Classes/Relations.v6
2 files changed, 21 insertions, 4 deletions
diff --git a/theories/Classes/Init.v b/theories/Classes/Init.v
index aec260873..beeb74589 100644
--- a/theories/Classes/Init.v
+++ b/theories/Classes/Init.v
@@ -1 +1,18 @@
-Ltac typeclass_instantiation := eauto with typeclass_instances || eauto.
+(************************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(************************************************************************)
+
+(* Initialization code for typeclasses, setting up the default tactic
+ for instance search.
+
+ Author: Matthieu Sozeau
+ Institution: LRI, CNRS UMR 8623 - UniversitÃcopyright Paris Sud
+ 91405 Orsay, France *)
+
+(* $Id: Init.v 616 2007-08-08 12:28:10Z msozeau $ *)
+
+(* Ltac typeclass_instantiation := typeclasses eauto || eauto. *)
diff --git a/theories/Classes/Relations.v b/theories/Classes/Relations.v
index 694cab59b..aaeb18654 100644
--- a/theories/Classes/Relations.v
+++ b/theories/Classes/Relations.v
@@ -77,7 +77,7 @@ Program Instance [ Irreflexive A R ] => flip_irreflexive : Irreflexive A (flip R
Program Instance [ Symmetric A R ] => flip_symmetric : Symmetric A (flip R).
- Solve Obligations using unfold flip ; program_simpl ; eapply symmetric ; eauto.
+ Solve Obligations using unfold flip ; program_simpl ; apply symmetric ; eauto.
Program Instance [ Asymmetric A R ] => flip_asymmetric : Asymmetric A (flip R).
@@ -320,12 +320,12 @@ Class [ Equivalence A eqA ] => Antisymmetric (R : relationT A) :=
Program Instance [ eq : Equivalence A eqA, ? Antisymmetric eq R ] =>
flip_antisymmetric : ? Antisymmetric eq (flip R).
- Solve Obligations using unfold flip ; program_simpl ; eapply antisymmetric ; eauto.
+ Solve Obligations using unfold inverse, flip ; program_simpl ; eapply @antisymmetric ; eauto.
Program Instance [ eq : Equivalence A eqA, ? Antisymmetric eq (R : relation A) ] =>
inverse_antisymmetric : ? Antisymmetric eq (inverse R).
- Solve Obligations using unfold inverse, flip ; program_simpl ; eapply antisymmetric ; eauto.
+ Solve Obligations using unfold inverse, flip ; program_simpl ; eapply @antisymmetric ; eauto.
(** Leibinz equality [eq] is an equivalence relation. *)