@@ -115,10 +115,33 @@ let add_constraints state c = S.update (Option.get !pre_engine) state (fun ({ si
115115let 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 ]
118136let 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
134158let new_univ_level_variable ?(flexible =false ) state =
135159 S. update_return (Option. get ! pre_engine) state (fun ({ sigma } as e ) ->
0 commit comments