Simplify caching of regular expression unfolding (#6262)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 1 Apr 2021 22:02:33 +0000 (17:02 -0500)
committerGitHub <noreply@github.com>
Thu, 1 Apr 2021 22:02:33 +0000 (22:02 +0000)
commitef2f19f8ba2a72d43586d1f4f364822dbe389aec
tree24bab218bc3930f360010f537a0be6cbefe0433d
parent7fa534c85cbb6eb2863f10840b39501a21acc0b9
Simplify caching of regular expression unfolding (#6262)

This ensures that we always cache regular expressions in a user-dependent manner. Previously, we were erroneously caching in a SAT-dependent way for very rare cases when non-constant regular expressions were used. Since we never dependent on current assertions for the unfolding, there is no need to cache in the SAT context.

This fixes the second benchmark from #6203.

This PR also improves our traces for checking models in strings.
src/theory/strings/extf_solver.cpp
src/theory/strings/extf_solver.h
src/theory/strings/regexp_solver.cpp
src/theory/strings/theory_strings.cpp
test/regress/CMakeLists.txt
test/regress/regress1/strings/issue6203-2-re-ccache.smt2 [new file with mode: 0644]