diff options
author | 2009-06-10 03:59:02 +0000 | |
---|---|---|
committer | 2009-06-10 03:59:02 +0000 | |
commit | 02029b85488b0e8e1831810aa16d53626c418270 (patch) | |
tree | c3af25c39600d80426ba2f57afa89eb1e577c404 | |
parent | 4df8db96f699de88490983e2c2e0f30854bed77c (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.ml4 | 3 |
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 |