Do not mark string extended functions as eliminated after reduction lemmas (#4306)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 15 Apr 2020 12:55:41 +0000 (07:55 -0500)
committerGitHub <noreply@github.com>
Wed, 15 Apr 2020 12:55:41 +0000 (07:55 -0500)
commit0f3e4d1c802e1fe5fd90e712a6382ff9ca2bab34
treec9018d904871ebe3afda29b5410d6c53452f3d8e
parent94f8bafb38ccf380ace36259026a3b0959d13636
Do not mark string extended functions as eliminated after reduction lemmas (#4306)

The current policy marked extended functions in strings as "reduced" (eliminated) when we generated their reduction lemma. The upside is that the solver can effectively ignore them. The downside is that we cannot do context-dependent simplification on them, and hence we miss out conflicts during the remainder of the check-sat call.

This changes the policy so they are not marked as reduced. Instead, reduction lemmas are cached in the standard way while allowing context-dependent simplification.
src/theory/strings/extf_solver.cpp
src/theory/strings/extf_solver.h