Explain non-emptiness by non-zero length in strings (#4257)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 10 Apr 2020 16:15:22 +0000 (11:15 -0500)
committerGitHub <noreply@github.com>
Fri, 10 Apr 2020 16:15:22 +0000 (11:15 -0500)
commit6b599f87b18186b811f187789e48c1e8c0774534
tree009cae522584f5268cd3ed18dc183ffc337fc85e
parent854d36b3ebb85579eefd654a18ed882b99649fb5
Explain non-emptiness by non-zero length in strings (#4257)

Several kinds of splitting lemmas in the strings solver can sometimes be avoided by observing that str.len(x) != 0 implies that x is non-empty. This generalizes the check for whether x is non-empty is explainable in the current context.
src/theory/strings/core_solver.cpp
src/theory/strings/solver_state.cpp
src/theory/strings/solver_state.h