Fixes #5508. `STRINGS_CTN_DECOMPOSE` could be triggered multiple times
by the same term, which resulted in an assertion failure. This commit
returns immediately after the first conflict to avoid the assertion
failure.
{
// we are in conflict
d_im.sendInference(in.d_exp, conc, InferenceId::STRINGS_CTN_DECOMPOSE);
+ Assert(d_state.isInConflict());
+ return;
}
else if (d_extt.hasFunctionKind(conc.getKind()))
{
regress0/strings/issue5090.smt2
regress0/strings/issue5384-double-conflict.smt2
regress0/strings/issue5428-re-diff-assoc.smt2
+ regress0/strings/issue5508-multiple-conflicts.smt2
regress0/strings/issue5542-strings-seq-mix.smt2
regress0/strings/issue5608-eager-pp.smt2
regress0/strings/issue5666-orig-unit-deq.smt2
--- /dev/null
+(set-logic QF_SLIA)
+(declare-fun i2 () Int)
+(declare-fun str10 () String)
+(declare-fun str19 () String)
+(declare-fun i19 () Int)
+(assert (str.contains (str.from_int i2) (str.++ str19 "uKykCsFtVM" (str.from_int i19) "hORknmKIFtylbjBJVLsMNyAUKzpayeBQPHqN" str10)))
+(set-info :status unsat)
+(check-sat)