Simplify management of separation logic heap (#8580)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Mon, 18 Apr 2022 13:58:05 +0000 (08:58 -0500)
committerGitHub <noreply@github.com>
Mon, 18 Apr 2022 13:58:05 +0000 (13:58 +0000)
commitcf1a6a09b40fbbe2ce65b7d2012e1303f3b6ec3f
tree6e5500a8d15a890249474de3274068a2f17da811
parent8aac04e31310be4fb80fb60df0c88751ee457f6c
Simplify management of separation logic heap (#8580)

The separation logic heap is conceptually an extension of the logic, which lives in Env. This PR moves the separation logic heap types from TheoryEngine to Env.

It furthermore makes it so that declaring the separation logic heap does not force initialization of the SolverEngine, meaning that further declarations/options may be done after setting the heap.

This is in preparation for making the SmtSolver class easier to deep reset.
src/preprocessing/passes/sep_skolem_emp.cpp
src/smt/env.cpp
src/smt/env.h
src/smt/set_defaults.cpp
src/smt/solver_engine.cpp
src/theory/sep/theory_sep.cpp
src/theory/sep/theory_sep.h
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h