Add inverse inference for update-over-concat (#7954)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Sat, 15 Jan 2022 02:16:20 +0000 (20:16 -0600)
committerGitHub <noreply@github.com>
Sat, 15 Jan 2022 02:16:20 +0000 (02:16 +0000)
commit108b8aa42f15b021d351790b36e2ece958871db8
tree823e5d5877d0302c1f671234c927917d6cc48fb1
parente037509aa86cf68691d9ef9eac3cac771fb26d03
Add inverse inference for update-over-concat (#7954)

This adds an inference that applies when an atomic update term becomes equal to a concatenation term.

This fixes bogus models discovered when writing the model soundness proof for the sequences array solver.
src/theory/inference_id.cpp
src/theory/inference_id.h
src/theory/strings/array_solver.cpp
src/theory/strings/array_solver.h
test/regress/CMakeLists.txt
test/regress/regress0/seq/update-concat-non-atomic.smt2 [new file with mode: 0644]
test/regress/regress0/seq/update-concat-non-atomic2.smt2 [new file with mode: 0644]