(proof-new) Minor updates to strings base solver (#4606)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 12 Jun 2020 17:57:05 +0000 (12:57 -0500)
committerGitHub <noreply@github.com>
Fri, 12 Jun 2020 17:57:05 +0000 (12:57 -0500)
commit80493d9fa63169f02ff8b3c71622c49c6e068357
tree12d07413edd66d3d40ebcd2a5262b33f395e73d0
parent3c733d68aabc1c90b4f0f8a3e7a6a25f24896744
(proof-new) Minor updates to strings base solver (#4606)

In preparation for proofs, this PR involves flattening AND and removing spurious true literals in conjunctions.

This also updates our policy for applying cardinality, where in some rare cases we were applying cardinality for pairs of string terms for length 0 (e.g. "there is at most 1 eqc of length 0"), which is spurious due to our term registry which always splits on emptiness.
src/theory/strings/base_solver.cpp
src/theory/strings/base_solver.h
src/theory/strings/theory_strings.cpp