struct RecordProperties {
inline static Node mkGroundTerm(TypeNode type) {
- Unimplemented();
+ Assert(type.getKind() == kind::RECORD_TYPE);
+
+ const Record& rec = type.getRecord();
+ std::vector<Node> children;
+ for(Record::iterator i = rec.begin(),
+ i_end = rec.end();
+ i != i_end;
+ ++i) {
+ children.push_back((*i).second.mkGroundTerm());
+ }
+
+ return NodeManager::currentNM()->mkNode(NodeManager::currentNM()->mkConst(rec), children);
}
inline static bool computeIsConst(NodeManager* nodeManager, TNode n) {