summaryrefslogtreecommitdiff
path: root/src/expr/node.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-05-27 21:19:36 +0000
committerMorgan Deters <mdeters@gmail.com>2010-05-27 21:19:36 +0000
commit6ac90a806f563981bc25fe06bb0dde35d62da7a9 (patch)
treecbf5f3b1d4877cd6a7469356cfabbea5242d1d8f /src/expr/node.h
parent671a3d6d5ae8a89a1bb846a78f5ec9c064edc655 (diff)
Remove isAtomic() as per 4/27/2010 meeting. Add comments about its potential design for later. Resolves bug 113, invalidates bugs 93 and 94.
Diffstat (limited to 'src/expr/node.h')
-rw-r--r--src/expr/node.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/expr/node.h b/src/expr/node.h
index 2abe762ed..0daa3f58c 100644
--- a/src/expr/node.h
+++ b/src/expr/node.h
@@ -253,11 +253,19 @@ public:
return NodeTemplate(d_nv->getChild(i));
}
- /**
- * Returns true if this node is atomic (has no more Boolean structure)
- * @return true if atomic
+ /* A note on isAtomic() and isAtomicFormula() (in CVC3 parlance)..
+ *
+ * It has been decided for now to hold off on implementations of
+ * these functions, as they may only be needed in CNF conversion,
+ * where it's pointless to do a lazy isAtomic determination by
+ * searching through the DAG, and storing it, since the result will
+ * only be used once. For more details see the 4/27/2010 CVC4
+ * developer's meeting notes at:
+ *
+ * http://goedel.cims.nyu.edu/wiki/Meeting_Minutes_-_April_27,_2010#isAtomic.28.29_and_isAtomicFormula.28.29
*/
- inline bool isAtomic() const;
+ // bool containsDecision(); // is "atomic"
+ // bool properlyContainsDecision(); // maybe not atomic but all children are
/**
* Returns true if this node represents a constant
@@ -686,15 +694,6 @@ setAttribute(const AttrKind&, const typename AttrKind::value_type& value) {
template <bool ref_count>
NodeTemplate<ref_count> NodeTemplate<ref_count>::s_null(&expr::NodeValue::s_null);
-template <bool ref_count>
-inline bool NodeTemplate<ref_count>::isAtomic() const {
- if(!ref_count) {
- Assert( d_nv->d_rc > 0, "TNode pointing to an expired NodeValue" );
- }
-
- return NodeManager::currentNM()->isAtomic(*this);
-}
-
// FIXME: escape from type system convenient but is there a better
// way? Nodes conceptually don't change their expr values but of
// course they do modify the refcount. But it's nice to be able to
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback