Preparation for non-constant lambda models (#7604)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 9 Nov 2021 17:17:22 +0000 (11:17 -0600)
committerGitHub <noreply@github.com>
Tue, 9 Nov 2021 17:17:22 +0000 (17:17 +0000)
commitdd36a32c43f91652091c6f301d25dfc5f0204ccd
tree8d50a5ac03d658e8ed634364e15d0d1d525b2165
parent656db44c77c6728ab72f84fb286cca7906bb4366
Preparation for non-constant lambda models (#7604)

This makes our core model construction amenable to (non-constant) lambdas as assignments to function equivalence classes for higher-order.

We currently only generate almost constant functions for values of functions. After this PR, we allow explicitly provided lambdas as representatives provided by a theory, which will be used by the higher-order extension.

It also makes some improvements to debug check models regarding checking when representatives are equal to their model values.
src/theory/quantifiers/fmf/full_model_check.cpp
src/theory/theory_model.cpp
src/theory/theory_model.h
src/theory/theory_model_builder.cpp
src/theory/theory_model_builder.h