diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2015-10-14 18:17:42 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2015-10-14 18:17:42 +0200 |
commit | 26af31cb46c7baf92325dd22bf6ee33aaa2172d2 (patch) | |
tree | 3adc9a34251ff69c74f1aa72e072df694e1f2306 | |
parent | b8c681338cad546c397a1803c55183cc6526adfb (diff) |
Occur-check in evar_define was not strong enough.
-rw-r--r-- | pretyping/evarsolve.ml | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml index 754ad8f58..bbc4f1db2 100644 --- a/pretyping/evarsolve.ml +++ b/pretyping/evarsolve.ml @@ -1484,7 +1484,7 @@ and evar_define conv_algo ?(choose=false) env evd pbty (evk,argsv as ev) rhs = if occur_meta body then raise MetaOccurInBodyInternal; (* invert_definition may have instantiate some evars of rhs with evk *) (* so we recheck acyclicity *) - if occur_evar evk body then raise (OccurCheckIn (evd',body)); + if occur_evar_upto evd' evk body then raise (OccurCheckIn (evd',body)); (* needed only if an inferred type *) let evd', body = refresh_universes pbty env evd' body in (* Cannot strictly type instantiations since the unification algorithm |