Require length-in-conclusion form for strings inferences (#5953)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Mon, 22 Feb 2021 20:15:43 +0000 (14:15 -0600)
committerGitHub <noreply@github.com>
Mon, 22 Feb 2021 20:15:43 +0000 (14:15 -0600)
commitddf647904de838e8e6ee266ad13de8a6a90250c8
tree12105cab2b35dd303e04e7735d7923587b758af0
parent85d96c3668495fb087f059e5662072ae66d69e22
Require length-in-conclusion form for strings inferences (#5953)

Previously, it was optional whether to put length constraints in conclusion for deq string inferences. However, due to optimizations in skolem caching, it is now required to guard these length constraints.

It furthermore changes the policy to not ignore the lengths for the registered skolem, since it may be shared elsewhere.

Fixes #5940.

Notice that proof-new already requires this option to be enabled when proofs are enabled. Hence, this will simplify proof-new when merged.
src/options/strings_options.toml
src/theory/strings/core_solver.cpp
src/theory/strings/core_solver.h
test/regress/CMakeLists.txt
test/regress/regress1/strings/issue5940-2-skc-len-conc.smt2 [new file with mode: 0644]
test/regress/regress1/strings/issue5940-skc-len-conc.smt2 [new file with mode: 0644]