Fix policy for rewriting string equalities (#6916)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 5 Aug 2021 15:21:48 +0000 (10:21 -0500)
committerGitHub <noreply@github.com>
Thu, 5 Aug 2021 15:21:48 +0000 (10:21 -0500)
commit48a1854491c99d61d21482115e18399195d4d365
tree47b933d38ac7577dba75dee11d19925bec6a50f8
parent183808b608071890b4d8a05d51233fe37a133873
Fix policy for rewriting string equalities (#6916)

This PR simplifies our rewriter for string equalities. We do not try to rewrite equalities to true/false by default.

This prevents cases where lemmas may contain vacuous premises that rewrite to false, hence making a lemma rewrite to true.

This PR reorganizes the interplay between the rewrite and the post-processing of rewrites via extended equality rewriting.

Fixes #6913. Also adds benchmarks from #6101 which appear related but were fixed in previous commits, thus fixes #6101 as well.
src/theory/strings/extf_solver.cpp
src/theory/strings/sequences_rewriter.cpp
src/theory/strings/sequences_rewriter.h
src/theory/strings/strings_entail.cpp
src/theory/strings/theory_strings.cpp
src/theory/theory_inference_manager.cpp
test/regress/CMakeLists.txt
test/regress/regress1/strings/issue6101-2.smt2 [new file with mode: 0644]
test/regress/regress1/strings/issue6101.smt2 [new file with mode: 0644]
test/regress/regress1/strings/issue6913.smt2 [new file with mode: 0644]