(proof-new) Preprocessing passes use proper interfaces to assertions pipeline (#5164)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 1 Oct 2020 15:36:14 +0000 (10:36 -0500)
committerGitHub <noreply@github.com>
Thu, 1 Oct 2020 15:36:14 +0000 (10:36 -0500)
commit874350b54bd0f275fa8af7ca7a7af186bde7c030
treec2691cafe870a5377fa9692b7bcd6f6e2f0d0452
parent9c2a0ef0f00696eb4bbffcbbf23a43508c1c3987
(proof-new) Preprocessing passes use proper interfaces to assertions pipeline (#5164)

This PR eliminates all uses of assertions pipeline that are not proper, which two-fold:
(1) The assertion list should never be modified in a custom way (without going through replace / push_back),
(2) Places where an assertion is "conjoined" to an existing spot in the vector should use conjoin instead of replace.
This is required for proper proof generation.

This fixes CVC4/cvc4-projects#75.
19 files changed:
src/preprocessing/assertion_pipeline.h
src/preprocessing/passes/ackermann.cpp
src/preprocessing/passes/bv_gauss.cpp
src/preprocessing/passes/global_negate.cpp
src/preprocessing/passes/global_negate.h
src/preprocessing/passes/ho_elim.cpp
src/preprocessing/passes/ite_removal.cpp
src/preprocessing/passes/ite_simp.cpp
src/preprocessing/passes/nl_ext_purify.cpp
src/preprocessing/passes/non_clausal_simp.cpp
src/preprocessing/passes/quantifier_macros.cpp
src/preprocessing/passes/quantifier_macros.h
src/preprocessing/passes/sygus_inference.cpp
src/preprocessing/passes/sygus_inference.h
src/preprocessing/passes/synth_rew_rules.cpp
src/preprocessing/passes/unconstrained_simplifier.cpp
src/preprocessing/util/ite_utilities.cpp
src/preprocessing/util/ite_utilities.h
src/smt/process_assertions.cpp