summaryrefslogtreecommitdiff
path: root/src/parser/smt2
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-10-08 20:07:41 -0500
committerGitHub <noreply@github.com>2020-10-08 20:07:41 -0500
commite5913461e103bd1c7740e88f748524ae66672b53 (patch)
treed9149b98fe905528c1028f198a1231d7a8065845 /src/parser/smt2
parent4ea8a9e79566ab36a2bd52f2bed2cbc35e30947c (diff)
Simplify approach for collapsed selectors over non-closed enumerable types (#5223)
This simplifies the approach for wrongly-applied selectors whose range type involves e.g. uninterpreted sorts. These cases are particularly tricky since uninterpreted constants should never appear in facts or lemmas. Previously, the rewriter had special cases for either making a ground term or value, and a purify step was used to eliminate the occurrences of uninterpreted sorts afterwards. This PR leverages mkGroundTerm in this inference instead, and makes the rewriter uniformly use mkGroundValue. This also required making the type enumerator for datatypes more uniform. In particular, we require that the first value enumerated by the type enumerator is of the same shape as the term required by mkGroundTerm, or else debug-check-model will fail. This is due to the fact that now the inference for wrongly applied selectors uses terms while the rewriter uses values. The type enumerator is updated so that recursive codatatypes also first take mkGroundValue as the zero term, when they are well-founded. Previously this was skipped since the codatatype enumerator uses a different algorithm for computing its ground terms. This is in preparation for further work on optimizations and proofs for datatypes.
Diffstat (limited to 'src/parser/smt2')
0 files changed, 0 insertions, 0 deletions
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback