summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-04-22 13:32:20 -0500
committerGitHub <noreply@github.com>2020-04-22 11:32:20 -0700
commitd64143f8aec229a673db1ec7b38d94890134d3f5 (patch)
tree3a967e221e2e881952b885b7fccfd08f21f1b034 /src
parent286ed8f8a3d6aece0469e983e87626a25107608d (diff)
Ensure disequality splits are processed as lemmas (#4380)
Fixes #4379. This was caused by a splitting lemma rewriting to a conjunction, being processed as a fact, and having a pending phase requirement sent out assuming the inference was to be processed as a lemma. This forces 2 of the splits in the core solver to be always processed as lemmas.
Diffstat (limited to 'src')
-rw-r--r--src/theory/strings/core_solver.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/theory/strings/core_solver.cpp b/src/theory/strings/core_solver.cpp
index 21b406ff3..9989c89f4 100644
--- a/src/theory/strings/core_solver.cpp
+++ b/src/theory/strings/core_solver.cpp
@@ -1872,7 +1872,8 @@ void CoreSolver::processDeq(Node ni, Node nj)
antec,
nm->mkNode(
OR, nm->mkNode(AND, eq1, sk.eqNode(firstChar).negate()), eq2),
- Inference::DEQ_DISL_FIRST_CHAR_STRING_SPLIT);
+ Inference::DEQ_DISL_FIRST_CHAR_STRING_SPLIT,
+ true);
d_im.sendPhaseRequirement(eq1, true);
return;
}
@@ -1920,7 +1921,8 @@ void CoreSolver::processDeq(Node ni, Node nj)
d_im.sendInference(antec,
antecNewLits,
nm->mkNode(AND, conc),
- Inference::DEQ_DISL_STRINGS_SPLIT);
+ Inference::DEQ_DISL_STRINGS_SPLIT,
+ true);
return;
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback