aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsacerdot2004-10-18 15:00:29 +0000
committersacerdot2004-10-18 15:00:29 +0000
commit50fa3c5983fd630e56f34b55729d194181feef18 (patch)
tree756d0697c300e1fa700cd330464bcbabf7862681
parent3c76f306c68a0ea4f02700043c4b4b1be877f4e9 (diff)
The lem field was not computed properly for morphisms whose argument was
a quantified Leibniz relation. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6236 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/setoid_replace.ml9
1 files changed, 7 insertions, 2 deletions
diff --git a/tactics/setoid_replace.ml b/tactics/setoid_replace.ml
index a1b6f97c72..19ab45105b 100644
--- a/tactics/setoid_replace.ml
+++ b/tactics/setoid_replace.ml
@@ -248,7 +248,7 @@ let prrelation_class =
(*CSC: still "setoid" in the error message *)
str "[[ Error: setoid on equality " ++ prterm eq ++ str " not found! ]]")
| Leibniz (Some ty) -> prterm ty
- | Leibniz None -> str "?"
+ | Leibniz None -> str "_"
let prmorphism_argument_gen prrelation (variance,rel) =
prrelation rel ++
@@ -677,7 +677,12 @@ let add_morphism lemma_infos mor_name (m,quantifiers_rev,args,output) =
List.map
(fun (v,rel) ->
match rel with
- Leibniz t -> v, Leibniz t
+ Leibniz (Some t) ->
+ assert (subst=[||]);
+ v, Leibniz (Some t)
+ | Leibniz None ->
+ assert (Array.length subst = 1);
+ v, Leibniz (Some (subst.(0)))
| Relation rel -> v, Relation (apply_to_relation subst rel)) args
in
compose_lam quantifiers_rev