diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-04-22 13:32:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-22 11:32:20 -0700 |
commit | d64143f8aec229a673db1ec7b38d94890134d3f5 (patch) | |
tree | 3a967e221e2e881952b885b7fccfd08f21f1b034 /src/theory | |
parent | 286ed8f8a3d6aece0469e983e87626a25107608d (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/theory')
-rw-r--r-- | src/theory/strings/core_solver.cpp | 6 |
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; } } |