summaryrefslogtreecommitdiff
path: root/src/theory/model.cpp
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-10-29 13:50:34 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-10-29 13:50:34 +0000
commita42d1d31d9f73a1d9fdce404153598c5b94ed241 (patch)
tree9ad1a041dfa18db999fc76dcb90d59fbc6a0f241 /src/theory/model.cpp
parent572f874ba8d6275c6f7ad5dfbfd7ea26d0bb9e5f (diff)
Disable some array optimizations when models are on
Diffstat (limited to 'src/theory/model.cpp')
-rw-r--r--src/theory/model.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/theory/model.cpp b/src/theory/model.cpp
index 957491d37..2b819d6bd 100644
--- a/src/theory/model.cpp
+++ b/src/theory/model.cpp
@@ -226,8 +226,8 @@ void TheoryModel::assertEquality( Node a, Node b, bool polarity ){
if (a == b && polarity) {
return;
}
- d_equalityEngine.assertEquality( a.eqNode(b), polarity, Node::null() );
Trace("model-builder-assertions") << "(assert " << (polarity ? "(= " : "(not (= ") << a << " " << b << (polarity ? "));" : ")));") << endl;
+ d_equalityEngine.assertEquality( a.eqNode(b), polarity, Node::null() );
Assert(d_equalityEngine.consistent());
}
@@ -240,8 +240,8 @@ void TheoryModel::assertPredicate( Node a, bool polarity ){
if( a.getKind()==EQUAL ){
d_equalityEngine.assertEquality( a, polarity, Node::null() );
}else{
- d_equalityEngine.assertPredicate( a, polarity, Node::null() );
Trace("model-builder-assertions") << "(assert " << (polarity ? "" : "(not ") << a << (polarity ? ");" : "));") << endl;
+ d_equalityEngine.assertPredicate( a, polarity, Node::null() );
Assert(d_equalityEngine.consistent());
}
}
@@ -269,7 +269,7 @@ void TheoryModel::assertEqualityEngine( const eq::EqualityEngine* ee ){
assertPredicate(*eqc_i, false);
}
else if (eqc != (*eqc_i)) {
- Trace("model-builder-assertions") << "(assert (iff " << *eqc_i << " " << eqc << "));" << endl;
+ Trace("model-builder-assertions") << "(assert (= " << *eqc_i << " " << eqc << "));" << endl;
d_equalityEngine.mergePredicates(*eqc_i, eqc, Node::null());
Assert(d_equalityEngine.consistent());
}
@@ -451,9 +451,6 @@ void TheoryEngineModelBuilder::buildModel(Model* m, bool fullModel)
for (it = typeNoRepSet.begin(); it != typeNoRepSet.end(); ++it) {
TypeNode t = TypeSet::getType(it);
Trace("model-builder") << " Working on type: " << t << endl;
- // This assertion may be too strong, but hopefully not: we expect that for every type, either all of its EC's have asserted reps (or constants)
- // or none of its EC's have asserted reps.
- Assert(!fullModel || typeRepSet.getSet(t) == NULL);
set<Node>& noRepSet = TypeSet::getSet(it);
if (noRepSet.empty()) {
continue;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback