summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-02-26 21:44:42 +0000
committerMorgan Deters <mdeters@gmail.com>2010-02-26 21:44:42 +0000
commit14c22833d05f632eb40eb68cc3c68345d891005c (patch)
treec596c6e91442a3393611e88b10dec3871992a207 /src/theory/theory_engine.h
parent3311e8276fb6221d9e100be2b1eec88d8f119fef (diff)
* test/unit/context/context_black.h: Test CDList<>. In particular,
test behavior of grow(), which was previously very broken, fixed by Tim earlier this afternoon. * add the notion of a "private header". Private header files (those not intended for distribution) should now #include "cvc4_private.h" (or "cvc4parser_private.h" for the parser code). When not actually building libcvc4 (resp. libcvc4parser), or associated unit tests, a warning is emitted by the preprocessor. This should make it easier to notice (and disentangle early) any unwanted public/private mixing. Currently the warning identifies a couple places where we need to fix things. * added directory infrastructure for arrays and BV theories. * the Theory inheritance hierarchy makes some assumptions about the way inheritance is done. These are checked at runtime when CVC4_ASSERTIONS is on. See src/theory/theory.h's TheoryImpl<> definition for details. * src/theory/booleans/theory_bool.h, src/theory/booleans/theory_def.h, src/theory/arith/theory_arith.h, src/theory/arith/theory_def.h, src/theory/uf/theory_uf.h, src/theory/uf/theory_def.h, src/parser/antlr_parser.h: minor code formatting fixes as per policy. * src/theory/uf/theory_uf.cpp: fix for non-debug builds. * src/util/options.h, src/util/model.h, src/util/result.h, src/expr/type.h: make CVC4_PUBLIC. * src/util/decision_engine.h: no longer CVC4_PUBLIC. * src/expr/expr_manager.cpp: ExprManager::booleanType() and ExprManager::kindType() weren't returning a value ?! Fixed. * src/expr/expr_manager.h, src/expr/node_manager.h: ExprManager no longer depends on NodeManager (public/private interface mixing). ExprManagerScope is an internal implementation detail, and is moved to node_manager.h. * src/expr/node.h: mark gdb debug routines as "used" so that GCC always emits code for them (even though its static analysis shows they're unused).
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index 7d630f667..076ea4d2d 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -13,14 +13,21 @@
** The theory engine.
**/
+#include "cvc4_private.h"
+
#ifndef __CVC4__THEORY_ENGINE_H
#define __CVC4__THEORY_ENGINE_H
#include "expr/node.h"
#include "theory/theory.h"
-#include "theory/uf/theory_uf.h"
#include "theory/theoryof_table.h"
+#include "theory/booleans/theory_bool.h"
+#include "theory/uf/theory_uf.h"
+#include "theory/arith/theory_arith.h"
+#include "theory/arrays/theory_arrays.h"
+#include "theory/bv/theory_bv.h"
+
namespace CVC4 {
class SmtEngine;
@@ -70,6 +77,8 @@ class TheoryEngine {
theory::booleans::TheoryBool d_bool;
theory::uf::TheoryUF d_uf;
theory::arith::TheoryArith d_arith;
+ theory::arrays::TheoryArrays d_arrays;
+ theory::bv::TheoryBV d_bv;
public:
@@ -81,11 +90,15 @@ public:
d_theoryOut(),
d_bool(ctxt, d_theoryOut),
d_uf(ctxt, d_theoryOut),
- d_arith(ctxt, d_theoryOut) {
+ d_arith(ctxt, d_theoryOut),
+ d_arrays(ctxt, d_theoryOut),
+ d_bv(ctxt, d_theoryOut) {
d_theoryOut.setEngine(*this);
theoryOfTable.registerTheory(&d_bool);
theoryOfTable.registerTheory(&d_uf);
theoryOfTable.registerTheory(&d_arith);
+ theoryOfTable.registerTheory(&d_arrays);
+ theoryOfTable.registerTheory(&d_bv);
}
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback