@@ -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
357381let 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