@@ -910,6 +910,35 @@ A model attribute for the number of results available.
910
910
"""
911
911
struct ResultCount <: AbstractModelAttribute end
912
912
913
+ """
914
+ ConflictStatusCode
915
+
916
+ An Enum of possible values for the `ConflictStatus` attribute. This attribute
917
+ is meant to explain the reason why the conflict finder stopped executing in the
918
+ most recent call to [`compute_conflict!`](@ref).
919
+
920
+ Possible values are:
921
+ * `COMPUTE_CONFLICT_NOT_CALLED`: the function [`compute_conflict!`](@ref) has
922
+ not yet been called
923
+ * `NO_CONFLICT_EXISTS`: there is no conflict because the problem is feasible
924
+ * `NO_CONFLICT_FOUND`: the solver could not find a conflict
925
+ * `CONFLICT_FOUND`: at least one conflict could be found
926
+ """
927
+ @enum ConflictStatusCode begin
928
+ COMPUTE_CONFLICT_NOT_CALLED
929
+ NO_CONFLICT_EXISTS
930
+ NO_CONFLICT_FOUND
931
+ CONFLICT_FOUND
932
+ end
933
+
934
+ """
935
+ ConflictStatus()
936
+
937
+ A model attribute for the [`ConflictStatusCode`](@ref) explaining why the conflict
938
+ refiner stopped when computing the conflict.
939
+ """
940
+ struct ConflictStatus <: AbstractModelAttribute end
941
+
913
942
# # Variable attributes
914
943
915
944
"""
@@ -1117,6 +1146,30 @@ function throw_set_error_fallback(::ModelLike, ::ConstraintSet,
1117
1146
type $(typeof (set)) . Use `transform` instead.""" ))
1118
1147
end
1119
1148
1149
+ """
1150
+ ConflictParticipationStatusCode
1151
+
1152
+ An Enum of possible values for the [`ConstraintConflictStatus`](@ref) attribute.
1153
+ This attribute is meant to indicate whether a given constraint participates
1154
+ or not in the last computed conflict.
1155
+
1156
+ Possible values are:
1157
+ * `NOT_IN_CONFLICT`: the constraint does not participate in the conflict
1158
+ * `IN_CONFLICT`: the constraint participates in the conflict
1159
+ * `MAYBE_IN_CONFLICT`: the constraint may participate in the conflict,
1160
+ the solver was not able to prove that the constraint can be excluded from
1161
+ the conflict
1162
+ """
1163
+ @enum (ConflictParticipationStatusCode, NOT_IN_CONFLICT, IN_CONFLICT, MAYBE_IN_CONFLICT)
1164
+
1165
+ """
1166
+ ConstraintConflictStatus()
1167
+
1168
+ A constraint attribute indicating whether the constraint participates
1169
+ in the conflict. Its type is [`ConflictParticipationStatusCode`](@ref).
1170
+ """
1171
+ struct ConstraintConflictStatus <: AbstractConstraintAttribute end
1172
+
1120
1173
# # Termination status
1121
1174
"""
1122
1175
TerminationStatus()
@@ -1318,6 +1371,8 @@ function is_set_by_optimize(::Union{ObjectiveValue,
1318
1371
NodeCount,
1319
1372
RawSolver,
1320
1373
ResultCount,
1374
+ ConflictStatus,
1375
+ ConstraintConflictStatus,
1321
1376
TerminationStatus,
1322
1377
RawStatusString,
1323
1378
PrimalStatus,
0 commit comments