// if this type admits any constant, then at least one of my children
// must not be the "any constant" constructor
unsigned dt_index_nargs = dt[tindex].getNumArgs();
- int tn_ac = d_tds->getAnyConstantConsNum(tn);
- if (tn_ac != -1 && dt_index_nargs > 0)
+ if (dt.getSygusAllowConst() && dt_index_nargs > 0)
{
std::vector<Node> exp_all_anyc;
bool success = true;
}
return true;
}
- bool empty() {
- return d_req_kind==UNDEFINED_KIND && d_req_const.isNull() && d_req_type.isNull();
+ bool empty()
+ {
+ return d_req_kind == UNDEFINED_KIND && d_req_const.isNull()
+ && d_req_type.isNull() && d_children.empty();
}
};
}else if( pk==ITE ){
if( arg==0 ){
if( c==max_c ){
- rt.d_children[2].d_req_type = tnp;
- }else if( c==zero_c ){
rt.d_children[1].d_req_type = tnp;
}
+ else if (c == zero_c)
+ {
+ rt.d_children[2].d_req_type = tnp;
+ }
}
}else if( pk==STRING_SUBSTR ){
if (c == one_c && arg == 2)