aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2014-08-20 22:30:37 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2014-09-12 10:39:33 +0200
commitb006f10e7d591417844ffa1f04eeb926d6092d7b (patch)
tree9253b32cb1adabafce28f123ef9eb11d4fa122f4
parentca300977724a6b065a98c025d400c71f41b9df4b (diff)
Uniformisation of the order of arguments env and sigma.
-rw-r--r--dev/doc/changes.txt7
-rw-r--r--interp/constrintern.ml72
-rw-r--r--interp/constrintern.mli30
-rw-r--r--interp/modintern.ml2
-rw-r--r--plugins/Derive/derive.ml2
-rw-r--r--plugins/decl_mode/decl_interp.ml102
-rw-r--r--plugins/decl_mode/decl_interp.mli2
-rw-r--r--plugins/decl_mode/decl_proof_instr.ml4
-rw-r--r--plugins/decl_mode/g_decl_mode.ml42
-rw-r--r--plugins/firstorder/instances.ml2
-rw-r--r--plugins/funind/g_indfun.ml44
-rw-r--r--plugins/funind/glob_term_to_relation.ml36
-rw-r--r--plugins/funind/indfun.ml6
-rw-r--r--plugins/funind/merge.ml2
-rw-r--r--plugins/funind/recdef.ml10
-rw-r--r--plugins/setoid_ring/newring.ml44
-rw-r--r--pretyping/cases.ml16
-rw-r--r--pretyping/cases.mli2
-rw-r--r--pretyping/coercion.ml2
-rw-r--r--pretyping/evarconv.ml2
-rw-r--r--pretyping/evarsolve.ml2
-rw-r--r--pretyping/evarutil.ml28
-rw-r--r--pretyping/evarutil.mli12
-rw-r--r--pretyping/pretyping.ml46
-rw-r--r--pretyping/pretyping.mli14
-rw-r--r--pretyping/tacred.ml66
-rw-r--r--pretyping/unification.ml6
-rw-r--r--proofs/clenv.ml3
-rw-r--r--proofs/evar_refiner.ml2
-rw-r--r--proofs/proofview.ml6
-rw-r--r--stm/lemmas.ml4
-rw-r--r--tactics/auto.ml2
-rw-r--r--tactics/equality.ml32
-rw-r--r--tactics/evar_tactics.ml2
-rw-r--r--tactics/extratactics.ml412
-rw-r--r--tactics/leminv.ml2
-rw-r--r--tactics/rewrite.ml18
-rw-r--r--tactics/tacinterp.ml8
-rw-r--r--tactics/tactics.ml4
-rw-r--r--toplevel/classes.ml10
-rw-r--r--toplevel/command.ml50
-rw-r--r--toplevel/record.ml16
-rw-r--r--toplevel/vernacentries.ml6
-rw-r--r--toplevel/whelp.ml42
44 files changed, 332 insertions, 330 deletions
diff --git a/dev/doc/changes.txt b/dev/doc/changes.txt
index cea4cf122..d872110b9 100644
--- a/dev/doc/changes.txt
+++ b/dev/doc/changes.txt
@@ -91,8 +91,11 @@
"intros_pattern" and "intros_patterns" is not anymore behaving like
tactic "intros" on the empty list.
-- API of cut tactics changed: cut_intro should be replaced by
- "enough_tac Anonymous"
+- API of cut tactics changed: for instance, cut_intro should be replaced by
+ "assert_after Anonymous"
+
+- All functions taking an env and a sigma (or an evdref) now takes the
+ env first.
=========================================
= CHANGES BETWEEN COQ V8.3 AND COQ V8.4 =
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index d020a5153..66f51b19e 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -1846,55 +1846,55 @@ let intern_pattern globalenv patt =
(* All evars resolved *)
-let interp_gen kind sigma env ?(impls=empty_internalization_env) c =
+let interp_gen kind env sigma ?(impls=empty_internalization_env) c =
let c = intern_gen kind ~impls env c in
- understand ~expected_type:kind sigma env c
+ understand ~expected_type:kind env sigma c
-let interp_constr sigma env ?(impls=empty_internalization_env) c =
- interp_gen WithoutTypeConstraint sigma env c
+let interp_constr env sigma ?(impls=empty_internalization_env) c =
+ interp_gen WithoutTypeConstraint env sigma c
-let interp_type sigma env ?(impls=empty_internalization_env) c =
- interp_gen IsType sigma env ~impls c
+let interp_type env sigma ?(impls=empty_internalization_env) c =
+ interp_gen IsType env sigma ~impls c
-let interp_casted_constr sigma env ?(impls=empty_internalization_env) c typ =
- interp_gen (OfType typ) sigma env ~impls c
+let interp_casted_constr env sigma ?(impls=empty_internalization_env) c typ =
+ interp_gen (OfType typ) env sigma ~impls c
(* Not all evars expected to be resolved *)
-let interp_open_constr sigma env c =
- understand_tcc sigma env (intern_constr env c)
+let interp_open_constr env sigma c =
+ understand_tcc env sigma (intern_constr env c)
(* Not all evars expected to be resolved and computation of implicit args *)
-let interp_constr_evars_gen_impls evdref
- env ?(impls=empty_internalization_env) expected_type c =
+let interp_constr_evars_gen_impls env evdref
+ ?(impls=empty_internalization_env) expected_type c =
let c = intern_gen expected_type ~impls env c in
let imps = Implicit_quantifiers.implicits_of_glob_constr ~with_products:(expected_type == IsType) c in
- understand_tcc_evars evdref env ~expected_type c, imps
+ understand_tcc_evars env evdref ~expected_type c, imps
-let interp_constr_evars_impls evdref env ?(impls=empty_internalization_env) c =
- interp_constr_evars_gen_impls evdref env ~impls WithoutTypeConstraint c
+let interp_constr_evars_impls env evdref ?(impls=empty_internalization_env) c =
+ interp_constr_evars_gen_impls env evdref ~impls WithoutTypeConstraint c
-let interp_casted_constr_evars_impls evdref env ?(impls=empty_internalization_env) c typ =
- interp_constr_evars_gen_impls evdref env ~impls (OfType typ) c
+let interp_casted_constr_evars_impls env evdref ?(impls=empty_internalization_env) c typ =
+ interp_constr_evars_gen_impls env evdref ~impls (OfType typ) c
-let interp_type_evars_impls evdref env ?(impls=empty_internalization_env) c =
- interp_constr_evars_gen_impls evdref env ~impls IsType c
+let interp_type_evars_impls env evdref ?(impls=empty_internalization_env) c =
+ interp_constr_evars_gen_impls env evdref ~impls IsType c
(* Not all evars expected to be resolved, with side-effect on evars *)
-let interp_constr_evars_gen evdref env ?(impls=empty_internalization_env) expected_type c =
+let interp_constr_evars_gen env evdref ?(impls=empty_internalization_env) expected_type c =
let c = intern_gen expected_type ~impls env c in
- understand_tcc_evars evdref env ~expected_type c
+ understand_tcc_evars env evdref ~expected_type c
-let interp_constr_evars evdref env ?(impls=empty_internalization_env) c =
- interp_constr_evars_gen evdref env WithoutTypeConstraint ~impls c
+let interp_constr_evars env evdref ?(impls=empty_internalization_env) c =
+ interp_constr_evars_gen env evdref WithoutTypeConstraint ~impls c
-let interp_casted_constr_evars evdref env ?(impls=empty_internalization_env) c typ =
- interp_constr_evars_gen evdref env ~impls (OfType typ) c
+let interp_casted_constr_evars env evdref ?(impls=empty_internalization_env) c typ =
+ interp_constr_evars_gen env evdref ~impls (OfType typ) c
-let interp_type_evars evdref env ?(impls=empty_internalization_env) c =
- interp_constr_evars_gen evdref env IsType ~impls c
+let interp_type_evars env evdref ?(impls=empty_internalization_env) c =
+ interp_constr_evars_gen env evdref IsType ~impls c
(* Miscellaneous *)
@@ -1921,15 +1921,15 @@ let interp_notation_constr ?(impls=empty_internalization_env) nenv a =
(* Interpret binders and contexts *)
-let interp_binder sigma env na t =
+let interp_binder env sigma na t =
let t = intern_gen IsType env t in
let t' = locate_if_isevar (loc_of_glob_constr t) na t in
- understand ~expected_type:IsType sigma env t'
+ understand ~expected_type:IsType env sigma t'
-let interp_binder_evars evdref env na t =
+let interp_binder_evars env evdref na t =
let t = intern_gen IsType env t in
let t' = locate_if_isevar (loc_of_glob_constr t) na t in
- understand_tcc_evars evdref env ~expected_type:IsType t'
+ understand_tcc_evars env evdref ~expected_type:IsType t'
open Environ
@@ -1947,7 +1947,7 @@ let intern_context global_level env impl_env binders =
with InternalizationError (loc,e) ->
user_err_loc (loc,"internalize", explain_internalization_error e)
-let interp_rawcontext_evars evdref env bl =
+let interp_rawcontext_evars env evdref bl =
let (env, par, _, impls) =
List.fold_left
(fun (env,params,n,impls) (na, k, b, t) ->
@@ -1955,7 +1955,7 @@ let interp_rawcontext_evars evdref env bl =
None ->
let t' = locate_if_isevar (loc_of_glob_constr t) na t in
let t =
- understand_tcc_evars evdref env ~expected_type:IsType t' in
+ understand_tcc_evars env evdref ~expected_type:IsType t' in
let d = (na,None,t) in
let impls =
if k == Implicit then
@@ -1965,14 +1965,14 @@ let interp_rawcontext_evars evdref env bl =
in
(push_rel d env, d::params, succ n, impls)
| Some b ->
- let c = understand_judgment_tcc evdref env b in
+ let c = understand_judgment_tcc env evdref b in
let d = (na, Some c.uj_val, c.uj_type) in
(push_rel d env, d::params, succ n, impls))
(env,[],1,[]) (List.rev bl)
in (env, par), impls
-let interp_context_evars ?(global_level=false) ?(impl_env=empty_internalization_env) evdref env params =
+let interp_context_evars ?(global_level=false) ?(impl_env=empty_internalization_env) env evdref params =
let int_env,bl = intern_context global_level env impl_env params in
- let x = interp_rawcontext_evars evdref env bl in
+ let x = interp_rawcontext_evars env evdref bl in
int_env, x
diff --git a/interp/constrintern.mli b/interp/constrintern.mli
index b5cad5d28..932c871e5 100644
--- a/interp/constrintern.mli
+++ b/interp/constrintern.mli
@@ -97,41 +97,41 @@ val intern_context : bool -> env -> internalization_env -> local_binder list ->
(** Main interpretation functions expecting evars to be all resolved *)
-val interp_constr : evar_map -> env -> ?impls:internalization_env ->
+val interp_constr : env -> evar_map -> ?impls:internalization_env ->
constr_expr -> constr Evd.in_evar_universe_context
-val interp_casted_constr : evar_map -> env -> ?impls:internalization_env ->
+val interp_casted_constr : env -> evar_map -> ?impls:internalization_env ->
constr_expr -> types -> constr Evd.in_evar_universe_context
-val interp_type : evar_map -> env -> ?impls:internalization_env ->
+val interp_type : env -> evar_map -> ?impls:internalization_env ->
constr_expr -> types Evd.in_evar_universe_context
(** Main interpretation function expecting evars to be all resolved *)
-val interp_open_constr : evar_map -> env -> constr_expr -> evar_map * constr
+val interp_open_constr : env -> evar_map -> constr_expr -> evar_map * constr
(** Accepting unresolved evars *)
-val interp_constr_evars : evar_map ref -> env ->
+val interp_constr_evars : env -> evar_map ref ->
?impls:internalization_env -> constr_expr -> constr
-val interp_casted_constr_evars : evar_map ref -> env ->
+val interp_casted_constr_evars : env -> evar_map ref ->
?impls:internalization_env -> constr_expr -> types -> constr
-val interp_type_evars : evar_map ref -> env ->
+val interp_type_evars : env -> evar_map ref ->
?impls:internalization_env -> constr_expr -> types
(** Accepting unresolved evars and giving back the manual implicit arguments *)
-val interp_constr_evars_impls : evar_map ref -> env ->
+val interp_constr_evars_impls : env -> evar_map ref ->
?impls:internalization_env -> constr_expr ->
constr * Impargs.manual_implicits
-val interp_casted_constr_evars_impls : evar_map ref -> env ->
+val interp_casted_constr_evars_impls : env -> evar_map ref ->
?impls:internalization_env -> constr_expr -> types ->
constr * Impargs.manual_implicits
-val interp_type_evars_impls : evar_map ref -> env ->
+val interp_type_evars_impls : env -> evar_map ref ->
?impls:internalization_env -> constr_expr ->
types * Impargs.manual_implicits
@@ -149,25 +149,25 @@ val interp_reference : ltac_sign -> reference -> glob_constr
(** Interpret binders *)
-val interp_binder : evar_map -> env -> Name.t -> constr_expr ->
+val interp_binder : env -> evar_map -> Name.t -> constr_expr ->
types Evd.in_evar_universe_context
-val interp_binder_evars : evar_map ref -> env -> Name.t -> constr_expr -> types
+val interp_binder_evars : env -> evar_map ref -> Name.t -> constr_expr -> types
(** Interpret contexts: returns extended env and context *)
val interp_context_evars :
?global_level:bool -> ?impl_env:internalization_env ->
- evar_map ref -> env -> local_binder list ->
+ env -> evar_map ref -> local_binder list ->
internalization_env * ((env * rel_context) * Impargs.manual_implicits)
(* val interp_context_gen : (env -> glob_constr -> unsafe_type_judgment Evd.in_evar_universe_context) -> *)
(* (env -> Evarutil.type_constraint -> glob_constr -> unsafe_judgment Evd.in_evar_universe_context) -> *)
(* ?global_level:bool -> ?impl_env:internalization_env -> *)
-(* evar_map -> env -> local_binder list -> internalization_env * ((env * Evd.evar_universe_context * rel_context * sorts list) * Impargs.manual_implicits) *)
+(* env -> evar_map -> local_binder list -> internalization_env * ((env * Evd.evar_universe_context * rel_context * sorts list) * Impargs.manual_implicits) *)
(* val interp_context : ?global_level:bool -> ?impl_env:internalization_env -> *)
-(* evar_map -> env -> local_binder list -> *)
+(* env -> evar_map -> local_binder list -> *)
(* internalization_env * *)
(* ((env * Evd.evar_universe_context * rel_context * sorts list) * Impargs.manual_implicits) *)
diff --git a/interp/modintern.ml b/interp/modintern.ml
index 2d81194f2..c8a42c293 100644
--- a/interp/modintern.ml
+++ b/interp/modintern.ml
@@ -61,7 +61,7 @@ let transl_with_decl env = function
| CWith_Module ((_,fqid),qid) ->
WithMod (fqid,lookup_module qid)
| CWith_Definition ((_,fqid),c) ->
- WithDef (fqid,fst (interp_constr Evd.empty env c)) (*FIXME*)
+ WithDef (fqid,fst (interp_constr env Evd.empty c)) (*FIXME*)
let loc_of_module = function
| CMident (loc,_) | CMapply (loc,_,_) | CMwith (loc,_,_) -> loc
diff --git a/plugins/Derive/derive.ml b/plugins/Derive/derive.ml
index 26bf18a43..156c9771a 100644
--- a/plugins/Derive/derive.ml
+++ b/plugins/Derive/derive.ml
@@ -34,7 +34,7 @@ let start_deriving f suchthat lemma =
TCons ( env , sigma , f_type , (fun sigma ef ->
let env' = Environ.push_named (f , (Some ef) , f_type) env in
let evdref = ref sigma in
- let suchthat = Constrintern.interp_type_evars evdref env' suchthat in
+ let suchthat = Constrintern.interp_type_evars env' evdref suchthat in
TCons ( env' , !evdref , suchthat , (fun sigma _ ->
TNil sigma))))))
in
diff --git a/plugins/decl_mode/decl_interp.ml b/plugins/decl_mode/decl_interp.ml
index 541b59920..10d1b6314 100644
--- a/plugins/decl_mode/decl_interp.ml
+++ b/plugins/decl_mode/decl_interp.ml
@@ -143,14 +143,14 @@ let intern_proof_instr globs instr=
(* INTERP *)
-let interp_justification_items sigma env =
- Option.map (List.map (fun c -> fst (*FIXME*)(understand sigma env (fst c))))
+let interp_justification_items env sigma =
+ Option.map (List.map (fun c -> fst (*FIXME*)(understand env sigma (fst c))))
-let interp_constr check_sort sigma env c =
+let interp_constr check_sort env sigma c =
if check_sort then
- fst (understand sigma env ~expected_type:IsType (fst c) (* FIXME *))
+ fst (understand env sigma ~expected_type:IsType (fst c) (* FIXME *))
else
- fst (understand sigma env (fst c))
+ fst (understand env sigma (fst c))
let special_whd env =
let infos=Closure.create_clos_infos Closure.betadeltaiota env in
@@ -172,16 +172,16 @@ let get_eq_typ info env =
let typ = decompose_eq env (get_last env) in
typ
-let interp_constr_in_type typ sigma env c =
- fst (understand sigma env (fst c) ~expected_type:(OfType typ))(*FIXME*)
+let interp_constr_in_type typ env sigma c =
+ fst (understand env sigma (fst c) ~expected_type:(OfType typ))(*FIXME*)
-let interp_statement interp_it sigma env st =
+let interp_statement interp_it env sigma st =
{st_label=st.st_label;
- st_it=interp_it sigma env st.st_it}
+ st_it=interp_it env sigma st.st_it}
-let interp_constr_or_thesis check_sort sigma env = function
+let interp_constr_or_thesis check_sort env sigma = function
Thesis n -> Thesis n
- | This c -> This (interp_constr check_sort sigma env c)
+ | This c -> This (interp_constr check_sort env sigma c)
let abstract_one_hyp inject h glob =
match h with
@@ -212,11 +212,11 @@ let rec match_hyps blend names constr = function
let rhyps,head = match_hyps blend qnames body q in
qhyp::rhyps,head
-let interp_hyps_gen inject blend sigma env hyps head =
- let constr= fst(*FIXME*) (understand sigma env (glob_constr_of_hyps inject hyps head)) in
+let interp_hyps_gen inject blend env sigma hyps head =
+ let constr= fst(*FIXME*) (understand env sigma (glob_constr_of_hyps inject hyps head)) in
match_hyps blend [] constr hyps
-let interp_hyps sigma env hyps = fst (interp_hyps_gen fst (fun x _ -> x) sigma env hyps glob_prop)
+let interp_hyps env sigma hyps = fst (interp_hyps_gen fst (fun x _ -> x) env sigma hyps glob_prop)
let dummy_prefix= Id.of_string "__"
@@ -318,7 +318,7 @@ let rec match_aliases names constr = function
let detype_ground c = Detyping.detype false [] [] Evd.empty c
-let interp_cases info sigma env params (pat:cases_pattern_expr) hyps =
+let interp_cases info env sigma params (pat:cases_pattern_expr) hyps =
let et,pinfo =
match info.pm_stack with
Per(et,pi,_,_)::_ -> et,pi
@@ -365,7 +365,7 @@ let interp_cases info sigma env params (pat:cases_pattern_expr) hyps =
let term3=List.fold_right let_in_one_alias aliases term2 in
let term4=List.fold_right prod_one_id loc_ids term3 in
let term5=List.fold_right prod_one_hyp params term4 in
- let constr = fst (understand sigma env term5)(*FIXME*) in
+ let constr = fst (understand env sigma term5)(*FIXME*) in
let tparams,nam4,rest4 = match_args destProd [] constr params in
let tpatvars,nam3,rest3 = match_args destProd nam4 rest4 loc_ids in
let taliases,nam2,rest2 = match_aliases nam3 rest3 aliases in
@@ -382,22 +382,22 @@ let interp_cases info sigma env params (pat:cases_pattern_expr) hyps =
pat_pat=patt;
pat_expr=pat},thyps
-let interp_cut interp_it sigma env cut=
- let nenv,nstat = interp_it sigma env cut.cut_stat in
+let interp_cut interp_it env sigma cut=
+ let nenv,nstat = interp_it env sigma cut.cut_stat in
{cut with
cut_stat=nstat;
- cut_by=interp_justification_items sigma nenv cut.cut_by}
+ cut_by=interp_justification_items nenv sigma cut.cut_by}
-let interp_no_bind interp_it sigma env x =
- env,interp_it sigma env x
+let interp_no_bind interp_it env sigma x =
+ env,interp_it env sigma x
-let interp_suffices_clause sigma env (hyps,cot)=
+let interp_suffices_clause env sigma (hyps,cot)=
let (locvars,_) as res =
match cot with
This (c,_) ->
- let nhyps,nc = interp_hyps_gen fst (fun x _ -> x) sigma env hyps c in
+ let nhyps,nc = interp_hyps_gen fst (fun x _ -> x) env sigma hyps c in
nhyps,This nc
- | Thesis Plain as th -> interp_hyps sigma env hyps,th
+ | Thesis Plain as th -> interp_hyps env sigma hyps,th
| Thesis (For n) -> error "\"thesis for\" is not applicable here." in
let push_one hyp env0 =
match hyp with
@@ -408,9 +408,9 @@ let interp_suffices_clause sigma env (hyps,cot)=
let nenv = List.fold_right push_one locvars env in
nenv,res
-let interp_casee sigma env = function
- Real c -> Real (fst (understand sigma env (fst c)))(*FIXME*)
- | Virtual cut -> Virtual (interp_cut (interp_no_bind (interp_statement (interp_constr true))) sigma env cut)
+let interp_casee env sigma = function
+ Real c -> Real (fst (understand env sigma (fst c)))(*FIXME*)
+ | Virtual cut -> Virtual (interp_cut (interp_no_bind (interp_statement (interp_constr true))) env sigma cut)
let abstract_one_arg = function
(loc,(id,None)) ->
@@ -424,50 +424,50 @@ let abstract_one_arg = function
let glob_constr_of_fun args body =
List.fold_right abstract_one_arg args (fst body)
-let interp_fun sigma env args body =
- let constr=fst (*FIXME*) (understand sigma env (glob_constr_of_fun args body)) in
+let interp_fun env sigma args body =
+ let constr=fst (*FIXME*) (understand env sigma (glob_constr_of_fun args body)) in
match_args destLambda [] constr args
-let rec interp_bare_proof_instr info (sigma:Evd.evar_map) (env:Environ.env) = function
- Pthus i -> Pthus (interp_bare_proof_instr info sigma env i)
- | Pthen i -> Pthen (interp_bare_proof_instr info sigma env i)
- | Phence i -> Phence (interp_bare_proof_instr info sigma env i)
+let rec interp_bare_proof_instr info env sigma = function
+ Pthus i -> Pthus (interp_bare_proof_instr info env sigma i)
+ | Pthen i -> Pthen (interp_bare_proof_instr info env sigma i)
+ | Phence i -> Phence (interp_bare_proof_instr info env sigma i)
| Pcut c -> Pcut (interp_cut
(interp_no_bind (interp_statement
(interp_constr_or_thesis true)))
- sigma env c)
+ env sigma c)
| Psuffices c ->
- Psuffices (interp_cut interp_suffices_clause sigma env c)
+ Psuffices (interp_cut interp_suffices_clause env sigma c)
| Prew (s,c) -> Prew (s,interp_cut
(interp_no_bind (interp_statement
(interp_constr_in_type (get_eq_typ info env))))
- sigma env c)
+ env sigma c)
- | Psuppose hyps -> Psuppose (interp_hyps sigma env hyps)
+ | Psuppose hyps -> Psuppose (interp_hyps env sigma hyps)
| Pcase (params,pat,hyps) ->
- let tparams,tpat,thyps = interp_cases info sigma env params pat hyps in
+ let tparams,tpat,thyps = interp_cases info env sigma params pat hyps in
Pcase (tparams,tpat,thyps)
| Ptake witl ->
- Ptake (List.map (fun c -> fst (*FIXME*) (understand sigma env (fst c))) witl)
- | Pconsider (c,hyps) -> Pconsider (interp_constr false sigma env c,
- interp_hyps sigma env hyps)
- | Pper (et,c) -> Pper (et,interp_casee sigma env c)
+ Ptake (List.map (fun c -> fst (*FIXME*) (understand env sigma (fst c))) witl)
+ | Pconsider (c,hyps) -> Pconsider (interp_constr false env sigma c,
+ interp_hyps env sigma hyps)
+ | Pper (et,c) -> Pper (et,interp_casee env sigma c)
| Pend bt -> Pend bt
| Pescape -> Pescape
- | Passume hyps -> Passume (interp_hyps sigma env hyps)
- | Pgiven hyps -> Pgiven (interp_hyps sigma env hyps)
- | Plet hyps -> Plet (interp_hyps sigma env hyps)
- | Pclaim st -> Pclaim (interp_statement (interp_constr true) sigma env st)
- | Pfocus st -> Pfocus (interp_statement (interp_constr true) sigma env st)
+ | Passume hyps -> Passume (interp_hyps env sigma hyps)
+ | Pgiven hyps -> Pgiven (interp_hyps env sigma hyps)
+ | Plet hyps -> Plet (interp_hyps env sigma hyps)
+ | Pclaim st -> Pclaim (interp_statement (interp_constr true) env sigma st)
+ | Pfocus st -> Pfocus (interp_statement (interp_constr true) env sigma st)
| Pdefine (id,args,body) ->
- let nargs,_,nbody = interp_fun sigma env args body in
+ let nargs,_,nbody = interp_fun env sigma args body in
Pdefine (id,nargs,nbody)
| Pcast (id,typ) ->
- Pcast(id,interp_constr true sigma env typ)
+ Pcast(id,interp_constr true env sigma typ)
-let interp_proof_instr info sigma env instr=
+let interp_proof_instr info env sigma instr=
{emph = instr.emph;
- instr = interp_bare_proof_instr info sigma env instr.instr}
+ instr = interp_bare_proof_instr info env sigma instr.instr}
diff --git a/plugins/decl_mode/decl_interp.mli b/plugins/decl_mode/decl_interp.mli
index 6fbf5d25c..492964603 100644
--- a/plugins/decl_mode/decl_interp.mli
+++ b/plugins/decl_mode/decl_interp.mli
@@ -12,4 +12,4 @@ open Decl_expr
val intern_proof_instr : glob_sign -> raw_proof_instr -> glob_proof_instr
val interp_proof_instr : Decl_mode.pm_info ->
- Evd.evar_map -> Environ.env -> glob_proof_instr -> proof_instr
+ Environ.env -> Evd.evar_map -> glob_proof_instr -> proof_instr
diff --git a/plugins/decl_mode/decl_proof_instr.ml b/plugins/decl_mode/decl_proof_instr.ml
index c5a474d39..422b7c499 100644
--- a/plugins/decl_mode/decl_proof_instr.ml
+++ b/plugins/decl_mode/decl_proof_instr.ml
@@ -1278,7 +1278,7 @@ let understand_my_constr c gls =
| GEvar _ -> GHole (Loc.ghost,Evar_kinds.QuestionMark Evar_kinds.Expand,None)
| rc -> map_glob_constr frob rc
in
- Pretyping.understand_tcc (sig_sig gls) env ~expected_type:(Pretyping.OfType (pf_concl gls)) (frob rawc)
+ Pretyping.understand_tcc env (sig_sig gls) ~expected_type:(Pretyping.OfType (pf_concl gls)) (frob rawc)
let my_refine c gls =
let oc = understand_my_constr c gls in
@@ -1458,7 +1458,7 @@ let do_instr raw_instr pts =
let ist = {ltacvars = Id.Set.empty; ltacrecvars = Id.Map.empty; genv = env} in
let glob_instr = intern_proof_instr ist raw_instr in
let instr =
- interp_proof_instr (get_its_info gl) sigma env glob_instr in
+ interp_proof_instr (get_its_info gl) env sigma glob_instr in
ignore (Pfedit.by (Proofview.V82.tactic (tclTHEN (eval_instr instr) clean_tmp)))
else () end;
postprocess pts raw_instr.instr;
diff --git a/plugins/decl_mode/g_decl_mode.ml4 b/plugins/decl_mode/g_decl_mode.ml4
index 9d909fda3..3ea1e9313 100644
--- a/plugins/decl_mode/g_decl_mode.ml4
+++ b/plugins/decl_mode/g_decl_mode.ml4
@@ -55,8 +55,8 @@ let pr_glob_proof_instr _ _ _ instr = Empty.abort instr
let interp_proof_instr _ { Evd.it = gl ; sigma = sigma }=
Decl_interp.interp_proof_instr
(Decl_mode.get_info sigma gl)
- (sigma)
(Goal.V82.env sigma gl)
+ (sigma)
let vernac_decl_proof () =
let pf = Proof_global.give_me_the_proof () in
diff --git a/plugins/firstorder/instances.ml b/plugins/firstorder/instances.ml
index 6fd934654..2987ce60a 100644
--- a/plugins/firstorder/instances.ml
+++ b/plugins/firstorder/instances.ml
@@ -127,7 +127,7 @@ let mk_open_instance id idc gl m t=
GLambda(loc,name,k,GHole (Loc.ghost,Evar_kinds.BinderType name,None),t1)
| _-> anomaly (Pp.str "can't happen") in
let ntt=try
- fst (Pretyping.understand evmap env (raux m rawt))(*FIXME*)
+ fst (Pretyping.understand env evmap (raux m rawt))(*FIXME*)
with e when Errors.noncritical e ->
error "Untypable instance, maybe higher-order non-prenex quantification" in
decompose_lam_n_assum m ntt
diff --git a/plugins/funind/g_indfun.ml4 b/plugins/funind/g_indfun.ml4
index bbb8a96c5..a597e5d45 100644
--- a/plugins/funind/g_indfun.ml4
+++ b/plugins/funind/g_indfun.ml4
@@ -474,9 +474,9 @@ VERNAC COMMAND EXTEND MergeFunind CLASSIFIED AS SIDEFF
[ "Mergeschemes" "(" ident(id1) ne_ident_list(cl1) ")"
"with" "(" ident(id2) ne_ident_list(cl2) ")" "using" ident(id) ] ->
[
- let f1,ctx = Constrintern.interp_constr Evd.empty (Global.env())
+ let f1,ctx = Constrintern.interp_constr (Global.env()) Evd.empty
(CRef (Libnames.Ident (Loc.ghost,id1),None)) in
- let f2,ctx' = Constrintern.interp_constr Evd.empty (Global.env())
+ let f2,ctx' = Constrintern.interp_constr (Global.env()) Evd.empty
(CRef (Libnames.Ident (Loc.ghost,id2),None)) in
let f1type = Typing.type_of (Global.env()) Evd.empty f1 in
let f2type = Typing.type_of (Global.env()) Evd.empty f2 in
diff --git a/plugins/funind/glob_term_to_relation.ml b/plugins/funind/glob_term_to_relation.ml
index 36942636f..6d2274365 100644
--- a/plugins/funind/glob_term_to_relation.ml
+++ b/plugins/funind/glob_term_to_relation.ml
@@ -333,8 +333,8 @@ let raw_push_named (na,raw_value,raw_typ) env =
match na with
| Anonymous -> env
| Name id ->
- let value = Option.map (fun x-> fst (Pretyping.understand Evd.empty env x)) raw_value in
- let typ,ctx = Pretyping.understand Evd.empty env ~expected_type:Pretyping.IsType raw_typ in
+ let value = Option.map (fun x-> fst (Pretyping.understand env Evd.empty x)) raw_value in
+ let typ,ctx = Pretyping.understand env Evd.empty ~expected_type:Pretyping.IsType raw_typ in
Environ.push_named (id,value,typ) env
@@ -486,7 +486,7 @@ let rec build_entry_lc env funnames avoid rt : glob_constr build_entry_return =
a pseudo value "v1 ... vn".
The "value" of this branch is then simply [res]
*)
- let rt_as_constr,ctx = Pretyping.understand Evd.empty env rt in
+ let rt_as_constr,ctx = Pretyping.understand env Evd.empty rt in
let rt_typ = Typing.type_of env Evd.empty rt_as_constr in
let res_raw_type = Detyping.detype false [] (Termops.names_of_rel_context env) Evd.empty rt_typ in
let res = fresh_id args_res.to_avoid "_res" in
@@ -595,7 +595,7 @@ let rec build_entry_lc env funnames avoid rt : glob_constr build_entry_return =
and combine the two result
*)
let v_res = build_entry_lc env funnames avoid v in
- let v_as_constr,ctx = Pretyping.understand Evd.empty env v in
+ let v_as_constr,ctx = Pretyping.understand env Evd.empty v in
let v_type = Typing.type_of env Evd.empty v_as_constr in
let new_env =
match n with
@@ -611,7 +611,7 @@ let rec build_entry_lc env funnames avoid rt : glob_constr build_entry_return =
let make_discr = make_discr_match brl in
build_entry_lc_from_case env funnames make_discr el brl avoid
| GIf(_,b,(na,e_option),lhs,rhs) ->
- let b_as_constr,ctx = Pretyping.understand Evd.empty env b in
+ let b_as_constr,ctx = Pretyping.understand env Evd.empty b in
let b_typ = Typing.type_of env Evd.empty b_as_constr in
let (ind,_) =
try Inductiveops.find_inductive env Evd.empty b_typ
@@ -643,7 +643,7 @@ let rec build_entry_lc env funnames avoid rt : glob_constr build_entry_return =
)
nal
in
- let b_as_constr,ctx = Pretyping.understand Evd.empty env b in
+ let b_as_constr,ctx = Pretyping.understand env Evd.empty b in
let b_typ = Typing.type_of env Evd.empty b_as_constr in
let (ind,_) =
try Inductiveops.find_inductive env Evd.empty b_typ
@@ -691,7 +691,7 @@ and build_entry_lc_from_case env funname make_discr
in
let types =
List.map (fun (case_arg,_) ->
- let case_arg_as_constr,ctx = Pretyping.understand Evd.empty env case_arg in
+ let case_arg_as_constr,ctx = Pretyping.understand env Evd.empty case_arg in
Typing.type_of env Evd.empty case_arg_as_constr
) el
in
@@ -896,7 +896,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
let new_t =
mkGApp(mkGVar(mk_rel_id this_relname),args'@[res_rt])
in
- let t',ctx = Pretyping.understand Evd.empty env new_t in
+ let t',ctx = Pretyping.understand env Evd.empty new_t in
let new_env = Environ.push_rel (n,None,t') env in
let new_b,id_to_exclude =
rebuild_cons new_env
@@ -916,7 +916,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
try
observe (str "computing new type for eq : " ++ pr_glob_constr rt);
let t' =
- try fst (Pretyping.understand Evd.empty env t)(*FIXME*)
+ try fst (Pretyping.understand env Evd.empty t)(*FIXME*)
with e when Errors.noncritical e -> raise Continue
in
let is_in_b = is_free_in id b in
@@ -939,7 +939,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
mkGProd(n,t,new_b),id_to_exclude
with Continue ->
let jmeq = Globnames.IndRef (fst (destInd (jmeq ()))) in
- let ty',ctx = Pretyping.understand Evd.empty env ty in
+ let ty',ctx = Pretyping.understand env Evd.empty ty in
let ind,args' = Inductive.find_inductive env ty' in
let mib,_ = Global.lookup_inductive (fst ind) in
let nparam = mib.Declarations.mind_nparams in
@@ -961,7 +961,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
GApp(loc1,GRef(loc2,jmeq,None),[ty;GVar(loc3,id);rt_typ;rt])
in
observe (str "computing new type for jmeq : " ++ pr_glob_constr eq');
- let eq'_as_constr,ctx = Pretyping.understand Evd.empty env eq' in
+ let eq'_as_constr,ctx = Pretyping.understand env Evd.empty eq' in
observe (str " computing new type for jmeq : done") ;
let new_args =
match kind_of_term eq'_as_constr with
@@ -1011,7 +1011,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
if is_in_b then b else replace_var_by_term id rt b
in
let new_env =
- let t',ctx = Pretyping.understand Evd.empty env eq' in
+ let t',ctx = Pretyping.understand env Evd.empty eq' in
Environ.push_rel (n,None,t') env
in
let new_b,id_to_exclude =
@@ -1049,7 +1049,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
else raise Continue
with Continue ->
observe (str "computing new type for prod : " ++ pr_glob_constr rt);
- let t',ctx = Pretyping.understand Evd.empty env t in
+ let t',ctx = Pretyping.understand env Evd.empty t in
let new_env = Environ.push_rel (n,None,t') env in
let new_b,id_to_exclude =
rebuild_cons new_env
@@ -1065,7 +1065,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
end
| _ ->
observe (str "computing new type for prod : " ++ pr_glob_constr rt);
- let t',ctx = Pretyping.understand Evd.empty env t in
+ let t',ctx = Pretyping.understand env Evd.empty t in
let new_env = Environ.push_rel (n,None,t') env in
let new_b,id_to_exclude =
rebuild_cons new_env
@@ -1084,7 +1084,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
let not_free_in_t id = not (is_free_in id t) in
let new_crossed_types = t :: crossed_types in
observe (str "computing new type for lambda : " ++ pr_glob_constr rt);
- let t',ctx = Pretyping.understand Evd.empty env t in
+ let t',ctx = Pretyping.understand env Evd.empty t in
match n with
| Name id ->
let new_env = Environ.push_rel (n,None,t') env in
@@ -1106,7 +1106,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
| GLetIn(_,n,t,b) ->
begin
let not_free_in_t id = not (is_free_in id t) in
- let t',ctx = Pretyping.understand Evd.empty env t in
+ let t',ctx = Pretyping.understand env Evd.empty t in
let type_t' = Typing.type_of env Evd.empty t' in
let new_env = Environ.push_rel (n,Some t',type_t') env in
let new_b,id_to_exclude =
@@ -1131,7 +1131,7 @@ let rec rebuild_cons env nb_args relname args crossed_types depth rt =
args (crossed_types)
depth t
in
- let t',ctx = Pretyping.understand Evd.empty env new_t in
+ let t',ctx = Pretyping.understand env Evd.empty new_t in
let new_env = Environ.push_rel (na,None,t') env in
let new_b,id_to_exclude =
rebuild_cons new_env
@@ -1290,7 +1290,7 @@ let do_build_inductive
let rel_arities = Array.mapi rel_arity funsargs in
Util.Array.fold_left2 (fun env rel_name rel_ar ->
Environ.push_named (rel_name,None,
- fst (with_full_print (Constrintern.interp_constr Evd.empty env) rel_ar)) env) env relnames rel_arities
+ fst (with_full_print (Constrintern.interp_constr env Evd.empty) rel_ar)) env) env relnames rel_arities
in
(* and of the real constructors*)
let constr i res =
diff --git a/plugins/funind/indfun.ml b/plugins/funind/indfun.ml
index e2273972e..cd35a09a1 100644
--- a/plugins/funind/indfun.ml
+++ b/plugins/funind/indfun.ml
@@ -130,7 +130,7 @@ let rec abstract_glob_constr c = function
List.fold_right (fun x b -> Constrexpr_ops.mkLambdaC([x],k,t,b)) idl
(abstract_glob_constr c bl)
-let interp_casted_constr_with_implicits sigma env impls c =
+let interp_casted_constr_with_implicits env sigma impls c =
Constrintern.intern_gen Pretyping.WithoutTypeConstraint env ~impls
~allow_patvar:false c
@@ -148,7 +148,7 @@ let build_newrecursive
List.fold_left
(fun (env,impls) ((_,recname),bl,arityc,_) ->
let arityc = Constrexpr_ops.prod_constr_expr arityc bl in
- let arity,ctx = Constrintern.interp_type sigma env0 arityc in
+ let arity,ctx = Constrintern.interp_type env0 sigma arityc in
let impl = Constrintern.compute_internalization_data env0 Constrintern.Recursive arity [] in
(Environ.push_named (recname,None,arity) env, Id.Map.add recname impl impls))
(env0,Constrintern.empty_internalization_env) lnameargsardef in
@@ -157,7 +157,7 @@ let build_newrecursive
let f (_,bl,_,def) =
let def = abstract_glob_constr def bl in
interp_casted_constr_with_implicits
- sigma rec_sign rec_impls def
+ rec_sign sigma rec_impls def
in
States.with_state_protection (List.map f) lnameargsardef
in
diff --git a/plugins/funind/merge.ml b/plugins/funind/merge.ml
index 0117adede..669b77e03 100644
--- a/plugins/funind/merge.ml
+++ b/plugins/funind/merge.ml
@@ -51,7 +51,7 @@ let rec substitterm prof t by_t in_u =
let lift_ldecl n ldecl = List.map (fun (x,y) -> x,lift n y) ldecl
-let understand = Pretyping.understand Evd.empty (Global.env())
+let understand = Pretyping.understand (Global.env()) Evd.empty
(** Operations on names and identifiers *)
let id_of_name = function
diff --git a/plugins/funind/recdef.ml b/plugins/funind/recdef.ml
index 8602f0a52..f3096e7a7 100644
--- a/plugins/funind/recdef.ml
+++ b/plugins/funind/recdef.ml
@@ -194,7 +194,7 @@ let (value_f:constr list -> global_reference -> constr) =
Anonymous)],
GVar(d0,v_id)])
in
- let body = fst (understand Evd.empty env glob_body)(*FIXME*) in
+ let body = fst (understand env Evd.empty glob_body)(*FIXME*) in
it_mkLambda_or_LetIn body context
let (declare_f : Id.t -> logical_kind -> constr list -> global_reference -> global_reference) =
@@ -1340,7 +1340,7 @@ let open_new_goal build_proof ctx using_lemmas ref_ goal_name (gls_type,decompos
(fun c ->
Proofview.V82.of_tactic (Tacticals.New.tclTHENLIST
[intros;
- Simple.apply (fst (interp_constr Evd.empty (Global.env()) c)) (*FIXME*);
+ Simple.apply (fst (interp_constr (Global.env()) Evd.empty c)) (*FIXME*);
Tacticals.New.tclCOMPLETE Auto.default_auto
])
)
@@ -1461,10 +1461,10 @@ let recursive_definition is_mes function_name rec_impls type_of_f r rec_arg_num
generate_induction_principle using_lemmas : unit =
let env = Global.env() in
let evd = ref (Evd.from_env env) in
- let function_type = interp_type_evars evd env type_of_f in
+ let function_type = interp_type_evars env evd type_of_f in
let env = push_named (function_name,None,function_type) env in
(* Pp.msgnl (str "function type := " ++ Printer.pr_lconstr function_type); *)
- let ty = interp_type_evars evd env ~impls:rec_impls eq in
+ let ty = interp_type_evars env evd ~impls:rec_impls eq in
let evm, nf = Evarutil.nf_evars_and_universes !evd in
let equation_lemma_type = nf_betaiotazeta (nf ty) in
let function_type = nf function_type in
@@ -1492,8 +1492,8 @@ let recursive_definition is_mes function_name rec_impls type_of_f r rec_arg_num
let env_with_pre_rec_args = push_rel_context(List.map (function (x,t) -> (x,None,t)) pre_rec_args) env in
let relation =
fst (*FIXME*)(interp_constr
- Evd.empty
env_with_pre_rec_args
+ Evd.empty
r)
in
let tcc_lemma_name = add_suffix function_name "_tcc" in
diff --git a/plugins/setoid_ring/newring.ml4 b/plugins/setoid_ring/newring.ml4
index 97936991e..b28f0652d 100644
--- a/plugins/setoid_ring/newring.ml4
+++ b/plugins/setoid_ring/newring.ml4
@@ -156,11 +156,11 @@ let _ = add_tacdef false ((Loc.ghost,Id.of_string"ring_closed_term"
let ic c =
let env = Global.env() and sigma = Evd.empty in
- Constrintern.interp_open_constr sigma env c
+ Constrintern.interp_open_constr env sigma c
let ic_unsafe c = (*FIXME remove *)
let env = Global.env() and sigma = Evd.empty in
- fst (Constrintern.interp_constr sigma env c)
+ fst (Constrintern.interp_constr env sigma c)
let ty c = Typing.type_of (Global.env()) Evd.empty c
diff --git a/pretyping/cases.ml b/pretyping/cases.ml
index 62bfef886..d52f410d2 100644
--- a/pretyping/cases.ml
+++ b/pretyping/cases.ml
@@ -277,7 +277,7 @@ let inductive_template evdref env tmloc ind =
match b with
| None ->
let ty' = substl subst ty in
- let e = e_new_evar evdref env ~src:(hole_source n) ty' in
+ let e = e_new_evar env evdref ~src:(hole_source n) ty' in
(e::subst,e::evarl,n+1)
| Some b ->
(substl subst b::subst,evarl,n+1))
@@ -352,7 +352,7 @@ let coerce_to_indtype typing_fun evdref env matx tomatchl =
(* Utils *)
let mkExistential env ?(src=(Loc.ghost,Evar_kinds.InternalHole)) evdref =
- let e, u = e_new_type_evar evdref univ_flexible_alg env ~src:src in e
+ let e, u = e_new_type_evar env evdref univ_flexible_alg ~src:src in e
let evd_comb2 f evdref x y =
let (evd',y) = f !evdref x y in
@@ -1574,7 +1574,7 @@ let abstract_tycon loc env evdref subst _tycon extenv t =
(fun i _ ->
try list_assoc_in_triple i subst0 with Not_found -> mkRel i)
1 (rel_context env) in
- let ev = e_new_evar evdref env ~src:(loc, Evar_kinds.CasesType) ty in
+ let ev = e_new_evar env evdref ~src:(loc, Evar_kinds.CasesType) ty in
evdref := add_conv_pb (Reduction.CONV,env,substl inst ev,t) !evdref;
ev
| _ ->
@@ -1603,7 +1603,7 @@ let abstract_tycon loc env evdref subst _tycon extenv t =
let filter = Filter.make (rel_filter @ named_filter) in
let candidates = u :: List.map mkRel vl in
let ev =
- e_new_evar evdref extenv ~src:(loc, Evar_kinds.CasesType)
+ e_new_evar extenv evdref ~src:(loc, Evar_kinds.CasesType)
~filter ~candidates ty in
lift k ev
in
@@ -1617,7 +1617,7 @@ let build_tycon loc env tycon_env subst tycon extenv evdref t =
let n = rel_context_length (rel_context env) in
let n' = rel_context_length (rel_context tycon_env) in
let impossible_case_type, u =
- e_new_type_evar evdref univ_flexible_alg env ~src:(loc,Evar_kinds.ImpossibleCase) in
+ e_new_type_evar env evdref univ_flexible_alg ~src:(loc,Evar_kinds.ImpossibleCase) in
(lift (n'-n) impossible_case_type, mkSort u)
| Some t ->
let t = abstract_tycon loc tycon_env evdref subst tycon extenv t in
@@ -1858,7 +1858,7 @@ let prepare_predicate_from_arsign_tycon loc tomatchs arsign c =
* tycon to make the predicate if it is not closed.
*)
-let prepare_predicate loc typing_fun sigma env tomatchs arsign tycon pred =
+let prepare_predicate loc typing_fun env sigma tomatchs arsign tycon pred =
let preds =
match pred, tycon with
(* No type annotation *)
@@ -1878,7 +1878,7 @@ let prepare_predicate loc typing_fun sigma env tomatchs arsign tycon pred =
| Some t -> sigma,t
| None ->
let sigma, (t, _) =
- new_type_evar univ_flexible_alg sigma env ~src:(loc, Evar_kinds.CasesType) in
+ new_type_evar env sigma univ_flexible_alg ~src:(loc, Evar_kinds.CasesType) in
sigma, t
in
(* First strategy: we build an "inversion" predicate *)
@@ -2439,7 +2439,7 @@ let compile_cases loc style (typing_fun, evdref) tycon env (predopt, tomatchl, e
with the type of arguments to match; if none is provided, we
build alternative possible predicates *)
let arsign = extract_arity_signature env tomatchs tomatchl in
- let preds = prepare_predicate loc typing_fun !evdref env tomatchs arsign tycon predopt in
+ let preds = prepare_predicate loc typing_fun env !evdref tomatchs arsign tycon predopt in
let compile_for_one_predicate (sigma,nal,pred) =
(* We push the initial terms to match and push their alias to rhs' envs *)
diff --git a/pretyping/cases.mli b/pretyping/cases.mli
index e51055cef..3ff1d8659 100644
--- a/pretyping/cases.mli
+++ b/pretyping/cases.mli
@@ -114,8 +114,8 @@ val compile : 'a pattern_matching_problem -> Environ.unsafe_judgment
val prepare_predicate : Loc.t ->
(Evarutil.type_constraint ->
Environ.env -> Evd.evar_map ref -> 'a -> Environ.unsafe_judgment) ->
- Evd.evar_map ->
Environ.env ->
+ Evd.evar_map ->
(Term.types * tomatch_type) list ->
Context.rel_context list ->
Constr.constr option ->
diff --git a/pretyping/coercion.ml b/pretyping/coercion.ml
index dfaff327a..a1279c1f2 100644
--- a/pretyping/coercion.ml
+++ b/pretyping/coercion.ml
@@ -81,7 +81,7 @@ let inh_pattern_coerce_to loc pat ind1 ind2 =
open Program
let make_existential loc ?(opaque = Evar_kinds.Define true) env evdref c =
- Evarutil.e_new_evar evdref env ~src:(loc, Evar_kinds.QuestionMark opaque) c
+ Evarutil.e_new_evar env evdref ~src:(loc, Evar_kinds.QuestionMark opaque) c
let app_opt env evdref f t =
whd_betaiota !evdref (app_opt f t)
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml
index 190a025ac..d125a799b 100644
--- a/pretyping/evarconv.ml
+++ b/pretyping/evarconv.ml
@@ -763,7 +763,7 @@ and conv_record trs env evd (ctx,(h,h'),c,bs,(params,params1),(us,us2),(ts,ts1),
(i,t2::ks, m-1, test)
else
let dloc = (Loc.ghost,Evar_kinds.InternalHole) in
- let (i',ev) = new_evar i env ~src:dloc (substl ks b) in
+ let (i',ev) = new_evar env i ~src:dloc (substl ks b) in
(i', ev :: ks, m - 1,test))
(evd,[],List.length bs - 1,fun i -> Success i) bs
in
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml
index 9f5de8c90..631438ddf 100644
--- a/pretyping/evarsolve.ml
+++ b/pretyping/evarsolve.ml
@@ -1150,7 +1150,7 @@ let solve_evar_evar ?(force=false) f g env evd pbty (evk1,args1 as ev1) (evk2,ar
else
let evd, k = Evd.new_sort_variable univ_flexible_alg evd in
let evd, ev3 =
- Evarutil.new_pure_evar evd (Evd.evar_hyps evi)
+ Evarutil.new_pure_evar (Evd.evar_hyps evi) evd
~src:evi.evar_source ~filter:evi.evar_filter
?candidates:evi.evar_candidates (it_mkProd_or_LetIn (mkSort k) ctx)
in
diff --git a/pretyping/evarutil.ml b/pretyping/evarutil.ml
index 306032ed9..ddc1ece96 100644
--- a/pretyping/evarutil.ml
+++ b/pretyping/evarutil.ml
@@ -351,7 +351,7 @@ let new_pure_evar_full evd evi =
let evd = Evd.add evd evk evi in
(evd, evk)
-let new_pure_evar evd sign ?(src=default_source) ?filter ?candidates ?store typ =
+let new_pure_evar sign evd ?(src=default_source) ?filter ?candidates ?store typ =
let newevk = new_untyped_evar() in
let evd = evar_declare sign newevk typ ~src ?filter ?candidates ?store evd in
(evd,newevk)
@@ -359,12 +359,12 @@ let new_pure_evar evd sign ?(src=default_source) ?filter ?candidates ?store typ
let new_evar_instance sign evd typ ?src ?filter ?candidates ?store instance =
assert (not !Flags.debug ||
List.distinct (ids_of_named_context (named_context_of_val sign)));
- let evd,newevk = new_pure_evar evd sign ?src ?filter ?candidates ?store typ in
+ let evd,newevk = new_pure_evar sign evd ?src ?filter ?candidates ?store typ in
(evd,mkEvar (newevk,Array.of_list instance))
(* [new_evar] declares a new existential in an env env with type typ *)
(* Converting the env into the sign of the evar to define *)
-let new_evar evd env ?src ?filter ?candidates ?store typ =
+let new_evar env evd ?src ?filter ?candidates ?store typ =
let sign,typ',instance,subst,vsubst = push_rel_context_to_named_context env typ in
let candidates = Option.map (List.map (subst2 subst vsubst)) candidates in
let instance =
@@ -373,13 +373,13 @@ let new_evar evd env ?src ?filter ?candidates ?store typ =
| Some filter -> Filter.filter_list filter instance in
new_evar_instance sign evd typ' ?src ?filter ?candidates ?store instance
-let new_type_evar ?src ?filter rigid evd env =
+let new_type_evar env evd ?src ?filter rigid =
let evd', s = new_sort_variable rigid evd in
- let evd', e = new_evar evd' env ?src ?filter (mkSort s) in
+ let evd', e = new_evar env evd' ?src ?filter (mkSort s) in
evd', (e, s)
-let e_new_type_evar evdref ?src ?filter rigid env =
- let evd', c = new_type_evar ?src ?filter rigid !evdref env in
+let e_new_type_evar env evdref ?src ?filter rigid =
+ let evd', c = new_type_evar env !evdref ?src ?filter rigid in
evdref := evd';
c
@@ -392,8 +392,8 @@ let e_new_Type ?(rigid=Evd.univ_flexible) env evdref =
evdref := evd'; mkSort s
(* The same using side-effect *)
-let e_new_evar evdref env ?(src=default_source) ?filter ?candidates ?store ty =
- let (evd',ev) = new_evar !evdref env ~src:src ?filter ?candidates ?store ty in
+let e_new_evar env evdref ?(src=default_source) ?filter ?candidates ?store ty =
+ let (evd',ev) = new_evar env !evdref ~src:src ?filter ?candidates ?store ty in
evdref := evd';
ev
@@ -482,7 +482,7 @@ let rec check_and_clear_in_constr evdref err ids c =
if Id.Map.is_empty rids then c
else
let env = Context.fold_named_context push_named nhyps ~init:(empty_env) in
- let ev'= e_new_evar evdref env ~src:(evar_source evk !evdref) nconcl in
+ let ev'= e_new_evar env evdref ~src:(evar_source evk !evdref) nconcl in
evdref := Evd.define evk ev' !evdref;
let (evk',_) = destEvar ev' in
(* spiwack: hacking session to mark the old [evk] as having been "cleared" *)
@@ -704,17 +704,17 @@ let define_pure_evar_as_product evd evk =
let evenv = evar_env evi in
let id = next_ident_away idx (ids_of_named_context (evar_context evi)) in
let s = destSort evi.evar_concl in
- let evd1,(dom,u1) = new_type_evar univ_flexible_alg evd evenv ~filter:(evar_filter evi) in
+ let evd1,(dom,u1) = new_type_evar evenv evd univ_flexible_alg ~filter:(evar_filter evi) in
let evd2,rng =
let newenv = push_named (id, None, dom) evenv in
let src = evar_source evk evd1 in
let filter = Filter.extend 1 (evar_filter evi) in
if is_prop_sort s then
(* Impredicative product, conclusion must fall in [Prop]. *)
- new_evar evd1 newenv evi.evar_concl ~src ~filter
+ new_evar newenv evd1 evi.evar_concl ~src ~filter
else
let evd3, (rng, srng) =
- new_type_evar univ_flexible_alg evd1 newenv ~src ~filter in
+ new_type_evar newenv evd1 univ_flexible_alg ~src ~filter in
let prods = Univ.sup (univ_of_sort u1) (univ_of_sort srng) in
let evd3 = Evd.set_leq_sort evd3 (Type prods) s in
evd3, rng
@@ -757,7 +757,7 @@ let define_pure_evar_as_lambda env evd evk =
let newenv = push_named (id, None, dom) evenv in
let filter = Filter.extend 1 (evar_filter evi) in
let src = evar_source evk evd1 in
- let evd2,body = new_evar evd1 newenv ~src (subst1 (mkVar id) rng) ~filter in
+ let evd2,body = new_evar newenv evd1 ~src (subst1 (mkVar id) rng) ~filter in
let lam = mkLambda (Name id, dom, subst_var id body) in
Evd.define evk lam evd2, lam
diff --git a/pretyping/evarutil.mli b/pretyping/evarutil.mli
index 2d3dd33a3..081c41560 100644
--- a/pretyping/evarutil.mli
+++ b/pretyping/evarutil.mli
@@ -22,28 +22,28 @@ val mk_new_meta : unit -> constr
(** {6 Creating a fresh evar given their type and context} *)
val new_evar :
- evar_map -> env -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
+ env -> evar_map -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
?candidates:constr list -> ?store:Store.t -> types -> evar_map * constr
val new_pure_evar :
- evar_map -> named_context_val -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
+ named_context_val -> evar_map -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
?candidates:constr list -> ?store:Store.t -> types -> evar_map * evar
val new_pure_evar_full : evar_map -> evar_info -> evar_map * evar
(** the same with side-effects *)
val e_new_evar :
- evar_map ref -> env -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
+ env -> evar_map ref -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t ->
?candidates:constr list -> ?store:Store.t -> types -> constr
(** Create a new Type existential variable, as we keep track of
them during type-checking and unification. *)
val new_type_evar :
- ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t -> rigid -> evar_map -> env ->
+ env -> evar_map -> ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t -> rigid ->
evar_map * (constr * sorts)
-val e_new_type_evar : evar_map ref ->
- ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t -> rigid -> env -> constr * sorts
+val e_new_type_evar : env -> evar_map ref ->
+ ?src:Loc.t * Evar_kinds.t -> ?filter:Filter.t -> rigid -> constr * sorts
val new_Type : ?rigid:rigid -> env -> evar_map -> evar_map * constr
val e_new_Type : ?rigid:rigid -> env -> evar_map ref -> constr
diff --git a/pretyping/pretyping.ml b/pretyping/pretyping.ml
index a21548d57..0115f67d5 100644
--- a/pretyping/pretyping.ml
+++ b/pretyping/pretyping.ml
@@ -364,9 +364,9 @@ let pretype_sort evdref = function
| GSet -> judge_of_set
| GType s -> evd_comb1 judge_of_Type evdref s
-let new_type_evar evdref env loc =
+let new_type_evar env evdref loc =
let e, s =
- evd_comb0 (fun evd -> Evarutil.new_type_evar univ_flexible_alg evd env ~src:(loc,Evar_kinds.InternalHole)) evdref
+ evd_comb0 (fun evd -> Evarutil.new_type_evar env evd univ_flexible_alg ~src:(loc,Evar_kinds.InternalHole)) evdref
in e
let get_projection env cst =
@@ -426,24 +426,24 @@ let rec pretype resolve_tc (tycon : type_constraint) env evdref (lvar : ltac_var
let ty =
match tycon with
| Some ty -> ty
- | None -> new_type_evar evdref env loc in
+ | None -> new_type_evar env evdref loc in
let k = Evar_kinds.MatchingVar (someta,n) in
- { uj_val = e_new_evar evdref env ~src:(loc,k) ty; uj_type = ty }
+ { uj_val = e_new_evar env evdref ~src:(loc,k) ty; uj_type = ty }
| GHole (loc, k, None) ->
let ty =
match tycon with
| Some ty -> ty
| None ->
- new_type_evar evdref env loc in
- { uj_val = e_new_evar evdref env ~src:(loc,k) ty; uj_type = ty }
+ new_type_evar env evdref loc in
+ { uj_val = e_new_evar env evdref ~src:(loc,k) ty; uj_type = ty }
| GHole (loc, k, Some arg) ->
let ty =
match tycon with
| Some ty -> ty
| None ->
- new_type_evar evdref env loc in
+ new_type_evar env evdref loc in
let ist = lvar.ltac_genargs in
let (c, sigma) = Hook.get f_genarg_interp ty env !evdref ist arg in
let () = evdref := sigma in
@@ -543,7 +543,7 @@ let rec pretype resolve_tc (tycon : type_constraint) env evdref (lvar : ltac_var
let ctx = smash_rel_context (Inductiveops.inductive_paramdecls ind) in
List.fold_right (fun (n, b, ty) (* par *)args ->
let ty = substl args ty in
- let ev = e_new_evar evdref env ~src:(loc,k) ty in
+ let ev = e_new_evar env evdref ~src:(loc,k) ty in
ev :: args) ctx []
in (ind, List.rev args)
in
@@ -830,7 +830,7 @@ let rec pretype resolve_tc (tycon : type_constraint) env evdref (lvar : ltac_var
| None ->
let p = match tycon with
| Some ty -> ty
- | None -> new_type_evar evdref env loc
+ | None -> new_type_evar env evdref loc
in
it_mkLambda_or_LetIn (lift (nar+1) p) psign, p in
let pred = nf_evar !evdref pred in
@@ -929,7 +929,7 @@ and pretype_type resolve_tc valcon env evdref lvar = function
utj_type = s }
| None ->
let s = evd_comb0 (new_sort_variable univ_flexible_alg) evdref in
- { utj_val = e_new_evar evdref env ~src:(loc, knd) (mkSort s);
+ { utj_val = e_new_evar env evdref ~src:(loc, knd) (mkSort s);
utj_type = s})
| c ->
let j = pretype resolve_tc empty_tycon env evdref lvar c in
@@ -943,7 +943,7 @@ and pretype_type resolve_tc valcon env evdref lvar = function
error_unexpected_type_loc
(loc_of_glob_constr c) env !evdref tj.utj_val v
-let ise_pretype_gen flags sigma env lvar kind c =
+let ise_pretype_gen flags env sigma lvar kind c =
let evdref = ref sigma in
let c' = match kind with
| WithoutTypeConstraint ->
@@ -984,7 +984,7 @@ let on_judgment f j =
let (c,_,t) = destCast (f c) in
{uj_val = c; uj_type = t}
-let understand_judgment sigma env c =
+let understand_judgment env sigma c =
let evdref = ref sigma in
let j = pretype true empty_tycon env evdref empty_lvar c in
let j = on_judgment (fun c ->
@@ -992,14 +992,14 @@ let understand_judgment sigma env c =
evdref := evd; c) j
in j, Evd.evar_universe_context !evdref
-let understand_judgment_tcc evdref env c =
+let understand_judgment_tcc env evdref c =
let j = pretype true empty_tycon env evdref empty_lvar c in
on_judgment (fun c ->
let (evd,c) = process_inference_flags all_no_fail_flags env Evd.empty (!evdref,c) in
evdref := evd; c) j
-let ise_pretype_gen_ctx flags sigma env lvar kind c =
- let evd, c = ise_pretype_gen flags sigma env lvar kind c in
+let ise_pretype_gen_ctx flags env sigma lvar kind c =
+ let evd, c = ise_pretype_gen flags env sigma lvar kind c in
let evd, f = Evarutil.nf_evars_and_universes evd in
f c, Evd.evar_universe_context evd
@@ -1008,16 +1008,16 @@ let ise_pretype_gen_ctx flags sigma env lvar kind c =
let understand
?(flags=all_and_fail_flags)
?(expected_type=WithoutTypeConstraint)
- sigma env c =
- ise_pretype_gen_ctx flags sigma env empty_lvar expected_type c
+ env sigma c =
+ ise_pretype_gen_ctx flags env sigma empty_lvar expected_type c
-let understand_tcc ?(flags=all_no_fail_flags) sigma env ?(expected_type=WithoutTypeConstraint) c =
- ise_pretype_gen flags sigma env empty_lvar expected_type c
+let understand_tcc ?(flags=all_no_fail_flags) env sigma ?(expected_type=WithoutTypeConstraint) c =
+ ise_pretype_gen flags env sigma empty_lvar expected_type c
-let understand_tcc_evars ?(flags=all_no_fail_flags) evdref env ?(expected_type=WithoutTypeConstraint) c =
- let sigma, c = ise_pretype_gen flags !evdref env empty_lvar expected_type c in
+let understand_tcc_evars ?(flags=all_no_fail_flags) env evdref ?(expected_type=WithoutTypeConstraint) c =
+ let sigma, c = ise_pretype_gen flags env !evdref empty_lvar expected_type c in
evdref := sigma;
c
-let understand_ltac flags sigma env lvar kind c =
- ise_pretype_gen flags sigma env lvar kind c
+let understand_ltac flags env sigma lvar kind c =
+ ise_pretype_gen flags env sigma lvar kind c
diff --git a/pretyping/pretyping.mli b/pretyping/pretyping.mli
index 695b2b51f..5df4c8372 100644
--- a/pretyping/pretyping.mli
+++ b/pretyping/pretyping.mli
@@ -70,10 +70,10 @@ val allow_anonymous_refs : bool ref
unresolved holes as evars and returning the typing contexts of
these evars. Work as [understand_gen] for the rest. *)
-val understand_tcc : ?flags:inference_flags -> evar_map -> env ->
+val understand_tcc : ?flags:inference_flags -> env -> evar_map ->
?expected_type:typing_constraint -> glob_constr -> open_constr
-val understand_tcc_evars : ?flags:inference_flags -> evar_map ref -> env ->
+val understand_tcc_evars : ?flags:inference_flags -> env -> evar_map ref ->
?expected_type:typing_constraint -> glob_constr -> constr
(** More general entry point with evars from ltac *)
@@ -89,21 +89,21 @@ val understand_tcc_evars : ?flags:inference_flags -> evar_map ref -> env ->
*)
val understand_ltac : inference_flags ->
- evar_map -> env -> ltac_var_map ->
+ env -> evar_map -> ltac_var_map ->
typing_constraint -> glob_constr -> pure_open_constr
(** Standard call to get a constr from a glob_constr, resolving implicit args *)
val understand : ?flags:inference_flags -> ?expected_type:typing_constraint ->
- evar_map -> env -> glob_constr -> constr Evd.in_evar_universe_context
+ env -> evar_map -> glob_constr -> constr Evd.in_evar_universe_context
(** Idem but returns the judgment of the understood term *)
-val understand_judgment : evar_map -> env ->
+val understand_judgment : env -> evar_map ->
glob_constr -> unsafe_judgment Evd.in_evar_universe_context
(** Idem but do not fail on unresolved evars *)
-val understand_judgment_tcc : evar_map ref -> env ->
+val understand_judgment_tcc : env -> evar_map ref ->
glob_constr -> unsafe_judgment
(** Trying to solve remaining evars and remaining conversion problems
@@ -128,7 +128,7 @@ val pretype_type :
ltac_var_map -> glob_constr -> unsafe_type_judgment
val ise_pretype_gen :
- inference_flags -> evar_map -> env ->
+ inference_flags -> env -> evar_map ->
ltac_var_map -> typing_constraint -> glob_constr -> evar_map * constr
(**/**)
diff --git a/pretyping/tacred.ml b/pretyping/tacred.ml
index 91447573f..acae69b68 100644
--- a/pretyping/tacred.ml
+++ b/pretyping/tacred.ml
@@ -104,7 +104,7 @@ let destEvalRefU c = match kind_of_term c with
| Evar ev -> (EvalEvar ev, Univ.Instance.empty)
| _ -> anomaly (Pp.str "Not an unfoldable reference")
-let unsafe_reference_opt_value sigma env eval =
+let unsafe_reference_opt_value env sigma eval =
match eval with
| EvalConst cst ->
(match (lookup_constant cst env).Declarations.const_body with
@@ -118,7 +118,7 @@ let unsafe_reference_opt_value sigma env eval =
Option.map (lift n) v
| EvalEvar ev -> Evd.existential_opt_value sigma ev
-let reference_opt_value sigma env eval u =
+let reference_opt_value env sigma eval u =
match eval with
| EvalConst cst -> constant_opt_value_in env (cst,u)
| EvalVar id ->
@@ -130,8 +130,8 @@ let reference_opt_value sigma env eval u =
| EvalEvar ev -> Evd.existential_opt_value sigma ev
exception NotEvaluable
-let reference_value sigma env c u =
- match reference_opt_value sigma env c u with
+let reference_value env sigma c u =
+ match reference_opt_value env sigma c u with
| None -> raise NotEvaluable
| Some d -> d
@@ -235,7 +235,7 @@ let invert_name labs l na0 env sigma ref = function
match refi with
| None -> None
| Some ref ->
- try match unsafe_reference_opt_value sigma env ref with
+ try match unsafe_reference_opt_value env sigma ref with
| None -> None
| Some c ->
let labs',ccl = decompose_lam c in
@@ -253,7 +253,7 @@ let invert_name labs l na0 env sigma ref = function
[compute_consteval_mutual_fix] only one by one, until finding the
last one before the Fix if the latter is mutually defined *)
-let compute_consteval_direct sigma env ref =
+let compute_consteval_direct env sigma ref =
let rec srec env n labs onlyproj c =
let c',l = whd_betadelta_stack env sigma c in
match kind_of_term c' with
@@ -267,11 +267,11 @@ let compute_consteval_direct sigma env ref =
| Proj (p, d) when isRel d -> EliminationProj n
| _ -> NotAnElimination
in
- match unsafe_reference_opt_value sigma env ref with
+ match unsafe_reference_opt_value env sigma ref with
| None -> NotAnElimination
| Some c -> srec env 0 [] false c
-let compute_consteval_mutual_fix sigma env ref =
+let compute_consteval_mutual_fix env sigma ref =
let rec srec env minarg labs ref c =
let c',l = whd_betalet_stack sigma c in
let nargs = List.length l in
@@ -280,7 +280,7 @@ let compute_consteval_mutual_fix sigma env ref =
srec (push_rel (na,None,t) env) (minarg+1) (t::labs) ref g
| Fix ((lv,i),(names,_,_)) ->
(* Last known constant wrapping Fix is ref = [labs](Fix l) *)
- (match compute_consteval_direct sigma env ref with
+ (match compute_consteval_direct env sigma ref with
| NotAnElimination -> (*Above const was eliminable but this not!*)
NotAnElimination
| EliminationFix (minarg',minfxargs,infos) ->
@@ -293,31 +293,31 @@ let compute_consteval_mutual_fix sigma env ref =
| _ when isEvalRef env c' ->
(* Forget all \'s and args and do as if we had started with c' *)
let ref,_ = destEvalRefU c' in
- (match unsafe_reference_opt_value sigma env ref with
+ (match unsafe_reference_opt_value env sigma ref with
| None -> anomaly (Pp.str "Should have been trapped by compute_direct")
| Some c -> srec env (minarg-nargs) [] ref c)
| _ -> (* Should not occur *) NotAnElimination
in
- match unsafe_reference_opt_value sigma env ref with
+ match unsafe_reference_opt_value env sigma ref with
| None -> (* Should not occur *) NotAnElimination
| Some c -> srec env 0 [] ref c
-let compute_consteval sigma env ref =
- match compute_consteval_direct sigma env ref with
+let compute_consteval env sigma ref =
+ match compute_consteval_direct env sigma ref with
| EliminationFix (_,_,(nbfix,_,_)) when not (Int.equal nbfix 1) ->
- compute_consteval_mutual_fix sigma env ref
+ compute_consteval_mutual_fix env sigma ref
| elim -> elim
-let reference_eval sigma env = function
+let reference_eval env sigma = function
| EvalConst cst as ref ->
(try
Cmap.find cst !eval_table
with Not_found -> begin
- let v = compute_consteval sigma env ref in
+ let v = compute_consteval env sigma ref in
eval_table := Cmap.add cst v !eval_table;
v
end)
- | ref -> compute_consteval sigma env ref
+ | ref -> compute_consteval env sigma ref
(* If f is bound to EliminationFix (n',infos), then n' is the minimal
number of args for starting the reduction and infos is
@@ -385,7 +385,7 @@ let substl_with_function subst sigma constr =
if i <= k + Array.length v then
match v.(i-k-1) with
| (fx, Some (min, ref)) ->
- let (sigma, evk) = Evarutil.new_pure_evar !evd venv dummy in
+ let (sigma, evk) = Evarutil.new_pure_evar venv !evd dummy in
evd := sigma;
minargs := Evar.Map.add evk min !minargs;
lift k (mkEvar (evk, [|fx;ref|]))
@@ -415,7 +415,7 @@ let solve_arity_problem env sigma fxminargs c =
List.iter (check strict) rcargs
| (Var _|Const _) when isEvalRef env h ->
(let ev, u = destEvalRefU h in
- match reference_opt_value sigma env ev u with
+ match reference_opt_value env sigma ev u with
| Some h' ->
let bak = !evm in
(try List.iter (check false) rcargs
@@ -529,7 +529,7 @@ let match_eval_ref env constr =
| Evar ev -> Some (EvalEvar ev, Univ.Instance.empty)
| _ -> None
-let match_eval_ref_value sigma env constr =
+let match_eval_ref_value env sigma constr =
match kind_of_term constr with
| Const (sp, u) when is_evaluable env (EvalConstRef sp) ->
Some (constant_value_in env (sp, u))
@@ -545,7 +545,7 @@ let special_red_case env sigma whfun (ci, p, c, lf) =
let (constr, cargs) = whfun s in
match match_eval_ref env constr with
| Some (ref, u) ->
- (match reference_opt_value sigma env ref u with
+ (match reference_opt_value env sigma ref u with
| None -> raise Redelimination
| Some gvalue ->
if reducible_mind_case gvalue then
@@ -657,20 +657,20 @@ let rec red_elim_const env sigma ref u largs =
n >= 0 && not is_empty && nargs >= n,
List.mem `ReductionDontExposeCase f
in
- try match reference_eval sigma env ref with
+ try match reference_eval env sigma ref with
| EliminationCases n when nargs >= n ->
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
let c', lrest = whd_nothing_for_iota env sigma (applist(c,largs)) in
let whfun = whd_simpl_stack env sigma in
(special_red_case env sigma whfun (destCase c'), lrest), nocase
| EliminationProj n when nargs >= n ->
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
let c', lrest = whd_nothing_for_iota env sigma (applist(c,largs)) in
let whfun = whd_construct_stack env sigma in
let whfun' = whd_simpl_stack env sigma in
(reduce_proj env sigma whfun whfun' c', lrest), nocase
| EliminationFix (min,minfxargs,infos) when nargs >= min ->
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
let d, lrest = whd_nothing_for_iota env sigma (applist(c,largs)) in
let f = make_elim_fun ([|Some (minfxargs,ref)|],infos) u largs in
let whfun = whd_construct_stack env sigma in
@@ -679,7 +679,7 @@ let rec red_elim_const env sigma ref u largs =
| Reduced (c,rest) -> (nf_beta sigma c, rest), nocase)
| EliminationMutualFix (min,refgoal,refinfos) when nargs >= min ->
let rec descend (ref,u) args =
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
if evaluable_reference_eq ref refgoal then
(c,args)
else
@@ -693,11 +693,11 @@ let rec red_elim_const env sigma ref u largs =
| NotReducible -> raise Redelimination
| Reduced (c,rest) -> (nf_beta sigma c, rest), nocase)
| NotAnElimination when unfold_nonelim ->
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
(whd_betaiotazeta sigma (applist (c, largs)), []), nocase
| _ -> raise Redelimination
with Redelimination when unfold_anyway ->
- let c = reference_value sigma env ref u in
+ let c = reference_value env sigma ref u in
(whd_betaiotazeta sigma (applist (c, largs)), []), nocase
and reduce_params env sigma stack l =
@@ -786,7 +786,7 @@ and whd_construct_stack env sigma s =
if reducible_mind_case constr then s'
else match match_eval_ref env constr with
| Some (ref, u) ->
- (match reference_opt_value sigma env ref u with
+ (match reference_opt_value env sigma ref u with
| None -> raise Redelimination
| Some gvalue -> whd_construct_stack env sigma (applist(gvalue, cargs)))
| _ -> raise Redelimination
@@ -839,7 +839,7 @@ let try_red_product env sigma c =
| Some (ref, u) ->
(* TO DO: re-fold fixpoints after expansion *)
(* to get true one-step reductions *)
- (match reference_opt_value sigma env ref u with
+ (match reference_opt_value env sigma ref u with
| None -> raise Redelimination
| Some c -> c)
| _ -> raise Redelimination)
@@ -893,7 +893,7 @@ let whd_simpl_orelse_delta_but_fix_old env sigma c =
(try
redrec (red_elim_const env sigma ref stack)
with Redelimination ->
- match reference_opt_value sigma env ref with
+ match reference_opt_value env sigma ref with
| Some c ->
(match kind_of_term (strip_lam c) with
| CoFix _ | Fix _ -> s
@@ -916,7 +916,7 @@ let whd_simpl_stack =
let whd_simpl_orelse_delta_but_fix env sigma c =
let rec redrec s =
let (constr, stack as s') = whd_simpl_stack env sigma s in
- match match_eval_ref_value sigma env constr with
+ match match_eval_ref_value env sigma constr with
| Some c ->
(match kind_of_term (strip_lam c) with
| CoFix _ | Fix _ -> s'
@@ -1188,7 +1188,7 @@ let one_step_reduce env sigma c =
(try
fst (red_elim_const env sigma ref u stack)
with Redelimination ->
- match reference_opt_value sigma env ref u with
+ match reference_opt_value env sigma ref u with
| Some d -> (d, stack)
| None -> raise NotStepReducible)
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index 63c30eb35..124faf05b 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -86,7 +86,7 @@ let set_occurrences_of_last_arg args =
Some AllOccurrences :: List.tl (Array.map_to_list (fun _ -> None) args)
let abstract_list_all_with_dependencies env evd typ c l =
- let evd,ev = new_evar evd env typ in
+ let evd,ev = new_evar env evd typ in
let evd,ev' = evar_absorb_arguments env evd (destEvar ev) l in
let argoccs = set_occurrences_of_last_arg (snd ev') in
let evd,b =
@@ -135,7 +135,7 @@ let pose_all_metas_as_evars env evd t =
let {rebus=ty;freemetas=mvs} = Evd.meta_ftype evd mv in
let ty = if Evd.Metaset.is_empty mvs then ty else aux ty in
let src = Evd.evar_source_of_meta mv !evdref in
- let ev = Evarutil.e_new_evar evdref env ~src ty in
+ let ev = Evarutil.e_new_evar env evdref ~src ty in
evdref := meta_assign mv (ev,(Conv,TypeNotProcessed)) !evdref;
ev)
| _ ->
@@ -982,7 +982,7 @@ let applyHead env evd n c =
match kind_of_term (whd_betadeltaiota env evd cty) with
| Prod (_,c1,c2) ->
let (evd',evar) =
- Evarutil.new_evar evd env ~src:(Loc.ghost,Evar_kinds.GoalEvar) c1 in
+ Evarutil.new_evar env evd ~src:(Loc.ghost,Evar_kinds.GoalEvar) c1 in
apprec (n-1) (mkApp(c,[|evar|])) (subst1 evar c2) evd'
| _ -> error "Apply_Head_Then"
in
diff --git a/proofs/clenv.ml b/proofs/clenv.ml
index 6f607133d..612ef8d7d 100644
--- a/proofs/clenv.ml
+++ b/proofs/clenv.ml
@@ -335,8 +335,7 @@ let clenv_pose_metas_as_evars clenv dep_mvs =
else
let src = evar_source_of_meta mv clenv.evd in
let src = adjust_meta_source clenv.evd mv src in
- let (evd,evar) =
- new_evar clenv.evd (cl_env clenv) ~src ty in
+ let (evd,evar) = new_evar (cl_env clenv) clenv.evd ~src ty in
let clenv = clenv_assign mv evar {clenv with evd=evd} in
fold clenv mvs in
fold clenv dep_mvs
diff --git a/proofs/evar_refiner.ml b/proofs/evar_refiner.ml
index 5f97e72fa..564ea4dd8 100644
--- a/proofs/evar_refiner.ml
+++ b/proofs/evar_refiner.ml
@@ -50,7 +50,7 @@ let w_refine (evk,evi) (ltac_var,rawc) sigma =
Pretyping.fail_evar = false;
Pretyping.expand_evars = true } in
try Pretyping.understand_ltac flags
- sigma env ltac_var (Pretyping.OfType evi.evar_concl) rawc
+ env sigma ltac_var (Pretyping.OfType evi.evar_concl) rawc
with e when Errors.noncritical e ->
let loc = Glob_ops.loc_of_glob_constr rawc in
user_err_loc
diff --git a/proofs/proofview.ml b/proofs/proofview.ml
index 0acfda3d8..a5cb2edb8 100644
--- a/proofs/proofview.ml
+++ b/proofs/proofview.ml
@@ -40,7 +40,7 @@ let init sigma =
| (env, typ) :: l ->
let ret, { solution = sol; comb = comb } = aux l in
let src = (Loc.ghost,Evar_kinds.GoalEvar) in
- let (new_defs , econstr) = Evarutil.new_evar sol env ~src typ in
+ let (new_defs , econstr) = Evarutil.new_evar env sol ~src typ in
let (e, _) = Term.destEvar econstr in
let gl = Goal.build e in
let entry = (econstr, typ) :: ret in
@@ -59,7 +59,7 @@ let dependent_init =
let rec aux = function
| TNil sigma -> [], { solution = sigma; comb = []; }
| TCons (env, sigma, typ, t) ->
- let (sigma, econstr ) = Evarutil.new_evar sigma env typ in
+ let (sigma, econstr ) = Evarutil.new_evar env sigma typ in
let ret, { solution = sol; comb = comb } = aux (t sigma econstr) in
let (e, _) = Term.destEvar econstr in
let gl = Goal.build e in
@@ -950,7 +950,7 @@ struct
let new_evar (evd, evs) env typ =
let src = (Loc.ghost, Evar_kinds.GoalEvar) in
- let (evd, ev) = Evarutil.new_evar evd env ~src typ in
+ let (evd, ev) = Evarutil.new_evar env evd ~src typ in
let evd = Typeclasses.mark_unresolvables
~filter:(fun ev' _ -> Evar.equal (fst (Term.destEvar ev)) ev') evd in
let (evk, _) = Term.destEvar ev in
diff --git a/stm/lemmas.ml b/stm/lemmas.ml
index bec80f70d..36f2b14cb 100644
--- a/stm/lemmas.ml
+++ b/stm/lemmas.ml
@@ -434,8 +434,8 @@ let start_proof_com kind thms hook =
let env0 = Global.env () in
let evdref = ref (Evd.from_env env0) in
let thms = List.map (fun (sopt,(bl,t,guard)) ->
- let impls, ((env, ctx), imps) = interp_context_evars evdref env0 bl in
- let t', imps' = interp_type_evars_impls ~impls evdref env t in
+ let impls, ((env, ctx), imps) = interp_context_evars env0 evdref bl in
+ let t', imps' = interp_type_evars_impls ~impls env evdref t in
check_evars_are_solved env Evd.empty !evdref;
let ids = List.map pi1 ctx in
(compute_proof_name (pi1 kind) sopt,
diff --git a/tactics/auto.ml b/tactics/auto.ml
index 67484429f..e386728fe 100644
--- a/tactics/auto.ml
+++ b/tactics/auto.ml
@@ -912,7 +912,7 @@ let prepare_hint check env init (sigma,c) =
let interp_hints poly =
fun h ->
let f c =
- let evd,c = Constrintern.interp_open_constr Evd.empty (Global.env()) c in
+ let evd,c = Constrintern.interp_open_constr (Global.env()) Evd.empty c in
prepare_hint true (Global.env()) Evd.empty (evd,c) in
let fr r =
let gr = global_with_alias r in
diff --git a/tactics/equality.ml b/tactics/equality.ml
index 74fa77e6d..5e94f1b3b 100644
--- a/tactics/equality.ml
+++ b/tactics/equality.ml
@@ -763,7 +763,7 @@ let injectable env sigma t1 t2 =
*)
-(* [descend_then sigma env head dirn]
+(* [descend_then env sigma head dirn]
returns the number of products introduced, and the environment
which is active, in the body of the case-branch given by [dirn],
@@ -778,7 +778,7 @@ let injectable env sigma t1 t2 =
the continuation then constructs the case-split.
*)
-let descend_then sigma env head dirn =
+let descend_then env sigma head dirn =
let IndType (indf,_) =
try find_rectype env sigma (get_type_of env sigma head)
with Not_found ->
@@ -821,7 +821,7 @@ let descend_then sigma env head dirn =
constructs a case-split on [headval], with the [dirn]-th branch
giving [True], and all the rest giving False. *)
-let construct_discriminator sigma env dirn c sort =
+let construct_discriminator env sigma dirn c sort =
let IndType(indf,_) =
try find_rectype env sigma (get_type_of env sigma c)
with Not_found ->
@@ -848,12 +848,12 @@ let construct_discriminator sigma env dirn c sort =
let ci = make_case_info env ind RegularStyle in
mkCase (ci, p, c, Array.of_list brl)
-let rec build_discriminator sigma env dirn c sort = function
- | [] -> construct_discriminator sigma env dirn c sort
+let rec build_discriminator env sigma dirn c sort = function
+ | [] -> construct_discriminator env sigma dirn c sort
| ((sp,cnum),argnum)::l ->
- let (cnum_nlams,cnum_env,kont) = descend_then sigma env c cnum in
+ let (cnum_nlams,cnum_env,kont) = descend_then env sigma c cnum in
let newc = mkRel(cnum_nlams-argnum) in
- let subval = build_discriminator sigma cnum_env dirn newc sort l in
+ let subval = build_discriminator cnum_env sigma dirn newc sort l in
kont subval (build_coq_False (),mkSort (Prop Null))
(* Note: discrimination could be more clever: if some elimination is
@@ -919,7 +919,7 @@ let discr_positions env sigma (lbeq,eqn,(t,t1,t2)) eq_clause cpath dirn sort =
let e = next_ident_away eq_baseid (ids_of_context env) in
let e_env = push_named (e,None,t) env in
let discriminator =
- build_discriminator sigma e_env dirn (mkVar e) sort cpath in
+ build_discriminator e_env sigma dirn (mkVar e) sort cpath in
let sigma,(pf, absurd_term), eff =
discrimination_pf env sigma e (t,t1,t2) discriminator lbeq in
let pf_ty = mkArrow eqn absurd_term in
@@ -1111,7 +1111,7 @@ let sig_clausal_form env sigma sort_of_ty siglen ty dflt =
let (a,p_i_minus_1) = match whd_beta_stack !evdref p_i with
| (_sigS,[a;p]) -> (a,p)
| _ -> anomaly ~label:"sig_clausal_form" (Pp.str "should be a sigma type") in
- let ev = Evarutil.e_new_evar evdref env a in
+ let ev = Evarutil.e_new_evar env evdref a in
let rty = beta_applist(p_i_minus_1,[ev]) in
let tuple_tail = sigrec_clausal_form (siglen-1) rty in
match
@@ -1161,7 +1161,7 @@ let sig_clausal_form env sigma sort_of_ty siglen ty dflt =
If [zty] has no dependencies, this is simple. Otherwise, assume
[zty] has free (de Bruijn) variables in,...i1 then the role of
- [make_iterated_tuple sigma env (term,typ) (z,zty)] is to build the
+ [make_iterated_tuple env sigma (term,typ) (z,zty)] is to build the
tuple
[existT [xn]Pn Rel(in) .. (existT [x2]P2 Rel(i2) (existT [x1]P1 Rel(i1) z))]
@@ -1200,19 +1200,19 @@ let make_iterated_tuple env sigma dflt (z,zty) =
let sigma, dfltval = sig_clausal_form env sigma sort_of_zty n tuplety dflt in
sigma, (tuple,tuplety,dfltval)
-let rec build_injrec sigma env dflt c = function
+let rec build_injrec env sigma dflt c = function
| [] -> make_iterated_tuple env sigma dflt (c,type_of env sigma c)
| ((sp,cnum),argnum)::l ->
try
- let (cnum_nlams,cnum_env,kont) = descend_then sigma env c cnum in
+ let (cnum_nlams,cnum_env,kont) = descend_then env sigma c cnum in
let newc = mkRel(cnum_nlams-argnum) in
- let sigma, (subval,tuplety,dfltval) = build_injrec sigma cnum_env dflt newc l in
+ let sigma, (subval,tuplety,dfltval) = build_injrec cnum_env sigma dflt newc l in
sigma, (kont subval (dfltval,tuplety), tuplety,dfltval)
with
UserError _ -> failwith "caught"
-let build_injector sigma env dflt c cpath =
- let sigma, (injcode,resty,_) = build_injrec sigma env dflt c cpath in
+let build_injector env sigma dflt c cpath =
+ let sigma, (injcode,resty,_) = build_injrec env sigma dflt c cpath in
sigma, (injcode,resty)
(*
@@ -1289,7 +1289,7 @@ let inject_at_positions env sigma l2r (eq,_,(t,t1,t2)) eq_clause posns tac =
let filter (cpath, t1', t2') =
try
(* arbitrarily take t1' as the injector default value *)
- let sigma, (injbody,resty) = build_injector !evdref e_env t1' (mkVar e) cpath in
+ let sigma, (injbody,resty) = build_injector e_env !evdref t1' (mkVar e) cpath in
let injfun = mkNamedLambda e t injbody in
let sigma,congr = Evd.fresh_global env sigma eq.congr in
let pf = applist(congr,[t;resty;injfun;t1;t2]) in
diff --git a/tactics/evar_tactics.ml b/tactics/evar_tactics.ml
index 33505c7fc..7c4c9c965 100644
--- a/tactics/evar_tactics.ml
+++ b/tactics/evar_tactics.ml
@@ -71,7 +71,7 @@ let let_evar name typ =
Proofview.Goal.enter begin fun gl ->
let sigma = Proofview.Goal.sigma gl in
let env = Proofview.Goal.env gl in
- let sigma',evar = Evarutil.new_evar sigma env ~src typ in
+ let sigma',evar = Evarutil.new_evar env sigma ~src typ in
Tacticals.New.tclTHEN (Proofview.V82.tactic (Refiner.tclEVARS sigma'))
(Tactics.letin_tac None name evar None Locusops.nowhere)
end
diff --git a/tactics/extratactics.ml4 b/tactics/extratactics.ml4
index f70191867..e4ba9a7ee 100644
--- a/tactics/extratactics.ml4
+++ b/tactics/extratactics.ml4
@@ -269,7 +269,7 @@ let add_rewrite_hint bases ort t lcsr =
let env = Global.env() and sigma = Evd.empty in
let poly = Flags.is_universe_polymorphism () in
let f ce =
- let c, ctx = Constrintern.interp_constr sigma env ce in
+ let c, ctx = Constrintern.interp_constr env sigma ce in
let ctx =
if poly then
Evd.evar_universe_context_set ctx
@@ -372,7 +372,7 @@ let refine_tac {Glob_term.closure=closure;term=term} =
Pretyping.ltac_uconstrs = closure.Glob_term.untyped;
Pretyping.ltac_idents = closure.Glob_term.idents;
} in
- let update evd = Pretyping.understand_ltac flags evd env lvar tycon term in
+ let update evd = Pretyping.understand_ltac flags env evd lvar tycon term in
Proofview.Refine.refine ~unsafe:false (fun h -> Proofview.Refine.update h update) <*>
Proofview.V82.tactic (reduce refine_red_flags refine_locs)
end
@@ -505,7 +505,7 @@ let inTransitivity : bool * constr -> obj =
(* Main entry points *)
let add_transitivity_lemma left lem =
- let lem',ctx (*FIXME*) = Constrintern.interp_constr Evd.empty (Global.env ()) lem in
+ let lem',ctx (*FIXME*) = Constrintern.interp_constr (Global.env ()) Evd.empty lem in
add_anonymous_leaf (inTransitivity (left,lem'))
(* Vernacular syntax *)
@@ -545,8 +545,8 @@ END
VERNAC COMMAND EXTEND RetroknowledgeRegister CLASSIFIED AS SIDEFF
| [ "Register" constr(c) "as" retroknowledge_field(f) "by" constr(b)] ->
- [ let tc,ctx = Constrintern.interp_constr Evd.empty (Global.env ()) c in
- let tb,ctx(*FIXME*) = Constrintern.interp_constr Evd.empty (Global.env ()) b in
+ [ let tc,ctx = Constrintern.interp_constr (Global.env ()) Evd.empty c in
+ let tb,ctx(*FIXME*) = Constrintern.interp_constr (Global.env ()) Evd.empty b in
Global.register f tc tb ]
END
@@ -633,7 +633,7 @@ let hResolve id c occ t gl =
let t_raw = Detyping.detype true env_ids env_names sigma t in
let rec resolve_hole t_hole =
try
- Pretyping.understand sigma env t_hole
+ Pretyping.understand env sigma t_hole
with
| Pretype_errors.PretypeError (_,_,Pretype_errors.UnsolvableImplicit _) as e ->
let loc = match Loc.get_loc e with None -> Loc.ghost | Some loc -> loc in
diff --git a/tactics/leminv.ml b/tactics/leminv.ml
index e9dace858..7eb81c3f4 100644
--- a/tactics/leminv.ml
+++ b/tactics/leminv.ml
@@ -237,7 +237,7 @@ let add_inversion_lemma name env sigma t sort dep inv_op =
let add_inversion_lemma_exn na com comsort bool tac =
let env = Global.env () and evd = ref Evd.empty in
- let c = Constrintern.interp_type_evars evd env com in
+ let c = Constrintern.interp_type_evars env evd com in
let sigma, sort = Pretyping.interp_sort !evd comsort in
try
add_inversion_lemma na env sigma c sort bool tac
diff --git a/tactics/rewrite.ml b/tactics/rewrite.ml
index 5b24facc3..6a1ac2706 100644
--- a/tactics/rewrite.ml
+++ b/tactics/rewrite.ml
@@ -106,12 +106,12 @@ let cstrevars evars = snd evars
let new_cstr_evar (evd,cstrs) env t =
let s = Typeclasses.set_resolvable Evd.Store.empty false in
- let evd', t = Evarutil.new_evar ~store:s evd env t in
+ let evd', t = Evarutil.new_evar ~store:s env evd t in
let ev, _ = destEvar t in
(evd', Evar.Set.add ev cstrs), t
(** Building or looking up instances. *)
-let e_new_cstr_evar evars env t =
+let e_new_cstr_evar env evars t =
let evd', t = new_cstr_evar !evars env t in evars := evd'; t
(** Building or looking up instances. *)
@@ -364,7 +364,7 @@ end) = struct
(try
let params, args = Array.chop (Array.length args - 2) args in
let env' = Environ.push_rel_context rels env in
- let evars, (evar, _) = Evarutil.new_type_evar Evd.univ_flexible sigma env' in
+ let evars, (evar, _) = Evarutil.new_type_evar env' sigma Evd.univ_flexible in
let evars, inst =
app_poly env (evars,Evar.Set.empty)
rewrite_relation_class [| evar; mkApp (c, params) |] in
@@ -424,7 +424,7 @@ module TypeGlobal = struct
let inverse env (evd,cstrs) car rel =
- let evd, (sort,_) = Evarutil.new_type_evar Evd.univ_flexible evd env in
+ let evd, (sort,_) = Evarutil.new_type_evar env evd Evd.univ_flexible in
app_poly_check env (evd,cstrs) coq_inverse [| car ; car; sort; rel |]
end
@@ -1334,7 +1334,7 @@ module Strategies =
let fold_glob c : 'a pure_strategy =
fun state env avoid t ty cstr evars ->
(* let sigma, (c,_) = Tacinterp.interp_open_constr_with_bindings is env (goalevars evars) c in *)
- let sigma, c = Pretyping.understand_tcc (goalevars evars) env c in
+ let sigma, c = Pretyping.understand_tcc env (goalevars evars) c in
let unfolded =
try Tacred.try_red_product env sigma c
with e when Errors.noncritical e ->
@@ -1595,13 +1595,13 @@ let cl_rewrite_clause l left2right occs clause gl =
cl_rewrite_clause_strat strat clause gl
let apply_glob_constr c l2r occs = fun () env avoid t ty cstr evars ->
- let evd, c = (Pretyping.understand_tcc (goalevars evars) env c) in
+ let evd, c = (Pretyping.understand_tcc env (goalevars evars) c) in
apply_lemma l2r (general_rewrite_unif_flags ()) (Evd.empty, (c, NoBindings))
None occs () env avoid t ty cstr (evd, cstrevars evars)
let interp_glob_constr_list env sigma =
List.map (fun c ->
- let evd, c = Pretyping.understand_tcc sigma env c in
+ let evd, c = Pretyping.understand_tcc env sigma c in
(evd, (c, NoBindings)), true, None)
(* Syntax for rewriting with strategies *)
@@ -1792,7 +1792,7 @@ let declare_projection n instance_id r =
let build_morphism_signature m =
let env = Global.env () in
- let m,ctx = Constrintern.interp_constr Evd.empty env m in
+ let m,ctx = Constrintern.interp_constr env Evd.empty m in
let sigma = Evd.from_env ~ctx env in
let t = Typing.type_of env sigma m in
let cstrs =
@@ -1810,7 +1810,7 @@ let build_morphism_signature m =
(fun (ty, rel) ->
Option.iter (fun rel ->
let default = e_app_poly env evd PropGlobal.default_relation [| ty; rel |] in
- ignore(e_new_cstr_evar evd env default))
+ ignore(e_new_cstr_evar env evd default))
rel)
cstrs
in
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index a243667a5..9d2f8c904 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -512,7 +512,7 @@ let interp_gen kind ist allow_patvar flags env sigma (c,ce) =
let trace =
push_trace (loc_of_glob_constr c,LtacConstrInterp (c,vars)) ist in
let (evd,c) =
- catch_error trace (understand_ltac flags sigma env vars kind) c
+ catch_error trace (understand_ltac flags env sigma vars kind) c
in
(* spiwack: to avoid unnecessary modifications of tacinterp, as this
function already use effect, I call [run] hoping it doesn't mess
@@ -622,8 +622,8 @@ let interp_unfold ist env sigma (occs,qid) =
let interp_flag ist env sigma red =
{ red with rConst = List.map (interp_evaluable ist env sigma) red.rConst }
-let interp_constr_with_occurrences ist sigma env (occs,c) =
- let (sigma,c_interp) = interp_constr ist sigma env c in
+let interp_constr_with_occurrences ist env sigma (occs,c) =
+ let (sigma,c_interp) = interp_constr ist env sigma c in
sigma , (interp_occurrences ist occs, c_interp)
let interp_closed_typed_pattern_with_occurrences ist env sigma (occs, c) =
@@ -1323,7 +1323,7 @@ and interp_tacarg ist arg : typed_generic_argument Ftactic.t =
Pretyping.ltac_genargs = ist.lfun;
} in
let (sigma,c_interp) =
- Pretyping.understand_ltac constr_flags sigma env vars WithoutTypeConstraint term
+ Pretyping.understand_ltac constr_flags env sigma vars WithoutTypeConstraint term
in
Ftactic.(lift (Proofview.V82.tclEVARS sigma) <*> return (Value.of_constr c_interp))
end
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index d24645968..48bfeb86e 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -1449,7 +1449,7 @@ let vm_cast_no_check c gl =
let exact_proof c gl =
- let c,ctx = Constrintern.interp_casted_constr (project gl) (pf_env gl) c (pf_concl gl)
+ let c,ctx = Constrintern.interp_casted_constr (pf_env gl) (project gl) c (pf_concl gl)
in tclTHEN (tclEVARUNIVCONTEXT ctx) (refine_no_check c) gl
let assumption =
@@ -3021,7 +3021,7 @@ let specialize_eqs id gl =
| _ ->
if in_eqs then acc, in_eqs, ctx, ty
else
- let e = e_new_evar evars (push_rel_context ctx env) t in
+ let e = e_new_evar (push_rel_context ctx env) evars t in
aux false ((na, Some e, t) :: ctx) (mkApp (lift 1 acc, [| mkRel 1 |])) b)
| t -> acc, in_eqs, ctx, ty
in
diff --git a/toplevel/classes.ml b/toplevel/classes.ml
index e8e3ef27d..3c29c5fcb 100644
--- a/toplevel/classes.ml
+++ b/toplevel/classes.ml
@@ -74,7 +74,7 @@ let type_ctx_instance evars env ctx inst subst =
let t' = substl subst t in
let c', l =
match b with
- | None -> interp_casted_constr_evars evars env (List.hd l) t', List.tl l
+ | None -> interp_casted_constr_evars env evars (List.hd l) t', List.tl l
| Some b -> substl subst b, l
in
let d = na, Some c', t' in
@@ -133,8 +133,8 @@ let new_instance ?(abstract=false) ?(global=false) poly ctx (instid, bk, cl) pro
else tclass
in
let k, u, cty, ctx', ctx, len, imps, subst =
- let impls, ((env', ctx), imps) = interp_context_evars evars env ctx in
- let c', imps' = interp_type_evars_impls ~impls evars env' tclass in
+ let impls, ((env', ctx), imps) = interp_context_evars env evars ctx in
+ let c', imps' = interp_type_evars_impls ~impls env' evars tclass in
let len = List.length ctx in
let imps = imps @ Impargs.lift_implicits len imps' in
let ctx', c = decompose_prod_assum c' in
@@ -200,7 +200,7 @@ let new_instance ?(abstract=false) ?(global=false) poly ctx (instid, bk, cl) pro
match props with
| None -> if List.is_empty k.cl_props then Some (Inl subst) else None
| Some (Inr term) ->
- let c = interp_casted_constr_evars evars env' term cty in
+ let c = interp_casted_constr_evars env' evars term cty in
Some (Inr (c, subst))
| Some (Inl props) ->
let get_id =
@@ -327,7 +327,7 @@ let named_of_rel_context l =
let context poly l =
let env = Global.env() in
let evars = ref Evd.empty in
- let _, ((env', fullctx), impls) = interp_context_evars evars env l in
+ let _, ((env', fullctx), impls) = interp_context_evars env evars l in
let subst = Evarutil.evd_comb0 Evarutil.nf_evars_and_universes evars in
let fullctx = Context.map_rel_context subst fullctx in
let ce t = Evarutil.check_evars env Evd.empty !evars t in
diff --git a/toplevel/command.ml b/toplevel/command.ml
index df07026f6..74122d104 100644
--- a/toplevel/command.ml
+++ b/toplevel/command.ml
@@ -80,7 +80,7 @@ let red_constant_entry n ce = function
let interp_definition bl p red_option c ctypopt =
let env = Global.env() in
let evdref = ref (Evd.from_env env) in
- let impls, ((env_bl, ctx), imps1) = interp_context_evars evdref env bl in
+ let impls, ((env_bl, ctx), imps1) = interp_context_evars env evdref bl in
let nb_args = List.length ctx in
let imps,ce =
match ctypopt with
@@ -88,7 +88,7 @@ let interp_definition bl p red_option c ctypopt =
let subst = evd_comb0 Evd.nf_univ_variables evdref in
let ctx = map_rel_context (Vars.subst_univs_constr subst) ctx in
let env_bl = push_rel_context ctx env in
- let c, imps2 = interp_constr_evars_impls ~impls evdref env_bl c in
+ let c, imps2 = interp_constr_evars_impls ~impls env_bl evdref c in
let nf,subst = Evarutil.e_nf_evars_and_universes evdref in
let body = nf (it_mkLambda_or_LetIn c ctx) in
let vars = Universes.universes_of_constr body in
@@ -97,11 +97,11 @@ let interp_definition bl p red_option c ctypopt =
imps1@(Impargs.lift_implicits nb_args imps2),
definition_entry ~univs:(Univ.ContextSet.to_context ctx) ~poly:p body
| Some ctyp ->
- let ty, impsty = interp_type_evars_impls ~impls evdref env_bl ctyp in
+ let ty, impsty = interp_type_evars_impls ~impls env_bl evdref ctyp in
let subst = evd_comb0 Evd.nf_univ_variables evdref in
let ctx = map_rel_context (Vars.subst_univs_constr subst) ctx in
let env_bl = push_rel_context ctx env in
- let c, imps2 = interp_casted_constr_evars_impls ~impls evdref env_bl c ty in
+ let c, imps2 = interp_casted_constr_evars_impls ~impls env_bl evdref c ty in
let nf, subst = Evarutil.e_nf_evars_and_universes evdref in
let body = nf (it_mkLambda_or_LetIn c ctx) in
let typ = nf (it_mkProd_or_LetIn ty ctx) in
@@ -233,7 +233,7 @@ let declare_assumption is_coe (local,p,kind) (c,ctx) imps impl nl (_,ident) = ma
let interp_assumption evdref env bl c =
let c = prod_constr_expr c bl in
- let ty, impls = interp_type_evars_impls evdref env c in
+ let ty, impls = interp_type_evars_impls env evdref c in
let evd, nf = nf_evars_and_universes !evdref in
let ctx = Evd.universe_context_set evd in
((nf ty, ctx), impls)
@@ -357,10 +357,10 @@ let is_impredicative env u =
u = Prop Null ||
(engagement env = Some Declarations.ImpredicativeSet && u = Prop Pos)
-let interp_ind_arity evdref env ind =
+let interp_ind_arity env evdref ind =
let c = intern_gen IsType env ind.ind_arity in
let imps = Implicit_quantifiers.implicits_of_glob_constr ~with_products:true c in
- let t, impls = understand_tcc_evars evdref env ~expected_type:IsType c, imps in
+ let t, impls = understand_tcc_evars env evdref ~expected_type:IsType c, imps in
let pseudo_poly = check_anonymous_type c in
let () = if not (Reduction.is_arity env t) then
user_err_loc (constr_loc ind.ind_arity, "", str "Not an arity")
@@ -475,7 +475,7 @@ let interp_mutual_inductive (paramsl,indl) notations poly prv finite =
let env0 = Global.env() in
let evdref = ref Evd.(from_env env0) in
let _, ((env_params, ctx_params), userimpls) =
- interp_context_evars evdref env0 paramsl
+ interp_context_evars env0 evdref paramsl
in
let indnames = List.map (fun ind -> ind.ind_name) indl in
@@ -484,7 +484,7 @@ let interp_mutual_inductive (paramsl,indl) notations poly prv finite =
let params = List.map (fun (na,_,_) -> out_name na) assums in
(* Interpret the arities *)
- let arities = List.map (interp_ind_arity evdref env_params) indl in
+ let arities = List.map (interp_ind_arity env_params evdref) indl in
let fullarities = List.map (fun (c, _, _) -> it_mkProd_or_LetIn c ctx_params) arities in
let env_ar = push_types env0 indnames fullarities in
@@ -502,7 +502,7 @@ let interp_mutual_inductive (paramsl,indl) notations poly prv finite =
(* Temporary declaration of notations and scopes *)
List.iter (Metasyntax.set_notation_for_interpretation impls) notations;
(* Interpret the constructor types *)
- List.map3 (interp_cstrs evdref env_ar_params impls) mldatas arities indl)
+ List.map3 (interp_cstrs env_ar_params evdref impls) mldatas arities indl)
() in
(* Try further to solve evars, and instantiate them *)
@@ -723,20 +723,20 @@ type structured_fixpoint_expr = {
fix_type : constr_expr
}
-let interp_fix_context evdref env isfix fix =
+let interp_fix_context env evdref isfix fix =
let before, after = if isfix then split_at_annot fix.fix_binders fix.fix_annot else [], fix.fix_binders in
- let impl_env, ((env', ctx), imps) = interp_context_evars evdref env before in
- let impl_env', ((env'', ctx'), imps') = interp_context_evars ~impl_env evdref env' after in
+ let impl_env, ((env', ctx), imps) = interp_context_evars env evdref before in
+ let impl_env', ((env'', ctx'), imps') = interp_context_evars ~impl_env env' evdref after in
let annot = Option.map (fun _ -> List.length (assums_of_rel_context ctx)) fix.fix_annot in
((env'', ctx' @ ctx), (impl_env',imps @ imps'), annot)
let interp_fix_ccl evdref impls (env,_) fix =
- interp_type_evars_impls ~impls evdref env fix.fix_type
+ interp_type_evars_impls ~impls env evdref fix.fix_type
-let interp_fix_body evdref env_rec impls (_,ctx) fix ccl =
+let interp_fix_body env_rec evdref impls (_,ctx) fix ccl =
Option.map (fun body ->
let env = push_rel_context ctx env_rec in
- let body = interp_casted_constr_evars evdref env ~impls body ccl in
+ let body = interp_casted_constr_evars env evdref ~impls body ccl in
it_mkLambda_or_LetIn body ctx) fix.fix_body
let build_fix_type (_,ctx) ccl = it_mkProd_or_LetIn ccl ctx
@@ -828,17 +828,17 @@ let build_wellfounded (recname,n,bl,arityc,body) r measure notation =
Coqlib.check_required_library ["Coq";"Program";"Wf"];
let env = Global.env() in
let evdref = ref (Evd.from_env env) in
- let _, ((env', binders_rel), impls) = interp_context_evars evdref env bl in
+ let _, ((env', binders_rel), impls) = interp_context_evars env evdref bl in
let len = List.length binders_rel in
let top_env = push_rel_context binders_rel env in
- let top_arity = interp_type_evars evdref top_env arityc in
+ let top_arity = interp_type_evars top_env evdref arityc in
let full_arity = it_mkProd_or_LetIn top_arity binders_rel in
let argtyp, letbinders, make = telescope binders_rel in
let argname = Id.of_string "recarg" in
let arg = (Name argname, None, argtyp) in
let binders = letbinders @ [arg] in
let binders_env = push_rel_context binders_rel env in
- let rel, _ = interp_constr_evars_impls evdref env r in
+ let rel, _ = interp_constr_evars_impls env evdref r in
let () = check_evars_are_solved env Evd.empty !evdref in
let relty = Typing.type_of env !evdref rel in
let relargty =
@@ -855,7 +855,7 @@ let build_wellfounded (recname,n,bl,arityc,body) r measure notation =
| _, _ -> error ()
with e when Errors.noncritical e -> error ()
in
- let measure = interp_casted_constr_evars evdref binders_env measure relargty in
+ let measure = interp_casted_constr_evars binders_env evdref measure relargty in
let wf_rel, wf_rel_fun, measure_fn =
let measure_body, measure =
it_mkLambda_or_LetIn measure letbinders,
@@ -909,15 +909,15 @@ let build_wellfounded (recname,n,bl,arityc,body) r measure notation =
let newimpls = Id.Map.singleton recname
(r, l, impls @ [(Some (Id.of_string "recproof", Impargs.Manual, (true, false)))],
scopes @ [None]) in
- interp_casted_constr_evars evdref ~impls:newimpls
- (push_rel_context ctx env) body (lift 1 top_arity)
+ interp_casted_constr_evars (push_rel_context ctx env) evdref
+ ~impls:newimpls body (lift 1 top_arity)
in
let intern_body_lam = it_mkLambda_or_LetIn intern_body (curry_fun :: lift_lets @ fun_bl) in
let prop = mkLambda (Name argname, argtyp, top_arity_let) in
let def =
mkApp (Universes.constr_of_global (delayed_force fix_sub_ref),
[| argtyp ; wf_rel ;
- Evarutil.e_new_evar evdref env
+ Evarutil.e_new_evar env evdref
~src:(Loc.ghost, Evar_kinds.QuestionMark (Evar_kinds.Define false)) wf_proof;
prop |])
in
@@ -969,7 +969,7 @@ let interp_recursive isfix fixl notations =
(* Interp arities allowing for unresolved types *)
let evdref = ref (Evd.from_env env) in
let fixctxs, fiximppairs, fixannots =
- List.split3 (List.map (interp_fix_context evdref env isfix) fixl) in
+ List.split3 (List.map (interp_fix_context env evdref isfix) fixl) in
let fixctximpenvs, fixctximps = List.split fiximppairs in
let fixccls,fixcclimps = List.split (List.map3 (interp_fix_ccl evdref) fixctximpenvs fixctxs fixl) in
let fixtypes = List.map2 build_fix_type fixctxs fixccls in
@@ -1002,7 +1002,7 @@ let interp_recursive isfix fixl notations =
Metasyntax.with_syntax_protection (fun () ->
List.iter (Metasyntax.set_notation_for_interpretation impls) notations;
List.map4
- (fun fixctximpenv -> interp_fix_body evdref env_rec (Id.Map.fold Id.Map.add fixctximpenv impls))
+ (fun fixctximpenv -> interp_fix_body env_rec evdref (Id.Map.fold Id.Map.add fixctximpenv impls))
fixctximpenvs fixctxs fixl fixccls)
() in
diff --git a/toplevel/record.ml b/toplevel/record.ml
index 2c8fa52b9..ebaa6a911 100644
--- a/toplevel/record.ml
+++ b/toplevel/record.ml
@@ -49,11 +49,11 @@ let _ =
optread = (fun () -> !typeclasses_strict);
optwrite = (fun b -> typeclasses_strict := b); }
-let interp_fields_evars evars env impls_env nots l =
+let interp_fields_evars env evars impls_env nots l =
List.fold_left2
(fun (env, uimpls, params, impls) no ((loc, i), b, t) ->
- let t', impl = interp_type_evars_impls evars env ~impls t in
- let b' = Option.map (fun x -> fst (interp_casted_constr_evars_impls evars env ~impls x t')) b in
+ let t', impl = interp_type_evars_impls env evars ~impls t in
+ let b' = Option.map (fun x -> fst (interp_casted_constr_evars_impls env evars ~impls x t')) b in
let impls =
match i with
| Anonymous -> impls
@@ -94,11 +94,11 @@ let typecheck_params_and_fields def id t ps nots fs =
(function LocalRawDef (b, _) -> error default_binder_kind b
| LocalRawAssum (ls, bk, ce) -> List.iter (error bk) ls) ps
in
- let impls_env, ((env1,newps), imps) = interp_context_evars evars env0 ps in
+ let impls_env, ((env1,newps), imps) = interp_context_evars env0 evars ps in
let t' = match t with
| Some t ->
let env = push_rel_context newps env0 in
- let s = interp_type_evars evars env ~impls:empty_internalization_env t in
+ let s = interp_type_evars env evars ~impls:empty_internalization_env t in
let sred = Reductionops.whd_betadeltaiota env !evars s in
(match kind_of_term sred with
| Sort s' ->
@@ -113,7 +113,7 @@ let typecheck_params_and_fields def id t ps nots fs =
let fullarity = it_mkProd_or_LetIn t' newps in
let env_ar = push_rel_context newps (push_rel (Name id,None,fullarity) env0) in
let env2,impls,newfs,data =
- interp_fields_evars evars env_ar impls_env nots (binders_of_decls fs)
+ interp_fields_evars env_ar evars impls_env nots (binders_of_decls fs)
in
let sigma =
Pretyping.solve_remaining_evars Pretyping.all_and_fail_flags env_ar Evd.empty !evars in
@@ -316,11 +316,11 @@ let structure_signature ctx =
match l with [] -> Evd.empty
| [(_,_,typ)] ->
let env = Environ.empty_named_context_val in
- let (evm, _) = Evarutil.new_pure_evar evm env typ in
+ let (evm, _) = Evarutil.new_pure_evar env evm typ in
evm
| (_,_,typ)::tl ->
let env = Environ.empty_named_context_val in
- let (evm, ev) = Evarutil.new_pure_evar evm env typ in
+ let (evm, ev) = Evarutil.new_pure_evar env evm typ in
let new_tl = Util.List.map_i
(fun pos (n,c,t) -> n,c,
Termops.replace_term (mkRel pos) (mkEvar(ev,[||])) t) 1 tl in
diff --git a/toplevel/vernacentries.ml b/toplevel/vernacentries.ml
index 33a78110c..97f7ace0d 100644
--- a/toplevel/vernacentries.ml
+++ b/toplevel/vernacentries.ml
@@ -1116,7 +1116,7 @@ let default_env () = {
let vernac_reserve bl =
let sb_decl = (fun (idl,c) ->
- let t,ctx = Constrintern.interp_type Evd.empty (Global.env()) c in
+ let t,ctx = Constrintern.interp_type (Global.env()) Evd.empty c in
let t = Detyping.detype false [] [] Evd.empty t in
let t = Notation_ops.notation_constr_of_glob_constr (default_env ()) t in
Reserve.declare_reserved_type idl t)
@@ -1460,7 +1460,7 @@ let get_current_context_of_args = function
let vernac_check_may_eval redexp glopt rc =
let (sigma, env) = get_current_context_of_args glopt in
- let sigma', c = interp_open_constr sigma env rc in
+ let sigma', c = interp_open_constr env sigma rc in
let sigma' = Evarconv.consider_remaining_unif_problems env sigma' in
Evarconv.check_problems_are_solved env sigma';
let sigma',nf = Evarutil.nf_evars_and_universes sigma' in
@@ -1490,7 +1490,7 @@ let vernac_declare_reduction locality s r =
let vernac_global_check c =
let env = Global.env() in
let sigma = Evd.from_env env in
- let c,ctx = interp_constr sigma env c in
+ let c,ctx = interp_constr env sigma c in
let senv = Global.safe_env() in
let cstrs = snd (Evd.evar_universe_context_set ctx) in
let senv = Safe_typing.add_constraints cstrs senv in
diff --git a/toplevel/whelp.ml4 b/toplevel/whelp.ml4
index c8054cf43..c167f9b79 100644
--- a/toplevel/whelp.ml4
+++ b/toplevel/whelp.ml4
@@ -182,7 +182,7 @@ let whelp_constr req c =
let whelp_constr_expr req c =
let (sigma,env)= Lemmas.get_current_context () in
- let _,c = interp_open_constr sigma env c in
+ let _,c = interp_open_constr env sigma c in
whelp_constr req c
let whelp_locate s =