};/* struct NodeTheoryPairHashFunction */
-
-/* Forward Declarations Block */
+/* Forward declarations */
namespace theory {
class TheoryModel;
class TheoryEngineModelBuilder;
namespace eq {
class EqualityEngine;
- }
+ }/* CVC4::theory::eq namespace */
class EntailmentCheckParameters;
class EntailmentCheckSideEffects;
}/* CVC4::theory namespace */
+
class DecisionEngine;
class RemoveITE;
class UnconstrainedSimplifier;
Node getModelValue(TNode var);
/**
- * Forwards an entailmentCheck according to the given theoryOfMode mode.
+ * Forwards an entailment check according to the given theoryOfMode.
* See theory.h for documentation on entailmentCheck().
*/
std::pair<bool, Node> entailmentCheck(theory::TheoryOfMode mode, TNode lit, const theory::EntailmentCheckParameters* params = NULL, theory::EntailmentCheckSideEffects* out = NULL);
** Major contributors: Dejan Jovanovic
** Minor contributors (to current version): Andrew Reynolds, Clark Barrett, Tim King
** This file is part of the CVC4 project.
- ** Copyright (c) 2009-2013 New York University and The University of Iowa
+ ** Copyright (c) 2009-2014 New York University and The University of Iowa
** See the file COPYING in the top-level source directory for licensing
** information.\endverbatim
**
namespace theory {
bool equalityStatusCompatible(EqualityStatus s1, EqualityStatus s2) {
- switch (s1) {
- case EQUALITY_TRUE:
- case EQUALITY_TRUE_IN_MODEL:
- case EQUALITY_TRUE_AND_PROPAGATED:
- switch (s2) {
- case EQUALITY_TRUE:
- case EQUALITY_TRUE_IN_MODEL:
- case EQUALITY_TRUE_AND_PROPAGATED:
- return true;
- default:
- return false;
- }
- break;
- case EQUALITY_FALSE:
- case EQUALITY_FALSE_IN_MODEL:
- case EQUALITY_FALSE_AND_PROPAGATED:
- switch (s2) {
- case EQUALITY_FALSE:
- case EQUALITY_FALSE_IN_MODEL:
- case EQUALITY_FALSE_AND_PROPAGATED:
- return true;
- default:
- return false;
- }
- break;
- default:
- return false;
- }
+ switch (s1) {
+ case EQUALITY_TRUE:
+ case EQUALITY_TRUE_IN_MODEL:
+ case EQUALITY_TRUE_AND_PROPAGATED:
+ switch (s2) {
+ case EQUALITY_TRUE:
+ case EQUALITY_TRUE_IN_MODEL:
+ case EQUALITY_TRUE_AND_PROPAGATED:
+ return true;
+ default:
+ return false;
+ }
+ break;
+ case EQUALITY_FALSE:
+ case EQUALITY_FALSE_IN_MODEL:
+ case EQUALITY_FALSE_AND_PROPAGATED:
+ switch (s2) {
+ case EQUALITY_FALSE:
+ case EQUALITY_FALSE_IN_MODEL:
+ case EQUALITY_FALSE_AND_PROPAGATED:
+ return true;
+ default:
+ return false;
+ }
+ break;
+ default:
+ return false;
+ }
}
bool Valuation::isSatLiteral(TNode n) const {
return d_engine->getModelValue(var);
}
-
Node Valuation::ensureLiteral(TNode n) {
Debug("ensureLiteral") << "rewriting: " << n << std::endl;
Node rewritten = Rewriter::rewrite(n);
return d_engine->getPropEngine()->getAssertionLevel();
}
+std::pair<bool, Node> Valuation::entailmentCheck(theory::TheoryOfMode mode, TNode lit, const theory::EntailmentCheckParameters* params, theory::EntailmentCheckSideEffects* out) {
+ return d_engine->entailmentCheck(mode, lit, params, out);
+}
+
}/* CVC4::theory namespace */
}/* CVC4 namespace */
** Major contributors: Dejan Jovanovic
** Minor contributors (to current version): Tim King, Andrew Reynolds, Clark Barrett
** This file is part of the CVC4 project.
- ** Copyright (c) 2009-2013 New York University and The University of Iowa
+ ** Copyright (c) 2009-2014 New York University and The University of Iowa
** See the file COPYING in the top-level source directory for licensing
** information.\endverbatim
**
#define __CVC4__THEORY__VALUATION_H
#include "expr/node.h"
+#include "theory/theoryof_mode.h"
namespace CVC4 {
namespace theory {
+class EntailmentCheckParameters;
+class EntailmentCheckSideEffects;
+
/**
* The status of an equality in the current context.
*/
EQUALITY_FALSE_IN_MODEL,
/** The equality is completely unknown */
EQUALITY_UNKNOWN
-};
+};/* enum EqualityStatus */
/**
- * Returns true if the two statuses are compatible, i.e. bot TRUE
- * or both FALSE (regardles of inmodel/propagation).
+ * Returns true if the two statuses are compatible, i.e. both TRUE
+ * or both FALSE (regardless of inmodel/propagation).
*/
bool equalityStatusCompatible(EqualityStatus s1, EqualityStatus s2);
*/
unsigned getAssertionLevel() const;
+ /**
+ * Request an entailment check according to the given theoryOfMode.
+ * See theory.h for documentation on entailmentCheck().
+ */
+ std::pair<bool, Node> entailmentCheck(theory::TheoryOfMode mode, TNode lit, const theory::EntailmentCheckParameters* params = NULL, theory::EntailmentCheckSideEffects* out = NULL);
+
};/* class Valuation */
}/* CVC4::theory namespace */