Add option to limit the number of instantiation rounds (#6818)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 1 Jul 2021 15:07:39 +0000 (10:07 -0500)
committerGitHub <noreply@github.com>
Thu, 1 Jul 2021 15:07:39 +0000 (10:07 -0500)
commitbdf46b42d6bd66121a5b5175a81408cd64d7ecfa
tree2aae6c707375616964afd88437be3b48f1dbe45a
parentd288f52dd82fe6590950758289e86ebcb039350d
Add option to limit the number of instantiation rounds (#6818)

This adds an option to limit the number of instantiation rounds used by quantifiers engine.

This option may be generally useful for making quantifiers terminating. It also is necessary to update the new default behavior of SyGuS + recursive functions. A followup PR will make sygus verification calls set the option added on this PR automatically, so that we use incomplete + termination strategies for (non-PBE) sygus in the presence of recursive functions.

This PR also makes minor improvements to the quantifier utility infrastructure.
src/options/quantifiers_options.toml
src/theory/incomplete_id.cpp
src/theory/incomplete_id.h
src/theory/quantifiers/instantiate.cpp
src/theory/quantifiers/instantiate.h
src/theory/quantifiers/quant_util.h
src/theory/quantifiers/term_database.h
src/theory/quantifiers/term_registry.cpp
src/theory/quantifiers_engine.cpp
src/theory/quantifiers_engine.h