summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-04-14 08:58:33 -0500
committerGitHub <noreply@github.com>2021-04-14 13:58:33 +0000
commit3114f91e3fc62380a18dd0c9b8607b564d609640 (patch)
treed9d31438c3c11c9899e7bbb2a54a0271e702b166 /src
parentd1eee40cc8788d38ec7431ea8d7429a5573a101c (diff)
Warn about infeasible SyGuS conjectures (#6345)
Diffstat (limited to 'src')
-rw-r--r--src/theory/quantifiers/sygus/ce_guided_single_inv.cpp7
-rw-r--r--src/theory/quantifiers/sygus/synth_conjecture.cpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp b/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp
index 47ddaa0d2..f96e1e579 100644
--- a/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp
+++ b/src/theory/quantifiers/sygus/ce_guided_single_inv.cpp
@@ -233,8 +233,13 @@ bool CegSingleInv::solve()
siSmt->assertFormula(siq);
Result r = siSmt->checkSat();
Trace("sygus-si") << "Result: " << r << std::endl;
- if (r.asSatisfiabilityResult().isSat() != Result::UNSAT)
+ Result::Sat res = r.asSatisfiabilityResult().isSat();
+ if (res != Result::UNSAT)
{
+ Warning() << "Warning : the single invocation solver determined the SyGuS "
+ "conjecture"
+ << (res == Result::SAT ? " is" : " may be") << " infeasible"
+ << std::endl;
// conjecture is infeasible or unknown
return false;
}
diff --git a/src/theory/quantifiers/sygus/synth_conjecture.cpp b/src/theory/quantifiers/sygus/synth_conjecture.cpp
index e5dadcb7c..0eb96e277 100644
--- a/src/theory/quantifiers/sygus/synth_conjecture.cpp
+++ b/src/theory/quantifiers/sygus/synth_conjecture.cpp
@@ -284,6 +284,8 @@ bool SynthConjecture::needsCheck()
if (!value)
{
Trace("sygus-engine-debug") << "Conjecture is infeasible." << std::endl;
+ Warning() << "Warning : the SyGuS conjecture may be infeasible"
+ << std::endl;
return false;
}
else
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback