diff options
author | 2016-07-07 20:27:56 +0200 | |
---|---|---|
committer | 2016-07-07 20:31:30 +0200 | |
commit | 17d8a49247ad82ca59def4c577031101f61bbf08 (patch) | |
tree | 8ee004df8d6ff7e252f346e3593169e374de8796 /pretyping/evarsolve.ml | |
parent | 21be7a5dba2fdfa40fd7b4a3d94610947d202bb7 (diff) | |
parent | 947b30150602ba951efa4717d30d4a380482a963 (diff) |
Merge branch 'v8.5' into v8.6
Diffstat (limited to 'pretyping/evarsolve.ml')
-rw-r--r-- | pretyping/evarsolve.ml | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml index 338ac4300..6c8677855 100644 --- a/pretyping/evarsolve.ml +++ b/pretyping/evarsolve.ml @@ -47,7 +47,8 @@ let refresh_level evd s = | None -> true | Some l -> not (Evd.is_flexible_level evd l) -let refresh_universes ?(status=univ_rigid) ?(onlyalg=false) pbty env evd t = +let refresh_universes ?(status=univ_rigid) ?(onlyalg=false) ?(refreshset=false) + pbty env evd t = let evdref = ref evd in let modified = ref false in let rec refresh status dir t = @@ -62,6 +63,10 @@ let refresh_universes ?(status=univ_rigid) ?(onlyalg=false) pbty env evd t = else set_leq_sort env !evdref s s' in modified := true; evdref := evd; mkSort s' + | Sort (Prop Pos as s) when refreshset && not dir -> + let s' = evd_comb0 (new_sort_variable status) evdref in + let evd = set_leq_sort env !evdref s s' in + modified := true; evdref := evd; mkSort s' | Prod (na,u,v) -> mkProd (na,u,refresh status dir v) | _ -> t |