summaryrefslogtreecommitdiff
path: root/src/theory/arith/partial_model.h
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2010-06-03 20:34:21 +0000
committerTim King <taking@cs.nyu.edu>2010-06-03 20:34:21 +0000
commit4cd2a432d621d18f7b811caab8935a617b4771c5 (patch)
tree77ddbe1e674df7f04a85f3ae5896f310ade13258 /src/theory/arith/partial_model.h
parent9e43f4ea07dc7d20be5ce31e8569bbfda4069432 (diff)
Fixes 2 issues with assignments. The first is constructing an initial assignment for slack variables once solving has begun. (They cannot just be 0.) The second has to do with how assignments are backttacked. Assignments are now tracked all of the time, and are frozen once they are known to be consistent, i.e. after a successful updateInconsistentVars(). Also added a fuzz test that shows both of these problems to the regressions.
Diffstat (limited to 'src/theory/arith/partial_model.h')
-rw-r--r--src/theory/arith/partial_model.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/theory/arith/partial_model.h b/src/theory/arith/partial_model.h
index 01db59855..57996a510 100644
--- a/src/theory/arith/partial_model.h
+++ b/src/theory/arith/partial_model.h
@@ -115,7 +115,7 @@ public:
/* */
void stopRecordingAssignments(bool revert);
-
+ bool isRecording() { return d_savingAssignments; }
void setUpperBound(TNode x, const DeltaRational& r);
void setLowerBound(TNode x, const DeltaRational& r);
@@ -144,6 +144,11 @@ public:
bool assignmentIsConsistent(TNode x);
void printModel(TNode x);
+
+ void initialize(TNode x, const DeltaRational& r);
+
+ DeltaRational getSavedAssignment(TNode x) const;
+
};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback