Skip to content

Commit 43de4d5

Browse files
jrosainFissoreD
authored andcommitted
Adapt to rocq-prover/rocq#20397 (removal of sort families)
1 parent 72181bd commit 43de4d5

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

src/rocq_elpi_builtins.ml

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,31 @@ let handle_uinst_option_for_inductive ~depth options i state =
351351
* unify-list-eq R1 R2.
352352
*
353353
*)
354-
354+
[%%if coq = "8.20" || coq = "9.0"]
355+
let build_of_sort = API.AlgebraicData.B (fun s -> Structures.ValuePattern.Sort_cs (Sorts.family s))
356+
let match_of_sort =
357+
let open API.AlgebraicData in let open Structures.ValuePattern in
358+
MS (fun ~ok ~ko p state -> match p with
359+
| Sort_cs Sorts.InSet -> ok Sorts.set state
360+
| Sort_cs Sorts.InProp -> ok Sorts.prop state
361+
| Sort_cs Sorts.InType ->
362+
let state, (_,u) = new_univ_level_variable state in
363+
let u = Sorts.sort_of_univ u in
364+
ok u state
365+
| _ -> ko state)
366+
[%%else]
367+
let build_of_sort = API.AlgebraicData.B (fun s -> Structures.ValuePattern.Sort_cs (UnivGen.QualityOrSet.of_sort s))
368+
let match_of_sort =
369+
let open API.AlgebraicData in let open Structures.ValuePattern in
370+
MS (fun ~ok ~ko p state -> match p with
371+
| Sort_cs UnivGen.QualityOrSet.Set -> ok Sorts.set state
372+
| Sort_cs UnivGen.QualityOrSet.(Qual (QConstant QProp)) -> ok Sorts.prop state
373+
| Sort_cs UnivGen.QualityOrSet.(Qual (QConstant QType)) ->
374+
let state, (_,u) = new_univ_level_variable state in
375+
let u = Sorts.sort_of_univ u in
376+
ok u state
377+
| _ -> ko state)
378+
[%%endif]
355379

356380

357381
let cs_pattern =
@@ -379,16 +403,7 @@ let cs_pattern =
379403
K("cs-default","",N,
380404
B Default_cs,
381405
M (fun ~ok ~ko -> function Default_cs -> ok | _ -> ko ()));
382-
K("cs-sort","",A(sort,N),
383-
B (fun s -> Sort_cs (Sorts.family s)),
384-
MS (fun ~ok ~ko p state -> match p with
385-
| Sort_cs Sorts.InSet -> ok Sorts.set state
386-
| Sort_cs Sorts.InProp -> ok Sorts.prop state
387-
| Sort_cs Sorts.InType ->
388-
let state, (_,u) = new_univ_level_variable state in
389-
let u = Sorts.sort_of_univ u in
390-
ok u state
391-
| _ -> ko state))
406+
K("cs-sort","",A(sort,N),build_of_sort,match_of_sort)
392407
]
393408
} |> CConv.(!<)
394409

0 commit comments

Comments
 (0)