summaryrefslogtreecommitdiff
path: root/src/util/ite_removal.h
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-04-30 14:42:28 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-04-30 14:42:28 +0000
commit97555307af3415d6fbbac3fc9dccdafec51056b7 (patch)
tree56b47f809268d5b8ae21594d22cbec7ced8f46aa /src/util/ite_removal.h
parent9ac1cb18f03a5edf4b50532d29e195f74d6a83c2 (diff)
Added map from skolem variables to new ite formulas in ite removal.
d_sharedTermsExist is now set based on logicInfo instead of dynamically when shared terms are found.
Diffstat (limited to 'src/util/ite_removal.h')
-rw-r--r--src/util/ite_removal.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/util/ite_removal.h b/src/util/ite_removal.h
index bfb0d4ac8..248ce4efa 100644
--- a/src/util/ite_removal.h
+++ b/src/util/ite_removal.h
@@ -26,19 +26,26 @@
namespace CVC4 {
+typedef std::hash_map<Node, unsigned, NodeHashFunction> IteSkolemMap;
+
class RemoveITE {
public:
/**
* Removes the ITE nodes by introducing skolem variables. All additional assertions are pushed into assertions.
+ * iteSkolemMap contains a map from introduced skolem variables to the index in assertions containing the new
+ * Boolean ite created in conjunction with that skolem variable.
*/
- static void run(std::vector<Node>& assertions);
+ static void run(std::vector<Node>& assertions, IteSkolemMap& iteSkolemMap);
/**
* Removes the ITE from the node by introducing skolem variables. All additional assertions are pushed into assertions.
+ * iteSkolemMap contains a map from introduced skolem variables to the index in assertions containing the new
+ * Boolean ite created in conjunction with that skolem variable.
*/
- static Node run(TNode node, std::vector<Node>& additionalAssertions);
+ static Node run(TNode node, std::vector<Node>& additionalAssertions,
+ IteSkolemMap& iteSkolemMap);
};/* class RemoveTTE */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback