Assert(types.size() >= 2);
std::vector<TypeNode> typeNodes;
for (unsigned i = 0; i < types.size(); ++ i) {
- /* FIXME when congruence closure no longer abuses tuples */
-#if 0
CheckArgument(!types[i].isFunctionLike(), types,
"cannot put function-like types in tuples");
if(types[i].isBoolean()) {
WarningOnce() << "Warning: CVC4 does not yet support Boolean terms (you have created a tuple type with a Boolean argument)" << std::endl;
}
-#endif /* 0 */
typeNodes.push_back(types[i]);
}
return mkTypeNode(kind::TUPLE_TYPE, typeNodes);
};/* class StringConstantTypeRule */
class SortProperties {
-//private: //FIXME?
-// static std::map< TypeNode, TNode > d_groundTerms;
public:
inline static bool isWellFounded(TypeNode type) {
return true;
}
inline static Node mkGroundTerm(TypeNode type) {
Assert(type.getKind() == kind::SORT_TYPE);
- //if( d_groundTerms.find( type )==d_groundTerms.end() ){
- // d_groundTerms[type] = NodeManager::currentNM()->mkVar( type );
- //}
- //return d_groundTerms[type];
return NodeManager::currentNM()->mkVar( type );
}
-};
+};/* class SortProperties */
class FunctionProperties {
public: