Strings arith checks preprocessing pass: step 2 (#5750)
authoryoni206 <yoni206@users.noreply.github.com>
Sat, 9 Jan 2021 14:35:18 +0000 (06:35 -0800)
committerGitHub <noreply@github.com>
Sat, 9 Jan 2021 14:35:18 +0000 (08:35 -0600)
commitfcac065b47ea73aecb90f019c07dc6fa09cd914f
treee8ec67725927e7e6a1a88cdda9ec91877f232fff
parent907437b1aba221181cd7817b18f103902d18770c
Strings arith checks preprocessing pass: step 2 (#5750)

We are adding a preprocessing pass that simplifies arithmetic constraints related to strings.
For example, len(s) >= 0 would be replaced by true.
This will make use of CVC4::theory::strings::ArithEntail::check.

This PR is the second step. It includes the implementation of the main function, as well as unit tests for it.

A subsequent PR will add a user-level option that will turn on this preprocessing pass, as well as regression tests.
src/preprocessing/passes/foreign_theory_rewrite.cpp
src/preprocessing/passes/foreign_theory_rewrite.h
test/unit/preprocessing/CMakeLists.txt
test/unit/preprocessing/pass_foreign_theory_rewrite_white.h [new file with mode: 0644]