--- src/theory/quantifiers/conjecture_generator.cpp.orig 2018-06-25 15:13:18.823929253 -0600 +++ src/theory/quantifiers/conjecture_generator.cpp 2018-07-07 14:37:50.162382038 -0600 @@ -1089,16 +1089,17 @@ void ConjectureGenerator::getEnumerateUf vec_sum = 0; vec.push_back( size_limit ); }else{ + int vecindex = (index < vec.size()) ? vec[index] : 0; //see if we can iterate current if (vec_sum < size_limit - && !te->getEnumerateTerm(types[index], vec[index] + 1).isNull()) + && !te->getEnumerateTerm(types[index], vecindex + 1).isNull()) { - vec[index]++; + vec.assign(index, vecindex + 1); vec_sum++; vec.push_back( size_limit - vec_sum ); }else{ - vec_sum -= vec[index]; - vec[index] = 0; + vec_sum -= vecindex; + vec.assign(index, 0); index++; if( index==n.getNumChildren() ){ success = false;