Introduce function array constant (#8793)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 24 May 2022 20:01:19 +0000 (15:01 -0500)
committerGitHub <noreply@github.com>
Tue, 24 May 2022 20:01:19 +0000 (20:01 +0000)
commit43f6eb50ca934b2c0d142fcd4d6b571a8789676f
tree6eee4bdd7ae12ec4e195233970070bf610a743c2
parent675c1b118102395503a060675081f4c11e7c9583
Introduce function array constant (#8793)

This introduces the FUNCTION_ARRAY_CONST kind and its payload FunctionArrayConst.

This is in preparation for refactoring isConst for functions in higher-order.

In particular, the plan is to never consider LAMBDA to denote a value of function sort. Instead, lambdas may be written to function array constants, whose uniqueness is trivial to justify.

This refactoring when completed will furthermore eliminate the last remaining static calls to the rewriter, to be done in a followup PR.
src/expr/CMakeLists.txt
src/expr/function_array_const.cpp [new file with mode: 0644]
src/expr/function_array_const.h [new file with mode: 0644]
src/theory/uf/kinds
src/theory/uf/theory_uf_type_rules.cpp
src/theory/uf/theory_uf_type_rules.h