diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-11-21 16:24:16 -0600 |
---|---|---|
committer | Andres Noetzli <andres.noetzli@gmail.com> | 2018-11-21 14:24:16 -0800 |
commit | 1e7ce9dcc5268c8e13466f63ac2c4159d71a583a (patch) | |
tree | e705a65b9957960a278382d9de70681aabae5594 /src/smt | |
parent | 3072a39f6bda5a5ce0dd538e0f1a1bd1b744d122 (diff) |
Quickly recognize when PBE conjectures are infeasible (#2718)
Recognizes when the conjecture has conflicting I/O pairs. Also includes a minor change to the default behavior of PBE.
This change broke a delicate regression array_search_2, which I fixed by adding some additional options to make it more robust.
After this PR, we immediately find 4/7 unsolved in PBE strings of sygusComp 2018 to be infeasible.
Diffstat (limited to 'src/smt')
-rw-r--r-- | src/smt/smt_engine.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index f3a6c0c9e..7bf86f092 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -1304,6 +1304,14 @@ void SmtEngine::setDefaults() { options::unconstrainedSimp.set(uncSimp); } } + if (!options::proof()) + { + // minimizing solutions from single invocation requires proofs + if (options::cegqiSolMinCore() && options::cegqiSolMinCore.wasSetByUser()) + { + throw OptionException("cegqi-si-sol-min-core requires --proof"); + } + } // Disable options incompatible with unsat cores and proofs or output an // error if enabled explicitly |