diff options
author | Clark Barrett <barrett@cs.nyu.edu> | 2012-04-30 14:42:28 +0000 |
---|---|---|
committer | Clark Barrett <barrett@cs.nyu.edu> | 2012-04-30 14:42:28 +0000 |
commit | 97555307af3415d6fbbac3fc9dccdafec51056b7 (patch) | |
tree | 56b47f809268d5b8ae21594d22cbec7ced8f46aa /src/util/ite_removal.h | |
parent | 9ac1cb18f03a5edf4b50532d29e195f74d6a83c2 (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.h | 11 |
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 */ |