Infer when sygus operators are equivalent to builtin kinds (#4140)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Mon, 23 Mar 2020 22:12:56 +0000 (17:12 -0500)
committerGitHub <noreply@github.com>
Mon, 23 Mar 2020 22:12:56 +0000 (17:12 -0500)
commit591b704fa2e02adf2f192c3480e7b0393ed5daf9
tree4b6904e299caaa39ce04319c930235703bb163d8
parentdf7333de4436d846da70857e61cda411d22d02ba
Infer when sygus operators are equivalent to builtin kinds (#4140)

The V2 parser always turns sygus operators into lambdas for consistency. This PR ensures that we nevertheless infer when a sygus operator is equivalent to a builtin operator, e.g.
(lambda x y. (+ x y)) is equivalent to +.

The main reason this is required is to ensure that solution reconstruction heuristics work optimally when we make the switch SyGuS V1 -> V2 (see 5 failing benchmarks due to --cegqi-si=all on #4136).
src/theory/quantifiers/sygus/type_info.cpp