@@ -174,53 +174,6 @@ let isuniv, univout, univino, (univ : Univ.Universe.t API.Conversion.t) =
174174 end
175175}
176176
177- let propc = E.Constants. declare_global_symbol " prop"
178- let spropc = E.Constants. declare_global_symbol " sprop"
179- let typc = E.Constants. declare_global_symbol " typ"
180-
181- let sort =
182- let open API.AlgebraicData in declare {
183- ty = API.Conversion. TyName " sort" ;
184- doc = " Sorts (kinds of types)" ;
185- pp = (fun fmt -> function
186- | Sorts. Type _ -> Format. fprintf fmt " Type"
187- | Sorts. Set -> Format. fprintf fmt " Set"
188- | Sorts. Prop -> Format. fprintf fmt " Prop"
189- | Sorts. SProp -> Format. fprintf fmt " SProp"
190- | Sorts. QSort _ -> Format. fprintf fmt " Type" );
191- constructors = [
192- K (" prop" ," impredicative sort of propositions" ,N ,
193- B Sorts. prop,
194- M (fun ~ok ~ko -> function Sorts. Prop -> ok | _ -> ko () ));
195- K (" sprop" ," impredicative sort of propositions with definitional proof irrelevance" ,N ,
196- B Sorts. sprop,
197- M (fun ~ok ~ko -> function Sorts. SProp -> ok | _ -> ko () ));
198- K (" typ" ," predicative sort of data (carries a universe level)" ,A (univ,N ),
199- B (fun x -> Sorts. sort_of_univ x),
200- M (fun ~ok ~ko -> function
201- | Sorts. Type x -> ok x
202- | Sorts. Set -> ok Univ.Universe. type0
203- | _ -> ko () ));
204- K (" uvar" ," " ,A (F. uvar,N ),
205- BS (fun (k ,_ ) state ->
206- let m = S. get um state in
207- try
208- let u = UM. host k m in
209- state, Sorts. sort_of_univ u
210- with Not_found ->
211- let state, (_,u) = new_univ_level_variable state in
212- let state = S. update um state (UM. add k u) in
213- state, Sorts. sort_of_univ u),
214- M (fun ~ok ~ko _ -> ko () ));
215- ]
216- } |> API.ContextualConversion. (! < )
217-
218- let ast_sort ~loc = function
219- | Sorts. Prop -> A. mkGlobal ~loc propc
220- | Sorts. SProp -> A. mkGlobal ~loc spropc
221- | Sorts. Set -> A. mkAppGlobal ~loc typc (A. mkOpaque ~loc @@ univino Univ.Universe. type0) []
222- | Sorts. Type u -> A. mkAppGlobal ~loc typc (A. mkOpaque ~loc @@ univino u) []
223- | _ -> assert false
224177
225178let universe_level_variable =
226179 let { CD. cin = levelin }, universe_level_variable_to_patch = CD. declare {
@@ -477,6 +430,14 @@ let sort : (Sorts.t, _ coq_context, API.Data.constraints) API.ContextualConversi
477430 | _ -> raise API.Conversion. (TypeErr (TyName " sort" ,depth,t)));
478431}
479432
433+ let ast_sort ~loc = function
434+ | Sorts. Prop -> A. mkGlobal ~loc propc
435+ | Sorts. SProp -> A. mkGlobal ~loc spropc
436+ | Sorts. Set -> A. mkAppGlobal ~loc typc (A. mkOpaque ~loc @@ univino Univ.Universe. type0) []
437+ | Sorts. Type u -> A. mkAppGlobal ~loc typc (A. mkOpaque ~loc @@ univino u) []
438+ | _ -> assert false
439+
440+
480441let in_coq_fresh ~id_only =
481442 let mk_fresh dbl =
482443 Id. of_string_soft
@@ -1107,7 +1068,6 @@ let section_ids env =
11071068 ~init: [] named_ctx
11081069
11091070let sortc = E.Constants. declare_global_symbol " sort"
1110- let typc = E.Constants. declare_global_symbol " typ"
11111071
11121072let force_level_of_universe state u =
11131073 match Univ.Universe. level u with
0 commit comments