This PR adds an option to timeout on the verification check for the terms enumerated by the Sygus solver.
default = "3"
help = "maximum number of instantiation rounds for sygus verification calls (-1 == no limit, default is 3)"
+[[option]]
+ name = "sygusVerifyTimeout"
+ category = "regular"
+ long = "sygus-verify-timeout=N"
+ type = "uint64_t"
+ default = "0"
+ help = "timeout (in milliseconds) for verifying satisfiability of synthesized terms"
+
# Internal uses of sygus
[[option]]
}
Trace("sygus-engine") << " *** Verify with subcall..." << std::endl;
query = rewrite(query);
- Result r = checkWithSubsolver(query, vars, mvs, d_subOptions, d_subLogicInfo);
+ Result r = checkWithSubsolver(query,
+ vars,
+ mvs,
+ d_subOptions,
+ d_subLogicInfo,
+ options().quantifiers.sygusVerifyTimeout != 0,
+ options().quantifiers.sygusVerifyTimeout);
Trace("sygus-engine") << " ...got " << r << std::endl;
if (r.getStatus() == Result::SAT)
{