aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-06-10 03:59:02 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-06-10 03:59:02 +0000
commit02029b85488b0e8e1831810aa16d53626c418270 (patch)
treec3af25c39600d80426ba2f57afa89eb1e577c404
parent4df8db96f699de88490983e2c2e0f30854bed77c (diff)
Use the projections for reflexivity, symmetry and transitivity proofs to
ensure the type and relation used in the subgoals stay syntactically the same, for compatibility with [ring] which does not use conversion to find the ring on a relation. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12179 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/rewrite.ml43
1 files changed, 2 insertions, 1 deletions
diff --git a/tactics/rewrite.ml4 b/tactics/rewrite.ml4
index 4eccf41ca..213dcc8d2 100644
--- a/tactics/rewrite.ml4
+++ b/tactics/rewrite.ml4
@@ -217,7 +217,8 @@ let proper_proof env evars carrier relation x =
let find_class_proof proof_type proof_method env evars carrier relation =
try
let goal = mkApp (Lazy.force proof_type, [| carrier ; relation |]) in
- Typeclasses.resolve_one_typeclass env evars goal
+ let c = Typeclasses.resolve_one_typeclass env evars goal in
+ mkApp (Lazy.force proof_method, [| carrier; relation; c |])
with e when Logic.catchable_exception e -> raise Not_found
let get_reflexive_proof env = find_class_proof reflexive_type reflexive_proof env