Move functions and lambdas from builtin to uf (#7570)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 5 Nov 2021 20:12:22 +0000 (15:12 -0500)
committerGitHub <noreply@github.com>
Fri, 5 Nov 2021 20:12:22 +0000 (20:12 +0000)
commitbc6f79ab1ca703b3507fc43e438f17b4422360b8
treef4d0d45d36d94bfde765f1e0f497a9a96293aa03
parente187b4c5709fc7b15e3d4c0e751224824208d28b
Move functions and lambdas from builtin to uf (#7570)

This is in preparation for adding better native support for handling lambdas in the higher-order extension of the UF theory.

We require that LAMBDA and function types belong to theory UF so that the theory solver is properly notified.

This also splits the utility methods for computing whether a function is "constant" to its own file.

This PR is code move only.
18 files changed:
src/CMakeLists.txt
src/theory/builtin/kinds
src/theory/builtin/theory_builtin_rewriter.cpp
src/theory/builtin/theory_builtin_rewriter.h
src/theory/builtin/theory_builtin_type_rules.cpp
src/theory/builtin/theory_builtin_type_rules.h
src/theory/builtin/type_enumerator.cpp
src/theory/builtin/type_enumerator.h
src/theory/datatypes/kinds
src/theory/uf/function_const.cpp [new file with mode: 0644]
src/theory/uf/function_const.h [new file with mode: 0644]
src/theory/uf/kinds
src/theory/uf/theory_uf_rewriter.cpp
src/theory/uf/theory_uf_rewriter.h
src/theory/uf/theory_uf_type_rules.cpp
src/theory/uf/theory_uf_type_rules.h
src/theory/uf/type_enumerator.cpp [new file with mode: 0644]
src/theory/uf/type_enumerator.h [new file with mode: 0644]