summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-03-18 20:13:27 -0500
committerGitHub <noreply@github.com>2020-03-18 20:13:27 -0500
commitf1b58cf3d090d252e9349d491c4b43c46bf52b0e (patch)
treeab6758fa11cfa56e80646582277229ed610c22c3
parentba3a69d7915292ddb649bdb8b4830623b337818c (diff)
Fix issue with multiple infinities in CEGQI for LIRA (#4114)
Fixes #4086. Quantifier instantiation involves two symbolic representations of infinities for real and int and was not handled correctly previously.
-rw-r--r--src/theory/quantifiers/cegqi/vts_term_cache.cpp2
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress0/quantifiers/issue4086-infs.smt27
3 files changed, 9 insertions, 1 deletions
diff --git a/src/theory/quantifiers/cegqi/vts_term_cache.cpp b/src/theory/quantifiers/cegqi/vts_term_cache.cpp
index 11c126eaf..91f65c4ef 100644
--- a/src/theory/quantifiers/cegqi/vts_term_cache.cpp
+++ b/src/theory/quantifiers/cegqi/vts_term_cache.cpp
@@ -144,7 +144,7 @@ Node VtsTermCache::rewriteVtsSymbols(Node n)
std::vector<Node> subs_lhs;
subs_lhs.push_back(inf);
std::vector<Node> subs_rhs;
- subs_lhs.push_back(rew_vts_inf);
+ subs_rhs.push_back(rew_vts_inf);
n = n.substitute(subs_lhs.begin(),
subs_lhs.end(),
subs_rhs.begin(),
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index d822ce157..bffb2c4db 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -724,6 +724,7 @@ set(regress_0_tests
regress0/quantifiers/issue2033-macro-arith.smt2
regress0/quantifiers/issue2035.smt2
regress0/quantifiers/issue3655.smt2
+ regress0/quantifiers/issue4086-infs.smt2
regress0/quantifiers/lra-triv-gn.smt2
regress0/quantifiers/macros-int-real.smt2
regress0/quantifiers/macros-real-arg.smt2
diff --git a/test/regress/regress0/quantifiers/issue4086-infs.smt2 b/test/regress/regress0/quantifiers/issue4086-infs.smt2
new file mode 100644
index 000000000..2ebb45960
--- /dev/null
+++ b/test/regress/regress0/quantifiers/issue4086-infs.smt2
@@ -0,0 +1,7 @@
+(set-logic LIRA)
+(set-info :status unsat)
+(set-option :cbqi-use-inf-int true)
+(set-option :cbqi-use-inf-real true)
+(set-option :var-ineq-elim-quant false)
+(assert (forall (( b Real )) (forall (( c Int )) (and (> c (* b 2 ))))))
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback