Enumerate shapes feature in fast sygus enumerator (#4742)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Sat, 18 Jul 2020 02:24:22 +0000 (21:24 -0500)
committerGitHub <noreply@github.com>
Sat, 18 Jul 2020 02:24:22 +0000 (19:24 -0700)
commita1941114ac47af57547b34bb8ef8123624dd3bd3
treeafc694de04f851aebc3c164764917c28a5385e9d
parent8f085eb6a087242ab8c775ec4fe41ab9a194cec2
Enumerate shapes feature in fast sygus enumerator  (#4742)

This adds the feature of enumerating shapes in the fast sygus enumerator, which is required for a new algorithm for sygus solution reconstruction.

This also adds a builtinToSygus backwards mapping that is required for that algorithm as well.

Note this also changes the implementation of mkFreeVar in sygus term database from skolem to bound variable, which is required to do proper caching for expr::hasBoundVar.
src/theory/datatypes/sygus_datatype_utils.cpp
src/theory/datatypes/sygus_datatype_utils.h
src/theory/quantifiers/sygus/sygus_enumerator.cpp
src/theory/quantifiers/sygus/sygus_enumerator.h
src/theory/quantifiers/sygus/term_database_sygus.cpp