TypeNode setType = nodeManager->mkSetType(elementType);
return setType;
}
+
+bool BagsProperties::isWellFounded(TypeNode type)
+{
+ return type[0].isWellFounded();
+}
+
+Node BagsProperties::mkGroundTerm(TypeNode type)
+{
+ Assert(type.isBag());
+ return NodeManager::currentNM()->mkConst(EmptyBag(type));
+}
} // namespace bags
} // namespace theory
} // namespace cvc5
#define CVC5__THEORY__BAGS__THEORY_BAGS_TYPE_RULES_H
#include "expr/node.h"
-#include "expr/type_node.h"
namespace cvc5 {
class NodeManager;
+class TypeNode;
namespace theory {
namespace bags {
return Cardinality::INTEGERS;
}
- static bool isWellFounded(TypeNode type) { return type[0].isWellFounded(); }
+ static bool isWellFounded(TypeNode type);
- static Node mkGroundTerm(TypeNode type)
- {
- Assert(type.isBag());
- return NodeManager::currentNM()->mkConst(EmptyBag(type));
- }
+ static Node mkGroundTerm(TypeNode type);
}; /* struct BagsProperties */
} // namespace bags