summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-11-05 16:45:13 -0500
committerGitHub <noreply@github.com>2021-11-05 21:45:13 +0000
commit61aa589c4a702ee378c5b3643f4a69373da2d360 (patch)
tree4b57160f7aee1ec2c0cb0b1109d5e469e01e86da /test
parent7d6d265e4de057510dbb6ae049446f47b047bcb8 (diff)
Eliminate a level of nesting of traversals in theory preprocessing (#7345)
This simplifies the theory preprocessor so that it does not rely on the term formula removal to do a nested traversal. Instead, it only relies on its "runCurrent" method. Notice that this PR essentially replaces TheoryPreprocessor's theoryPreprocess method with TermFormulaRemoval's runInternal method, while adding the required call to rewriteWithProof and preprocessWithProof as post-rewrites. This is far simpler than the previous method, which invoked nested traversals using TermFormulaRemoval::run. There are two things that will be improved in follow up PRs: The initial full rewrite step in the theory preprocessor can be merged into the main traversal of theory preprocess (I believe this is why we are slower on nec benchmark than we were previously), We should eliminate the traversal methods from TermFormulaRemoval altogether, as they are now subsumed by the theory preprocessors main traversal. This will require refactoring how "early ITE removal" works, as this is the only user now of TermFormulaRemoval::run. Note we should probably performance test this change. This incidentally fixes #6973, as the previous theory preprocessing code was to blame for that issue.
Diffstat (limited to 'test')
-rw-r--r--test/regress/CMakeLists.txt3
-rw-r--r--test/regress/regress1/strings/issue6973-dup-lemma-conc.smt22
2 files changed, 4 insertions, 1 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index f322ffafc..b6ccbcc54 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -2053,7 +2053,6 @@ set(regress_1_tests
regress1/quantifiers/stream-x2014-09-18-unsat.smt2
regress1/quantifiers/sygus-infer-nested.smt2
regress1/quantifiers/sygus-inst-nia-psyco-060.smt2
- regress1/quantifiers/sygus-inst-ufnia-sat-t3_rw1505.smt2
regress1/quantifiers/symmetric_unsat_7.smt2
regress1/quantifiers/tpp-unit-fail-qbv.smt2
regress1/quantifiers/var-eq-trigger.smt2
@@ -2824,6 +2823,8 @@ set(regression_disabled_tests
# ajreynol: different error messages on production and debug:
regress1/quantifiers/subtype-param-unk.smt2
regress1/quantifiers/subtype-param.smt2
+ # timeout after changes to theory preprocessing, note is non-linear and does not involve sygus-inst
+ regress1/quantifiers/sygus-inst-ufnia-sat-t3_rw1505.smt2
###
regress1/rels/garbage_collect.cvc.smt2
regress1/sets/setofsets-disequal.smt2
diff --git a/test/regress/regress1/strings/issue6973-dup-lemma-conc.smt2 b/test/regress/regress1/strings/issue6973-dup-lemma-conc.smt2
index 4c6fe5c62..36162852f 100644
--- a/test/regress/regress1/strings/issue6973-dup-lemma-conc.smt2
+++ b/test/regress/regress1/strings/issue6973-dup-lemma-conc.smt2
@@ -1,3 +1,5 @@
+; COMMAND-LINE: --strings-exp
+; COMMAND-LINE: --strings-exp --re-elim --re-elim-agg
(set-logic QF_SLIA)
(set-info :status unsat)
(declare-fun a () String)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback