if( options::sygusFair()!=SYGUS_FAIR_NONE ){
std::map< unsigned, Node >::iterator it = d_lits.find( s );
if( it==d_lits.end() ){
- if (options::sygusAbortSize() != -1 &&
- static_cast<int>(s) > options::sygusAbortSize()) {
- Message() << "Maximum term size (" << options::sygusAbortSize()
- << ") for enumerative SyGuS exceeded." << std::endl;
- exit(1);
+ if (options::sygusAbortSize() != -1
+ && static_cast<int>(s) > options::sygusAbortSize())
+ {
+ std::stringstream ss;
+ ss << "Maximum term size (" << options::sygusAbortSize()
+ << ") for enumerative SyGuS exceeded." << std::endl;
+ throw LogicException(ss.str());
}
Assert( !d_this.isNull() );
Node c = NodeManager::currentNM()->mkConst( Rational( s ) );
construct_compose( m, q, n, f, children, bchildren, vchildren, entry, entry_def );
}
Assert( is_normalized() );
- //if( !is_normalized() ){
- // std::cout << "NON NORMALIZED DEFINITION" << std::endl;
- // exit( 10 );
- //}
return true;
}else if( varChCount==1 && ( n.getKind()==EQUAL && !n[0].getType().isBoolean() ) ){
Trace("ambqi-check-debug2") << "Expand variable child..." << std::endl;
}
}else{
Message() << "Could not find literal " << nlit << " for range " << d_range << std::endl;
- exit(0);
+ AlwaysAssert(false);
}
}
int minIndex = -1;
if( options::mbqiMode()==quantifiers::MBQI_FMC_INTERVAL && inst[index].getType().isInteger() ){
for( std::map<Node,EntryTrie>::iterator it = d_child.begin(); it != d_child.end(); ++it ){
- //if( !m->isInterval( it->first ) ){
- // std::cout << "Not an interval during getGenIndex " << it->first << std::endl;
- // exit( 11 );
- //}
//check if it is in the range
if( m->isInRange(inst[index], it->first ) ){
int gindex = it->second.getGeneralizationIndex(m, inst, index+1);
if (Trace.isOn("fmc-test-inst")) {
Node ev = d_quant_models[f].evaluate(fmfmc, inst);
if( ev==d_true ){
- std::cout << "WARNING: instantiation was true! " << f << " " << d_quant_models[f].d_cond[i] << std::endl;
- exit(0);
+ Message() << "WARNING: instantiation was true! " << f << " "
+ << d_quant_models[f].d_cond[i] << std::endl;
+ AlwaysAssert(false);
}else{
Trace("fmc-test-inst") << "...instantiation evaluated to false." << std::endl;
}
//check if already defined, if so, throw error
if( d_sorts.find( f )!=d_sorts.end() ){
Message() << "Cannot define function " << f << " more than once." << std::endl;
- exit( 0 );
+ AlwaysAssert(false);
}
Node bd = QuantAttributes::getFunDefBody( assertions[i] );
}else{
d_single_inv = Node::null();
Trace("cegqi-si") << "Formula is not single invocation." << std::endl;
- if( options::cegqiSingleInvAbort() ){
- Notice() << "Property is not single invocation." << std::endl;
- exit( 1 );
+ if (options::cegqiSingleInvAbort())
+ {
+ std::stringstream ss;
+ ss << "Property is not single invocation." << std::endl;
+ throw LogicException(ss.str());
}
}
}
if( Trace.isOn("csi-sol") ){
//debug solution
- if( !d_sol->debugSolution( d_solution ) ){
+ if (!d_sol->debugSolution(d_solution))
+ {
Trace("csi-sol") << "WARNING : solution " << d_solution << " contains free constants." << std::endl;
- //exit( 47 );
- }else{
- //exit( 49 );
}
}
if( Trace.isOn("cegqi-stats") ){
bool TheoryStrings::processLoop( std::vector< std::vector< Node > > &normal_forms, std::vector< Node > &normal_form_src,
int i, int j, int loop_n_index, int other_n_index, int loop_index, int index, InferInfo& info ){
if( options::stringAbortLoop() ){
- Message() << "Looping word equation encountered." << std::endl;
- exit( 1 );
+ std::stringstream ss;
+ ss << "Looping word equation encountered." << std::endl;
+ throw LogicException(ss.str());
}
NodeManager* nm = NodeManager::currentNM();
Node conc;
//check for abort case
if (options::ufssAbortCardinality() != -1 &&
d_aloc_cardinality >= options::ufssAbortCardinality()) {
- Message() << "Maximum cardinality (" << options::ufssAbortCardinality()
- << ") for finite model finding exceeded." << std::endl;
- exit( 1 );
+ std::stringstream ss;
+ ss << "Maximum cardinality (" << options::ufssAbortCardinality()
+ << ") for finite model finding exceeded." << std::endl;
+ throw LogicException(ss.str());
}else{
if( applyTotality( d_aloc_cardinality ) ){
//must generate new cardinality lemma term
}
if( ss==b_t ){
Message() << "Bad split " << s << std::endl;
- exit( 16 );
+ AlwaysAssert(false);
}
}
if( options::sortInference()) {