3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-18 18:10:17 +00:00

Missing justification added

Added check for correctness of conflict core
This commit is contained in:
CEisenhofer 2026-04-08 10:15:27 +02:00
parent c7e7b40d40
commit 26d36ba6ee
5 changed files with 56 additions and 28 deletions

View file

@ -160,7 +160,7 @@ static void test_nseq_symbol_clash() {
// verify conflict explanation returns the equality index
smt::enode_pair_vector eqs;
sat::literal_vector mem_idx;
ng.explain_conflict(eqs, mem_idx);
ng.test_aux_explain_conflict(eqs, mem_idx);
SASSERT(eqs.size() == 1);
SASSERT(eqs[0].first == nullptr);
SASSERT(mem_idx.empty());

View file

@ -1496,7 +1496,7 @@ static void test_explain_conflict_single_eq() {
// but the conflict should still be detected
svector<seq::enode_pair> eqs;
svector<sat::literal> mem_literals;
ng.explain_conflict(eqs, mem_literals);
ng.test_aux_explain_conflict(eqs, mem_literals);
// with test-friendly overload (null deps), eqs will be empty
// the important check is that the conflict was detected
}
@ -1526,7 +1526,7 @@ static void test_explain_conflict_multi_eq() {
// the important check is that the conflict was detected
svector<seq::enode_pair> eqs;
svector<sat::literal> mem_literals;
ng.explain_conflict(eqs, mem_literals);
ng.test_aux_explain_conflict(eqs, mem_literals);
}
// test that is_extended is set after solve generates extensions
@ -2117,7 +2117,7 @@ static void test_explain_conflict_mem_only() {
// with test-friendly overload (null deps), explain_conflict won't return deps
svector<seq::enode_pair> eqs;
svector<sat::literal> mem_literals;
ng.explain_conflict(eqs, mem_literals);
ng.test_aux_explain_conflict(eqs, mem_literals);
}
// test explain_conflict: mixed eq + mem conflict
@ -2151,7 +2151,7 @@ static void test_explain_conflict_mixed_eq_mem() {
// with test-friendly overload (null deps), explain_conflict won't return deps
svector<seq::enode_pair> eqs;
svector<sat::literal> mem_literals;
ng.explain_conflict(eqs, mem_literals);
ng.test_aux_explain_conflict(eqs, mem_literals);
}
// test subsumption pruning during solve: a node whose constraint set