}
int RepSetIterator::do_reset_increment( int i, bool initial ) {
- bool emptyDomain = false;
for( unsigned ii=(i+1); ii<d_index.size(); ii++ ){
+ bool emptyDomain = false;
int ri_res = resetIndex( ii, initial );
if( ri_res==-1 ){
//failed
emptyDomain = true;
}
//force next iteration if currently an empty domain
- if( emptyDomain ){
- d_index[ii] = domainSize(ii)-1;
+ if (emptyDomain)
+ {
+ Trace("rsi-debug") << "This is an empty domain, increment." << std::endl;
+ return increment();
}
}
- if( emptyDomain ){
- Trace("rsi-debug") << "This is an empty domain, increment." << std::endl;
- return increment();
- }else{
- return i;
- }
+ return i;
}
int RepSetIterator::increment(){
regress1/fmf/german73.smt2
regress1/fmf/issue2034-preinit.smt2
regress1/fmf/issue3587.smt2
+ regress1/fmf/issue3615.smt2
regress1/fmf/issue3626.smt2
regress1/fmf/issue916-fmf-or.smt2
regress1/fmf/jasmin-cdt-crash.smt2
--- /dev/null
+; COMMAND-LINE: --fmf-bound
+; EXPECT: sat
+(set-logic UFLIA)
+(declare-fun f (Int) Bool)
+(assert (forall ((x Int) (y Int)) (or (>= x 0) (<= x 0) (< y 0) (> y x) (f x))))
+(check-sat)