Fix non-termination issue in sygus enumerator (#8340)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 23 Mar 2022 00:05:38 +0000 (19:05 -0500)
committerGitHub <noreply@github.com>
Wed, 23 Mar 2022 00:05:38 +0000 (00:05 +0000)
commit25c955b38086b2342e5b61f0dc0440002ac71d08
tree2156a358c5b66f3b95683e2043c81f5d55c33fd6
parent8746066a6cbcf6c88d9b6da7a43d32ed3451850f
Fix non-termination issue in sygus enumerator (#8340)

This ensures that the sygus enumerator does not get stuck in rare cases.

In particular this is important when doing PBE and one of the enumerators (among return/condition enumeration) is out of values. This ensures we break when we fail to increment an enumerator for a type that is required to validate a child enumerator.
src/theory/quantifiers/sygus/enum_value_manager.cpp
src/theory/quantifiers/sygus/sygus_enumerator.cpp
src/theory/quantifiers/sygus/sygus_enumerator.h
src/theory/quantifiers/sygus/synth_conjecture.cpp
test/regress/cli/CMakeLists.txt
test/regress/cli/regress1/sygus/discPresent.sy [new file with mode: 0644]