aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-04-10 02:38:39 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-04-10 02:38:39 +0000
commitdf02bdb78e823db77605ed158a48b0fbd9312561 (patch)
tree514bd59b04438260dbbfc1698e217e874e62bb22
parentb14e3ea6a7c2c50e2a1de3147ac5b364df383aac (diff)
Bug context incoherent au passage du lambda et du let dans evar_eqappr
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1566 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/evarconv.ml17
1 files changed, 11 insertions, 6 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml
index 9ac498b38..382fba7f0 100644
--- a/pretyping/evarconv.ml
+++ b/pretyping/evarconv.ml
@@ -203,14 +203,19 @@ and evar_eqappr_x env isevars pbty (term1,l1 as appr1) (term2,l2 as appr2) =
| IsSort s1, IsSort s2 when l1=[] & l2=[] -> base_sort_cmp pbty s1 s2
- | IsLambda (_,c1,c'1), IsLambda (_,c2,c'2) when l1=[] & l2=[] ->
+ | IsLambda (na,c1,c'1), IsLambda (_,c2,c'2) when l1=[] & l2=[] ->
evar_conv_x env isevars CONV c1 c2
- & evar_conv_x env isevars CONV c'1 c'2
+ &
+ (let c = nf_ise1 (evars_of isevars) c1 in
+ evar_conv_x (push_rel_assum (na,c) env) isevars CONV c'1 c'2)
- | IsLetIn (_,b1,_,c'1), IsLetIn (_,b2,_,c'2) ->
+ | IsLetIn (na,b1,t1,c'1), IsLetIn (_,b2,_,c'2) ->
let f1 () =
evar_conv_x env isevars CONV b1 b2
- & evar_conv_x env isevars pbty c'1 c'2
+ &
+ (let b = nf_ise1 (evars_of isevars) b1 in
+ let t = nf_ise1 (evars_of isevars) t1 in
+ evar_conv_x (push_rel_def (na,b,t) env) isevars pbty c'1 c'2)
& (List.length l1 = List.length l2)
& (List.for_all2 (evar_conv_x env isevars CONV) l1 l2)
and f2 () =
@@ -228,8 +233,8 @@ and evar_eqappr_x env isevars pbty (term1,l1 as appr1) (term2,l2 as appr2) =
| IsProd (n,c1,c'1), IsProd (_,c2,c'2) when l1=[] & l2=[] ->
evar_conv_x env isevars CONV c1 c2
&
- (let d = nf_ise1 (evars_of isevars) c1 in
- evar_conv_x (push_rel_assum (n,d) env) isevars pbty c'1 c'2)
+ (let c = nf_ise1 (evars_of isevars) c1 in
+ evar_conv_x (push_rel_assum (n,c) env) isevars pbty c'1 c'2)
| IsMutInd (sp1,cl1), IsMutInd (sp2,cl2) ->
sp1=sp2