diff options
Diffstat (limited to 'src/expr/node_manager.cpp')
-rw-r--r-- | src/expr/node_manager.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp index 3c3d6df4a..f8057006c 100644 --- a/src/expr/node_manager.cpp +++ b/src/expr/node_manager.cpp @@ -950,6 +950,17 @@ Node NodeManager::mkNullaryOperator(const TypeNode& type, Kind k) { } } +Node NodeManager::mkSingleton(const TypeNode& t, const TNode n) +{ + Assert(n.getType().isSubtypeOf(t)) + << "Invalid operands for mkSingleton. The type '" << n.getType() + << "' of node '" << n << "' is not a subtype of '" << t << "'." + << std::endl; + Node op = mkConst(SingletonOp(t)); + Node singleton = mkNode(kind::SINGLETON, op, n); + return singleton; +} + Node NodeManager::mkAbstractValue(const TypeNode& type) { Node n = mkConst(AbstractValue(++d_abstractValueCount)); n.setAttribute(TypeAttr(), type); |