aboutsummaryrefslogtreecommitdiff
path: root/pretyping
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-07-08 12:32:00 +0200
committerEmilio Jesus Gallego Arias2020-07-08 12:32:00 +0200
commitcf383c1f2e0c9effd9774bc25579eeaca4c24ae0 (patch)
tree229f3c6023d32b09cc646ce28497f91d096cb87e /pretyping
parent5331a010acbb71131bc5dc1c62cc08d9814de21b (diff)
parent834c64015b608b8152e160d37e6f07a3106ff26b (diff)
Merge PR #12645: Cleanup Evarutil API
Reviewed-by: ejgallego Reviewed-by: herbelin
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/evarconv.ml5
-rw-r--r--pretyping/evarsolve.ml11
-rw-r--r--pretyping/globEnv.ml3
3 files changed, 9 insertions, 10 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml
index 6880383a31..400acc25b6 100644
--- a/pretyping/evarconv.ml
+++ b/pretyping/evarconv.ml
@@ -1411,11 +1411,10 @@ let second_order_matching flags env_rhs evd (evk,args) (test,argoccs) rhs =
refresh_universes ~status:Evd.univ_flexible (Some true)
env_evar_unf evd evty
else evd, evty in
- let (evd, ev) = new_evar_instance sign evd evty ~filter instance in
- let evk = fst (destEvar evd ev) in
+ let (evd, evk) = new_pure_evar sign evd evty ~filter in
evsref := (evk,evty,inst,prefer_abstraction)::!evsref;
fixed := Evar.Set.add evk !fixed;
- evd, ev
+ evd, mkEvar (evk, instance)
in
let evd, rhs' = apply_on_subterm env_rhs evd fixed set_var test c rhs in
if debug_ho_unification () then
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml
index 348d7c0b2f..79839099f7 100644
--- a/pretyping/evarsolve.ml
+++ b/pretyping/evarsolve.ml
@@ -698,10 +698,9 @@ let make_projectable_subst aliases sigma evi args =
*)
let define_evar_from_virtual_equation define_fun env evd src t_in_env ty_t_in_sign sign filter inst_in_env =
- let (evd, evar_in_env) = new_evar_instance sign evd ty_t_in_sign ~filter ~src inst_in_env in
+ let (evd, evk) = new_pure_evar sign evd ty_t_in_sign ~filter ~src in
let t_in_env = whd_evar evd t_in_env in
- let (evk, _) = destEvar evd evar_in_env in
- let evd = define_fun env evd None (destEvar evd evar_in_env) t_in_env in
+ let evd = define_fun env evd None (evk, inst_in_env) t_in_env in
let ctxt = named_context_of_val sign in
let inst_in_sign = inst_of_vars (Filter.filter_list filter ctxt) in
let evar_in_sign = mkEvar (evk, inst_in_sign) in
@@ -770,9 +769,9 @@ let materialize_evar define_fun env evd k (evk1,args1) ty_in_env =
define_evar_from_virtual_equation define_fun env evd src ty_in_env
ty_t_in_sign sign2 filter2 inst2_in_env in
let (evd, ev2_in_sign) =
- new_evar_instance sign2 evd ev2ty_in_sign ~filter:filter2 ~src inst2_in_sign in
- let ev2_in_env = (fst (destEvar evd ev2_in_sign), inst2_in_env) in
- (evd, ev2_in_sign, ev2_in_env)
+ new_pure_evar sign2 evd ev2ty_in_sign ~filter:filter2 ~src in
+ let ev2_in_env = (ev2_in_sign, inst2_in_env) in
+ (evd, mkEvar (ev2_in_sign, inst2_in_sign), ev2_in_env)
let restrict_upon_filter evd evk p args =
let oldfullfilter = evar_filter (Evd.find_undefined evd evk) in
diff --git a/pretyping/globEnv.ml b/pretyping/globEnv.ml
index 05abb86f46..81a62a7048 100644
--- a/pretyping/globEnv.ml
+++ b/pretyping/globEnv.ml
@@ -110,7 +110,8 @@ let new_evar env sigma ?src ?naming typ =
let instance = rel_list (nb_rel env.renamed_env) inst_vars in
let (subst, _, sign) = Lazy.force env.extra in
let typ' = csubst_subst subst typ in
- new_evar_instance sign sigma typ' ?src ?naming instance
+ let (sigma, evk) = new_pure_evar sign sigma typ' ?src ?naming in
+ (sigma, mkEvar (evk, instance))
let new_type_evar env sigma ~src =
let sigma, s = Evd.new_sort_variable Evd.univ_flexible_alg sigma in