diff options
| author | Matthieu Sozeau | 2014-09-01 15:59:34 +0200 |
|---|---|---|
| committer | Matthieu Sozeau | 2014-09-01 16:01:54 +0200 |
| commit | a4d454beaafd030a5564a395d380748cf90e1b75 (patch) | |
| tree | ca19efa9da4c6c811c9787789b16b21abe4b2cc5 /pretyping | |
| parent | 14e6dc5800a28d49dcdb714b06c02fced7b9fdaf (diff) | |
In evarconv, do first-order unification of LetIn's properly, ensuring we compare bodies
of convertible types! Bug found by B. Ziliani.
Diffstat (limited to 'pretyping')
| -rw-r--r-- | pretyping/evarconv.ml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml index 627a954f9d..edd1080713 100644 --- a/pretyping/evarconv.ml +++ b/pretyping/evarconv.ml @@ -483,10 +483,11 @@ and evar_eqappr_x ?(rhs_is_already_stuck = false) ts env evd pbty | MaybeFlexible (v1,sk1'), MaybeFlexible (v2,sk2') -> begin match kind_of_term term1, kind_of_term term2 with - | LetIn (na,b1,t1,c'1), LetIn (_,b2,_,c'2) -> + | LetIn (na,b1,t1,c'1), LetIn (_,b2,t2,c'2) -> let f1 i = ise_and i - [(fun i -> evar_conv_x ts env i CONV b1 b2); + [(fun i -> evar_conv_x ts env i CONV t1 t2); + (fun i -> evar_conv_x ts env i CONV b1 b2); (fun i -> let b = nf_evar i b1 in let t = nf_evar i t1 in |
