Skip to content

Commit 21bc62f

Browse files
authored
Merge pull request #1219 from ppedrot/reduce-pcontext-api
Adapt to rocq-prover/rocq#21394.
2 parents a4018d8 + aa2462a commit 21bc62f

File tree

3 files changed

+19
-21
lines changed

3 files changed

+19
-21
lines changed

template-rocq/src/plugin_core.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,12 +283,11 @@ let tmInductive (infer_univs : bool) (mie : mutual_inductive_entry) : unit tm =
283283
if infer_univs then
284284
let evm = Evd.from_env env in
285285
let ctx, mie = Tm_util.RetypeMindEntry.infer_mentry_univs env evm mie in
286-
let () = Global.push_qualities QGraph.Rigid (PConstraints.ContextSet.sort_context_set ctx) in (* XXX *)
287-
let () = Global.push_context_set (PConstraints.ContextSet.univ_context_set ctx) in
286+
let () = Global.push_context_set ctx in
288287
mie
289288
else mie
290289
in
291-
let names = (UState.Monomorphic_entry PConstraints.ContextSet.empty, UnivNames.empty_binders) in
290+
let names = (UState.Monomorphic_entry Univ.ContextSet.empty, UnivNames.empty_binders) in
292291
ignore (DeclareInd.declare_mutual_inductive_with_eliminations mie names []) ;
293292
success ~st (Global.env ()) evd ()
294293

template-rocq/src/run_template_monad.ml

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ let unquote_levelset env evm c (* of type Level.Set.t *) : _ * Level.Set.t =
143143
let c = unquote_list c in
144144
List.fold_left (fun (evm, set) c -> let evm, c = unquote_level evm c in evm, Level.Set.add c set)
145145
(evm, Level.Set.empty) c
146-
let denote_ucontextset env evm trm (* of type ContextSet.t *) : _ * PConstraints.ContextSet.t =
146+
let denote_ucontextset env evm trm (* of type ContextSet.t *) : _ * Univ.ContextSet.t =
147147
let i, c = unquote_pair trm in
148148
let evm, i = unquote_levelset env evm i in
149149
let evm, c = unquote_constraints env evm c in
150-
evm, (i, PConstraints.of_univs c)
150+
evm, (i, c)
151151

152152
let denote_names evm trm : _ * Name.t array =
153153
let l = unquote_list trm in
@@ -191,7 +191,7 @@ let _denote_variances evm trm : _ * Variance.t array option =
191191

192192
(* todo : stick to Rocq implem *)
193193
type universe_context_type =
194-
| Monomorphic_uctx of PConstraints.ContextSet.t
194+
| Monomorphic_uctx of Univ.ContextSet.t
195195
| Polymorphic_uctx of AbstractContext.t
196196

197197
let _to_entry_inductive_universes = function
@@ -288,12 +288,11 @@ let unquote_mutual_inductive_entry env evm trm (* of type mutual_inductive_entry
288288
let qs, us = UVars.Instance.to_array u in
289289
{ UVars.quals = Array.make (Array.length qs) Anonymous; UVars.univs = Array.make (Array.length us) Anonymous}
290290
in
291-
let (uvar, (qcst, ucst)) = ctx in
292-
let uctx = UVars.UContext.of_context_set mk_anon_names ((Sorts.QVar.Set.empty, qcst), (uvar, ucst)) in
291+
let uctx = UVars.UContext.of_context_set mk_anon_names ((Sorts.QVar.Set.empty, Sorts.ElimConstraints.empty), ctx) in
293292
let default_univs = UVars.UContext.instance uctx in
294-
PConstraints.ContextSet.empty, Entries.Template_ind_entry { uctx; default_univs }
293+
Univ.ContextSet.empty, Entries.Template_ind_entry { uctx; default_univs }
295294
else ctx, Entries.Monomorphic_ind_entry
296-
| UState.Polymorphic_entry uctx -> PConstraints.ContextSet.empty, Entries.Polymorphic_ind_entry uctx
295+
| UState.Polymorphic_entry uctx -> Univ.ContextSet.empty, Entries.Polymorphic_ind_entry uctx
297296
in
298297
evm, ctx, { mind_entry_record = record;
299298
mind_entry_finite = finite;
@@ -310,21 +309,19 @@ let declare_inductive (env: Environ.env) (evm: Evd.evar_map) (infer_univs : bool
310309
let mind = reduce_all env evm mind in
311310
let evm' = Evd.from_env env in
312311
let evm', ctx, mind = unquote_mutual_inductive_entry env evm' mind in
313-
let () = Global.push_qualities QGraph.Rigid (PConstraints.ContextSet.sort_context_set ctx) in (* XXX *)
314-
let () = Global.push_context_set (PConstraints.ContextSet.univ_context_set ctx) in
312+
let () = Global.push_context_set ctx in
315313
let evm, mind =
316314
if infer_univs then
317315
let ctx, mind = Tm_util.RetypeMindEntry.infer_mentry_univs env evm' mind in
318316
let () = debug (fun () -> Pp.(str "Declaring universe context " ++
319-
PConstraints.ContextSet.pr UnivNames.pr_quality_with_global_universes
320-
UnivNames.pr_level_with_global_universes ctx))
317+
Univ.ContextSet.pr UnivNames.pr_level_with_global_universes ctx))
321318
in
322-
let () = Global.push_qualities QGraph.Rigid (PConstraints.ContextSet.sort_context_set ctx) in (* XXX *)
323-
let () = Global.push_context_set (PConstraints.ContextSet.univ_context_set ctx) in
319+
let () = Global.push_context_set ctx in
320+
let ctx = PConstraints.ContextSet.of_univ_context_set ctx in
324321
Evd.merge_context_set Evd.UnivRigid evm ctx, mind
325322
else evm, mind
326323
in
327-
let names = (UState.Monomorphic_entry PConstraints.ContextSet.empty, UnivNames.empty_binders) in
324+
let names = (UState.Monomorphic_entry Univ.ContextSet.empty, UnivNames.empty_binders) in
328325
let primitive_expected =
329326
match mind.mind_entry_record with
330327
| Some (Some _) -> true
@@ -368,7 +365,7 @@ let rec run_template_program_rec ~poly ?(intactic=false) (k : Constr.t Plugin_co
368365
let name = unquote_ident (reduce_all env evm name) in
369366
let kind = Decls.IsAssumption Decls.Definitional in
370367
(* FIXME: better handling of evm *)
371-
let empty_mono_univ_entry = UState.Monomorphic_entry PConstraints.ContextSet.empty, UnivNames.empty_binders in
368+
let empty_mono_univ_entry = UState.Monomorphic_entry Univ.ContextSet.empty, UnivNames.empty_binders in
372369
Declare.declare_variable ~typing_flags:None ~name ~kind (SectionLocalAssum { typ; impl=Glob_term.Explicit; univs=empty_mono_univ_entry });
373370
let env = Global.env () in
374371
k ~st env evm (Lazy.force unit_tt)

template-rocq/src/tm_util.ml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,12 +280,14 @@ module RetypeMindEntry =
280280
let ctx, mind =
281281
match mind.mind_entry_universes with
282282
| Entries.Monomorphic_ind_entry ->
283-
Evd.universe_context_set evm, { mind with mind_entry_universes = Entries.Monomorphic_ind_entry }
283+
let ctx = PConstraints.ContextSet.univ_context_set @@ Evd.universe_context_set evm in
284+
ctx, { mind with mind_entry_universes = Entries.Monomorphic_ind_entry }
284285
| Entries.Template_ind_entry ctx ->
285-
Evd.universe_context_set evm, { mind with mind_entry_universes = Entries.Template_ind_entry ctx }
286+
let gctx = PConstraints.ContextSet.univ_context_set @@ Evd.universe_context_set evm in
287+
gctx, { mind with mind_entry_universes = Entries.Template_ind_entry ctx }
286288
| Entries.Polymorphic_ind_entry uctx ->
287289
let uctx' = Evd.to_universe_context evm in
288-
PConstraints.ContextSet.empty, { mind with mind_entry_universes = Entries.Polymorphic_ind_entry uctx' }
290+
Univ.ContextSet.empty, { mind with mind_entry_universes = Entries.Polymorphic_ind_entry uctx' }
289291
in ctx, mind
290292
end
291293

0 commit comments

Comments
 (0)