Based on this answers.ewi post it would be nice to explore the following techniques to reduce number of proof stages in a trimmed proof:
Unmarked deductions:
x >= 1 /\ y == 3 -> false
x >= 1 /\ y >= 1 -> false
In this case both unmarked deductions could unit propagate / detect conflict, but it would be unnecessary to use and mark the first deduction as the second deduction directly conflicts.
Based on this answers.ewi post it would be nice to explore the following techniques to reduce number of proof stages in a trimmed proof:
DeductionPropagatorpriority of a marked deduction toHighto make sure previously marked deductions get propagated first if possible, preventing unnecessary marking of unmarked deductions.explain_predicatesfunction (could be a different issue)UnmarkedDeductionPropagatorthat, as opposed to the currentDeductionPropagator, contains all unmarked deductions. This propagator would then be able to select unmarked deductions, which would directly result in a conflict. See the following example:State:
x >= 1
y >= 3, y <= 6
Unmarked deductions:
x >= 1 /\ y == 3 -> false
x >= 1 /\ y >= 1 -> false
In this case both unmarked deductions could unit propagate / detect conflict, but it would be unnecessary to use and mark the first deduction as the second deduction directly conflicts.