diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-03-26 11:53:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-26 11:53:51 -0500 |
commit | 5a669e6ed1c51cc80cc1dd313906ca47345abccd (patch) | |
tree | ca251161db36799cc9183643098a2b2838dee923 | |
parent | 11c698936c10321db68131eb95e8648a20051e3a (diff) |
Abort when sygus-verify finds unsoundness. (#1717)
-rw-r--r-- | src/options/quantifiers_options.toml | 8 | ||||
-rw-r--r-- | src/theory/datatypes/datatypes_sygus.cpp | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/options/quantifiers_options.toml b/src/options/quantifiers_options.toml index 1437e9992..c40491a40 100644 --- a/src/options/quantifiers_options.toml +++ b/src/options/quantifiers_options.toml @@ -1123,6 +1123,14 @@ header = "options/quantifiers_options.h" help = "use sygus to verify the correctness of rewrite rules via sampling" [[option]] + name = "sygusRewVerifyAbort" + category = "regular" + long = "sygus-rr-verify-abort" + type = "bool" + default = "true" + help = "abort when sygus-rr-verify finds an instance of unsoundness" + +[[option]] name = "sygusSamples" category = "regular" long = "sygus-samples=N" diff --git a/src/theory/datatypes/datatypes_sygus.cpp b/src/theory/datatypes/datatypes_sygus.cpp index 7fe403526..4d3584596 100644 --- a/src/theory/datatypes/datatypes_sygus.cpp +++ b/src/theory/datatypes/datatypes_sygus.cpp @@ -827,9 +827,16 @@ bool SygusSymBreakNew::registerSearchValue( Node a, Node n, Node nv, unsigned d, } else { + // no witness point found? Assert(false); } } + if (options::sygusRewVerifyAbort()) + { + AlwaysAssert( + false, + "--sygus-rr-verify detected unsoundness in the rewriter!"); + } } } |