aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authormsozeau2009-06-10 03:59:02 +0000
committermsozeau2009-06-10 03:59:02 +0000
commit02029b85488b0e8e1831810aa16d53626c418270 (patch)
treec3af25c39600d80426ba2f57afa89eb1e577c404 /tactics
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
Diffstat (limited to 'tactics')
-rw-r--r--tactics/rewrite.ml43
1 files changed, 2 insertions, 1 deletions
diff --git a/tactics/rewrite.ml4 b/tactics/rewrite.ml4
index 4eccf41cac..213dcc8d21 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