summaryrefslogtreecommitdiff
path: root/test/regress
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-03-12 01:55:18 -0500
committerGitHub <noreply@github.com>2020-03-11 23:55:18 -0700
commit08431f8a51a62d02e3d3911db2e7754862953320 (patch)
treea4abd012c53218634d13473da77caf79c1b55239 /test/regress
parent404affc37ba4961220e6ab02ee6175844151f6a9 (diff)
Fix double notify in equality engine (#4036)
Fixes #3955. Previously we were getting two calls to notifyNewEqClass from the equality engine for new application nodes, since the notification was being done in an internal call to newNode(...). The proper place to call this is in addTermInternal(...) which is called only once per Node per SAT context. This bug potentially impacted some performance (due to redundant calls), and also broke the contract that notifyNewEqClass should only be called once per node per SAT context. In most cases, this was being handled in a benign way by theory solvers, although an assertion was failing in EqualityQuery, which is fixed by this PR. A block of code changed indentation in this commit.
Diffstat (limited to 'test/regress')
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress1/nl/issue3955-ee-double-notify.smt27
2 files changed, 8 insertions, 0 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index e3c14126a..0416d4f01 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -1339,6 +1339,7 @@ set(regress_1_tests
regress1/nl/issue3647.smt2
regress1/nl/issue3656.smt2
regress1/nl/issue3803-nl-check-model.smt2
+ regress1/nl/issue3955-ee-double-notify.smt2
regress1/nl/metitarski-1025.smt2
regress1/nl/metitarski-3-4.smt2
regress1/nl/metitarski_3_4_2e.smt2
diff --git a/test/regress/regress1/nl/issue3955-ee-double-notify.smt2 b/test/regress/regress1/nl/issue3955-ee-double-notify.smt2
new file mode 100644
index 000000000..8aa8793df
--- /dev/null
+++ b/test/regress/regress1/nl/issue3955-ee-double-notify.smt2
@@ -0,0 +1,7 @@
+(set-logic QF_UFNRA)
+(set-option :snorm-infer-eq true)
+(set-info :status sat)
+(declare-const r0 Real)
+(declare-const r4 Real)
+(assert (<= r4 (- (/ r0 r0))))
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback