bool containsLeq(TNode atom) const;
bool containsGeq(TNode atom) const;
-
+ /** Check to make sure an lhs has been properly set-up. */
+ bool leftIsSetup(TNode left) const;
private:
+
VariablesSets& getVariablesSets(TNode left);
BoundValueSet& getBoundValueSet(TNode left);
EqualValueSet& getEqualValueSet(TNode left);
/** Sends an implication (=> a b) to the PropEngine via d_arithOut. */
void addImplication(TNode a, TNode b);
- /** Check to make sure an lhs has been properly set-up. */
- bool leftIsSetup(TNode left) const;
-
/** Initializes the lists associated with a unique lhs. */
void setupLefthand(TNode left);
d_out->setIncomplete();
}
- if(Variable::isMember(n) || isStrictlyVarList){
+ if((Variable::isMember(n) || isStrictlyVarList) && !d_arithvarNodeMap.hasArithVar(n)){
++(d_statistics.d_statUserVariables);
ArithVar varN = requestArithVar(n,false);
setupInitialValue(varN);
}
- if(isRelationOperator(k)){
+ if(isRelationOperator(k) && (!d_atomDatabase.leftIsSetup(n[0]) || !d_atomDatabase.containsAtom(n))) {
Assert(Comparison::isNormalAtom(n));
d_atomDatabase.addAtom(n);