Node exportInternal(TNode n, ExprManager* from, ExprManager* to, ExprManagerMapCollection& vmap);
TypeNode exportTypeInternal(TypeNode n, NodeManager* from, NodeManager* to, ExprManagerMapCollection& vmap) {
- Debug("export") << "type: " << n << std::endl;
+ Debug("export") << "type: " << n << " " << n.getId() << std::endl;
if(theory::kindToTheoryId(n.getKind()) == theory::THEORY_DATATYPES) {
throw ExportUnsupportedException
("export of types belonging to theory of DATATYPES kinds unsupported");
}
if(n.getMetaKind() == metakind::CONSTANT) {
+ if(n.getKind() == kind::EMPTYSET) {
+ Type type = from->exportType(n.getConst< ::CVC4::EmptySet >().getType(), to, vmap);
+ return to->mkConst(::CVC4::EmptySet(type));
+ }
return exportConstant(n, NodeManager::fromExprManager(to));
} else if(n.isVar()) {
Expr from_e(from, new Node(n));
static Node exportConstant(TNode n, NodeManager* to) {
Assert(n.isConst());
+ Debug("export") << "constant: " << n << std::endl;
switch(n.getKind()) {
${exportConstant_cases}
stringstream ss;
ss << "Declared type of defined constant does not match its definition\n"
<< "The constant : " << func << "\n"
- << "Declared type : " << funcType << "\n"
+ << "Declared type : " << funcType << " " << Type::getTypeNode(funcType)->getId() << "\n"
<< "The definition : " << formula << "\n"
- << "Definition type: " << formulaType;
+ << "Definition type: " << formulaType << " " << Type::getTypeNode(formulaType)->getId();
throw TypeCheckingException(func, ss.str());
}
}