summaryrefslogtreecommitdiff
path: root/src/util/options.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-08-17 22:24:26 +0000
committerMorgan Deters <mdeters@gmail.com>2010-08-17 22:24:26 +0000
commit08a57829cdd0ef4c02fee349b4b721d3e4a3f6d1 (patch)
tree9ea214ffb5a5a03e3c71c09814f17787be6d022b /src/util/options.h
parentdaf715e2ccb53bd88c6f374840b5d41e72c61c90 (diff)
Merge from "cc" branch:
CongruenceClosure implementation; CongruenceClosure white-box test. New UF theory implementation based on new CC module. This one supports predicates. The two UF implementations exist in parallel (they can be selected at runtime via the new command line option "--uf"). Added type infrastructure for TUPLE. Fixes to unit tests that failed in 16-August-2010 regressions. Needed to instantiate TheoryEngine with an Options structure, and explicitly call ->shutdown() on it before destruction (like the SMTEngine does). Fixed test makefiles to (1) perform all tests even in the presence of failures, (2) give proper summaries of subdirectory tests (e.g. regress0/uf and regress0/precedence) Other minor changes.
Diffstat (limited to 'src/util/options.h')
-rw-r--r--src/util/options.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/util/options.h b/src/util/options.h
index 7fcf35f00..c79bc93b1 100644
--- a/src/util/options.h
+++ b/src/util/options.h
@@ -47,6 +47,12 @@ struct CVC4_PUBLIC Options {
/** The input language */
parser::InputLanguage lang;
+ /** Enumeration of UF implementation choices */
+ typedef enum { TIM, MORGAN } UfImplementation;
+
+ /** Which implementation of uninterpreted function theory to use */
+ UfImplementation uf_implementation;
+
/** Should we exit after parsing? */
bool parseOnly;
@@ -65,6 +71,7 @@ struct CVC4_PUBLIC Options {
err(0),
verbosity(0),
lang(parser::LANG_AUTO),
+ uf_implementation(MORGAN),
parseOnly(false),
semanticChecks(true),
memoryMap(false),
@@ -72,6 +79,21 @@ struct CVC4_PUBLIC Options {
{}
};/* struct Options */
+inline std::ostream& operator<<(std::ostream& out, Options::UfImplementation uf) {
+ switch(uf) {
+ case Options::TIM:
+ out << "TIM";
+ break;
+ case Options::MORGAN:
+ out << "MORGAN";
+ break;
+ default:
+ out << "UfImplementation:UNKNOWN![" << unsigned(uf) << "]";
+ }
+
+ return out;
+}
+
}/* CVC4 namespace */
#endif /* __CVC4__OPTIONS_H */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback