summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-06-22 12:23:36 -0500
committerGitHub <noreply@github.com>2020-06-22 12:23:36 -0500
commitd85e90bfcc0bebe52b2da0bad638bc2fe9ef50b0 (patch)
tree9a161fca85a32a9a75efe34ce7c74ec0795656ab /src
parent0045ba2af7b31243c545828494d11f53e16f59db (diff)
(proof-new) Add proof-new to options file (#4641)
Adds proof-new as an option. This is required for adding code that is guarded by this option while we are in the process of merging work on the new proofs infrastructure. Enabling the option currently throws an option exception.
Diffstat (limited to 'src')
-rw-r--r--src/options/smt_options.toml17
-rw-r--r--src/smt/set_defaults.cpp30
2 files changed, 47 insertions, 0 deletions
diff --git a/src/options/smt_options.toml b/src/options/smt_options.toml
index 449c0c31e..303448d1b 100644
--- a/src/options/smt_options.toml
+++ b/src/options/smt_options.toml
@@ -165,6 +165,23 @@ header = "options/smt_options.h"
help = "output proofs after every UNSAT/VALID response"
[[option]]
+ name = "proofNew"
+ category = "regular"
+ long = "proof-new"
+ type = "bool"
+ default = "false"
+ help = "do proof production using the new infrastructure"
+
+[[option]]
+ name = "proofNewPedantic"
+ category = "regular"
+ long = "proof-new-pedantic"
+ type = "bool"
+ default = "false"
+ read_only = true
+ help = "assertion failure for any incorrect rule application or untrusted lemma for fully supported portions with proof-new"
+
+[[option]]
name = "dumpInstantiations"
category = "regular"
long = "dump-instantiations"
diff --git a/src/smt/set_defaults.cpp b/src/smt/set_defaults.cpp
index e3b1163fc..23ae65044 100644
--- a/src/smt/set_defaults.cpp
+++ b/src/smt/set_defaults.cpp
@@ -266,6 +266,11 @@ void setDefaults(SmtEngine& smte, LogicInfo& logic)
<< std::endl;
}
}
+ // !!!!!!!!!!!!!!!! temporary, to support CI check for old proof system
+ if (options::proof())
+ {
+ options::proofNew.set(false);
+ }
// sygus inference may require datatypes
if (!smte.isInternalSubsolver())
@@ -877,6 +882,16 @@ void setDefaults(SmtEngine& smte, LogicInfo& logic)
}
if (options::ufHo())
{
+ // if higher-order, disable proof production
+ if (options::proofNew())
+ {
+ if (options::proofNew.wasSetByUser())
+ {
+ Warning() << "SmtEngine: turning off proof production (not yet "
+ "supported with --uf-ho)\n";
+ }
+ options::proofNew.set(false);
+ }
// if higher-order, then current variants of model-based instantiation
// cannot be used
if (options::mbqiMode() != options::MbqiMode::NONE)
@@ -1108,6 +1123,16 @@ void setDefaults(SmtEngine& smte, LogicInfo& logic)
{
options::cegqiPreRegInst.set(true);
}
+ // not compatible with proofs
+ if (options::proofNew())
+ {
+ if (options::proofNew.wasSetByUser())
+ {
+ Notice() << "SmtEngine: setting proof-new to false to support SyGuS"
+ << std::endl;
+ }
+ options::proofNew.set(false);
+ }
}
// counterexample-guided instantiation for non-sygus
// enable if any possible quantifiers with arithmetic, datatypes or bitvectors
@@ -1464,6 +1489,11 @@ void setDefaults(SmtEngine& smte, LogicInfo& logic)
"division. "
"Try --bv-div-zero-const to interpret division by zero as a constant.");
}
+ // !!!!!!!!!!!!!!!! temporary, until proof-new is functional
+ if (options::proofNew())
+ {
+ throw OptionException("--proof-new is not yet supported.");
+ }
}
} // namespace smt
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback