Fixes #5384.
Previously we were not breaking on conflict in all cases.
Inference inf = effort == 0 ? Inference::EXTF : Inference::EXTF_N;
d_im.sendInference(einfo.d_exp, conc, inf, false, true);
d_statistics.d_cdSimplifications << n.getKind();
- if (d_state.isInConflict())
- {
- Trace("strings-extf-debug") << " conflict, return." << std::endl;
- return;
- }
}
}
else
has_nreduce = true;
}
}
+ if (d_state.isInConflict())
+ {
+ Trace("strings-extf-debug") << " conflict, return." << std::endl;
+ return;
+ }
}
d_hasExtf = has_nreduce;
}
regress0/strings/issue4820.smt2
regress0/strings/issue4915.smt2
regress0/strings/issue5090.smt2
+ regress0/strings/issue5384-double-conflict.smt2
regress0/strings/issue5428-re-diff-assoc.smt2
regress0/strings/itos-entail.smt2
regress0/strings/large-model.smt2
--- /dev/null
+(set-logic QF_S)
+(set-option :strings-exp true)
+(set-info :status sat)
+(declare-fun _substvar_130_ () Bool)
+(declare-fun _substvar_156_ () Bool)
+(declare-fun _substvar_166_ () Bool)
+(declare-fun str0 () String)
+(declare-fun str8 () String)
+(declare-fun str19 () String)
+(assert (distinct "" str0))
+(assert (xor _substvar_166_ _substvar_130_ (str.prefixof (str.++ "" "" "" "" "\u2c6b\u0153\u0180\u16c50\u16b5\u16cd\u16c3\u0182\u16c0\xec\u01ae\u016f\u024bf") (str.++ "" str0 "\u0179\u0144\u0247")) true true))
+(assert (=> (str.contains str8 str19) _substvar_156_))
+(check-sat)