Skip to content

Commit 1ab7fcc

Browse files
authored
Merge pull request #946 from mattam82/elab-elim-constraints
Adapt to rocq-prover/rocq#21417 (Elim constraint elaboration)
2 parents 401f1aa + 618c19b commit 1ab7fcc

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/rocq_elpi_HOAS.ml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,33 @@ let add_constraints state c = S.update (Option.get !pre_engine) state (fun ({ si
115115
let add_constraints state c = S.update (Option.get !pre_engine) state (fun ({ sigma } as x) ->
116116
{ x with sigma = Evd.add_constraints sigma c })
117117
[%%endif]
118+
119+
[%%if coq = "9.0" || coq = "9.1"]
120+
let add_universe_constraint state c =
121+
let open UnivProblem in
122+
try add_constraints state (Set.singleton c)
123+
with
124+
| UGraph.UniverseInconsistency p ->
125+
let sigma = (S.get (Option.get !pre_engine) state).sigma in
126+
Feedback.msg_debug
127+
(UGraph.explain_universe_inconsistency
128+
(Termops.pr_evd_qvar sigma)
129+
(Termops.pr_evd_level sigma)
130+
p);
131+
raise API.BuiltInPredicate.No_clause
132+
| Evd.UniversesDiffer | UState.UniversesDiffer ->
133+
Feedback.msg_debug Pp.(str"UniversesDiffer");
134+
raise API.BuiltInPredicate.No_clause
135+
[%%else]
118136
let add_universe_constraint state c =
119137
let open UnivProblem in
120138
try add_constraints state (Set.singleton c)
121139
with
140+
| QGraph.(EliminationError (QualityInconsistency (Some printer, (k, q, q', e)))) ->
141+
Feedback.msg_debug
142+
(QGraph.explain_quality_inconsistency printer e);
143+
raise API.BuiltInPredicate.No_clause
144+
122145
| UGraph.UniverseInconsistency p ->
123146
let sigma = (S.get (Option.get !pre_engine) state).sigma in
124147
Feedback.msg_debug
@@ -130,6 +153,7 @@ let add_universe_constraint state c =
130153
| Evd.UniversesDiffer | UState.UniversesDiffer ->
131154
Feedback.msg_debug Pp.(str"UniversesDiffer");
132155
raise API.BuiltInPredicate.No_clause
156+
[%%endif]
133157

134158
let new_univ_level_variable ?(flexible=false) state =
135159
S.update_return (Option.get !pre_engine) state (fun ({ sigma } as e) ->

0 commit comments

Comments
 (0)