summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2011-09-29 05:15:30 +0000
committerMorgan Deters <mdeters@gmail.com>2011-09-29 05:15:30 +0000
commitc94347913fa464b1ec6a3da2ab21e319c0c42e02 (patch)
tree6c8252385365e5dacc86ce8c364c3d06332d39a7 /src/theory/theory_engine.h
parent7adcbaf2eac82be6ca8cf1569bab80c961710950 (diff)
Some base infrastructure for user push/pop; a few bugfixes to user push/pop and model gen also.
I also expect this commit to fix bug #273. No performance change is expected on regressions with this commit, see http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2871&reference_id=2863
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index 04f15e89f..915373074 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -80,6 +80,9 @@ class TheoryEngine {
/** Our context */
context::Context* d_context;
+ /** Our user context */
+ context::UserContext* d_userContext;
+
/**
* A table of from theory IDs to theory pointers. Never use this table
* directly, use theoryOf() instead.
@@ -343,7 +346,7 @@ class TheoryEngine {
public:
/** Constructs a theory engine */
- TheoryEngine(context::Context* ctxt);
+ TheoryEngine(context::Context* context, context::UserContext* userContext);
/** Destroys a theory engine */
~TheoryEngine();
@@ -356,7 +359,7 @@ public:
inline void addTheory(theory::TheoryId theoryId) {
Assert(d_theoryTable[theoryId] == NULL && d_theoryOut[theoryId] == NULL);
d_theoryOut[theoryId] = new EngineOutputChannel(this, theoryId);
- d_theoryTable[theoryId] = new TheoryClass(d_context, *d_theoryOut[theoryId], theory::Valuation(this));
+ d_theoryTable[theoryId] = new TheoryClass(d_context, d_userContext, *d_theoryOut[theoryId], theory::Valuation(this));
}
/**
@@ -407,7 +410,8 @@ public:
/**
* Solve the given literal with a theory that owns it.
*/
- theory::Theory::SolveStatus solve(TNode literal, theory::SubstitutionMap& substitionOut);
+ theory::Theory::SolveStatus solve(TNode literal,
+ theory::SubstitutionMap& substitutionOut);
/**
* Preregister a Theory atom with the responsible theory (or
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback