From b7a6fe4a10f2e9fec6ce5ffd1dd722534e25955a Mon Sep 17 00:00:00 2001 From: Andrew Reynolds Date: Sun, 29 Sep 2019 17:54:13 -0500 Subject: [PATCH] Fail single invocation techniques when utility inference fails. (#3322) --- src/theory/quantifiers/single_inv_partition.cpp | 1 + test/regress/CMakeLists.txt | 1 + test/regress/regress1/sygus/issue3320-quant.sy | 9 +++++++++ 3 files changed, 11 insertions(+) create mode 100644 test/regress/regress1/sygus/issue3320-quant.sy diff --git a/src/theory/quantifiers/single_inv_partition.cpp b/src/theory/quantifiers/single_inv_partition.cpp index 2bb05ad1b..c713ec1dd 100644 --- a/src/theory/quantifiers/single_inv_partition.cpp +++ b/src/theory/quantifiers/single_inv_partition.cpp @@ -371,6 +371,7 @@ bool SingleInvocationPartition::init(std::vector& funcs, else { Trace("si-prt") << "...failed." << std::endl; + return false; } return true; } diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index cdf93384e..d5ce552e6 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -1685,6 +1685,7 @@ set(regress_1_tests regress1/sygus/issue3201.smt2 regress1/sygus/issue3205.smt2 regress1/sygus/issue3247.smt2 + regress1/sygus/issue3320-quant.sy regress1/sygus/large-const-simp.sy regress1/sygus/let-bug-simp.sy regress1/sygus/list-head-x.sy diff --git a/test/regress/regress1/sygus/issue3320-quant.sy b/test/regress/regress1/sygus/issue3320-quant.sy new file mode 100644 index 000000000..a7b76182e --- /dev/null +++ b/test/regress/regress1/sygus/issue3320-quant.sy @@ -0,0 +1,9 @@ +; EXPECT: unsat +; COMMAND-LINE: --sygus-out=status +(set-logic LIA) +(declare-var x Int) +(declare-var y Int) +(synth-fun myfun ((x Int) (y Int)) Bool) +(constraint (exists ((x Int) (y Int)) (myfun x y))) +(constraint (exists ((x Int) (y Int)) (not (myfun x y)))) +(check-synth) -- 2.30.2