return n1!=n2 && d_uequalityEngine.hasTerm( n1 ) && d_uequalityEngine.hasTerm( n2 ) && d_uequalityEngine.areDisequal( n1, n2, false );
}
-TNode ConjectureGenerator::getUniversalRepresentative( TNode n, bool add ) {
+Node ConjectureGenerator::getUniversalRepresentative(TNode n, bool add)
+{
if( add ){
if( d_urelevant_terms.find( n )==d_urelevant_terms.end() ){
setUniversalRelevant( n );
Trace("thm-ee-add") << "UEE : Add universal term " << t << std::endl;
std::vector< Node > eq_terms;
//if occurs modulo equality at ground level, it is equivalent to representative of ground equality engine
- TNode gt = getTermDatabase()->evaluateTerm( t );
+ Node gt = getTermDatabase()->evaluateTerm(t);
if( !gt.isNull() && gt!=t ){
eq_terms.push_back( gt );
}
while( !ueqcs_i.isFinished() ){
TNode r = (*ueqcs_i);
bool firstTime = true;
- TNode rr = getUniversalRepresentative( r );
+ Node rr = getUniversalRepresentative(r);
Trace("thm-ee") << " " << rr;
Trace("thm-ee") << " : { ";
eq::EqClassIterator ueqc_i = eq::EqClassIterator( r, &d_uequalityEngine );
//do not consider if it is non-canonical, and either:
// (1) we are not generating relevant terms, or
// (2) its canonical form is a generalization.
- TNode lnr = getUniversalRepresentative( ln, true );
+ Node lnr = getUniversalRepresentative(ln, true);
if( lnr==ln ){
markReportedCanon( ln );
}else if( !genRelevant || isGeneralization( lnr, ln ) ){
/** are universal disequal */
bool areUniversalDisequal( TNode n1, TNode n2 );
/** get universal representative */
- TNode getUniversalRepresentative( TNode n, bool add = false );
+ Node getUniversalRepresentative(TNode n, bool add = false);
/** set relevant */
void setUniversalRelevant( TNode n );
/** ordering for universal terms */
regress2/sygus/examples-deq.sy
regress2/sygus/icfp_easy_mt_ite.sy
regress2/sygus/inv_gen_n_c11.sy
+ regress2/sygus/issue4022-conjecture-gen.smt2
regress2/sygus/lustre-real.sy
regress2/sygus/max2-univ.sy
regress2/sygus/min_IC_1.sy
--- /dev/null
+(set-logic ALL)
+(set-option :conjecture-filter-model true)
+(set-option :conjecture-gen true)
+(set-option :conjecture-no-filter true)
+(set-option :dt-ref-sk-intro true)
+(set-option :quant-ind true)
+(set-option :sygus-inference true)
+(set-info :status sat)
+(declare-fun a (Int) Bool)
+(assert (exists ((b Int)) (a b)))
+(check-sat)