Move preprocessor to smt solver (#7321)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 7 Oct 2021 20:10:26 +0000 (15:10 -0500)
committerGitHub <noreply@github.com>
Thu, 7 Oct 2021 20:10:26 +0000 (20:10 +0000)
commit4d8e954c952db015e28d218b4c23f038155797ad
tree8f253163f2ce834d5029b45d961a800dfa7a8380
parente5e727c868e169028bb24ca4547ba7078d366161
Move preprocessor to smt solver (#7321)

This breaks the circular dependency of preprocessing pass context of solver engine.

It also moves the preprocessor to be owned by SMT solver, instead of Solver engine.

It also changes the behavior of reset assertions: now, the preprocessing pass context is reset, whereas previously it was not. I believe this is the right behavior, as it eliminates stale data (e.g. learned literals, symbols in assertion cache).
12 files changed:
src/preprocessing/preprocessing_pass_context.cpp
src/preprocessing/preprocessing_pass_context.h
src/smt/preprocessor.cpp
src/smt/preprocessor.h
src/smt/process_assertions.cpp
src/smt/smt_solver.cpp
src/smt/smt_solver.h
src/smt/solver_engine.cpp
src/smt/solver_engine.h
src/smt/sygus_solver.cpp
src/smt/sygus_solver.h
test/unit/preprocessing/pass_bv_gauss_white.cpp