summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorDejan Jovanović <dejan.jovanovic@gmail.com>2012-11-26 17:07:46 +0000
committerDejan Jovanović <dejan.jovanovic@gmail.com>2012-11-26 17:07:46 +0000
commit2a731b9164bb178f1232a9af0babc7dd84450cea (patch)
tree57d14d55f1bae93737dbee34c737771858572fad /src/theory/theory_engine.h
parent164163c9c8fd255947cf3e8d236a5b9da1a1fdab (diff)
Adding support for a master equality engine. Each theory gets the master equality engine through the setMasterEqualityEngine method. This is a read-only equality engine, so nothing should be added to it directly. Instead each equality engine that is of interest should have the master equality engine attached to it. To set when to use the master equality engine see TheoryEngine::finishInit().
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index d6e984f8f..de872db42 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -76,8 +76,13 @@ namespace theory {
class Instantiator;
class TheoryModel;
class TheoryEngineModelBuilder;
+
+ namespace eq {
+ class EqualityEngine;
+ }
}/* CVC4::theory namespace */
+
class DecisionEngine;
/**
@@ -124,6 +129,11 @@ class TheoryEngine {
SharedTermsDatabase d_sharedTerms;
/**
+ * Master equality engine, to share with theories.
+ */
+ theory::eq::EqualityEngine* d_masterEqualityEngine;
+
+ /**
* The quantifiers engine
*/
theory::QuantifiersEngine* d_quantEngine;
@@ -428,6 +438,9 @@ public:
d_decisionEngine = decisionEngine;
}
+ /** Called when all initialization of options/logic is done */
+ void finishInit();
+
/**
* Get a pointer to the underlying propositional engine.
*/
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback