Fix models for sequences of infinite element type (#6870)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 14 Jul 2021 13:43:25 +0000 (08:43 -0500)
committerGitHub <noreply@github.com>
Wed, 14 Jul 2021 13:43:25 +0000 (13:43 +0000)
commit51ea72ebbe4863be05055358ae02af09e8973585
treeb0d5549560611ea7a8ec45516a2ff49ccfda3dc5
parentae326f9c27bb1cbb89ae41eb825148f16c8a607f
Fix models for sequences of infinite element type (#6870)

This fixes our model construction for sequences of infinite element type.

We were relying on getModelValue in our model construction which is incorrect since it assumes that the element type's theory can provide concrete values during model generation time. This makes the sequence model construction more robust by generalizing how model values are assigned: we use skeletons instead of concrete values when the element type is infinite.

This fixes some open model generation issues with Facebook benchmarks.
src/printer/smt2/smt2_printer.cpp
src/theory/strings/base_solver.cpp
src/theory/strings/theory_strings.cpp