Fully incorporate quantifiers macros into ppAssert / non-clausal simplification ...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Mon, 19 Apr 2021 21:59:35 +0000 (16:59 -0500)
committerGitHub <noreply@github.com>
Mon, 19 Apr 2021 21:59:35 +0000 (21:59 +0000)
commit14ee76f0737bcd0ad6711c4ab4ff9bf53a29a705
tree1ecb2ec9968443adfb37f7f9128a1c4107254907
parenta06ec9eb224c437523f3bff0ac6f6437d924f36a
Fully incorporate quantifiers macros into ppAssert / non-clausal simplification (#6394)

This PR removes the quantifiers macro preprocessing pass, which had several shortcomings, both in terms of performance and features.

This makes it so that quantifier macros are the (optional) implementation of TheoryQuantifiers::ppAssert.

In other words, quantifiers can now be put into "solved form", forall x. P(x) ---> P = lambda x. true.

This is part of an effort to improve proofs for preprocessing, as well as centralizing our reason about substitutions for the sake of efficiency.
12 files changed:
src/CMakeLists.txt
src/preprocessing/passes/quantifier_macros.cpp [deleted file]
src/preprocessing/passes/quantifier_macros.h [deleted file]
src/preprocessing/preprocessing_pass_registry.cpp
src/smt/process_assertions.cpp
src/theory/quantifiers/quantifiers_macros.cpp [new file with mode: 0644]
src/theory/quantifiers/quantifiers_macros.h [new file with mode: 0644]
src/theory/quantifiers/theory_quantifiers.cpp
src/theory/quantifiers/theory_quantifiers.h
src/theory/theory_model.cpp
test/regress/regress0/quantifiers/issue2033-macro-arith.smt2
test/regress/regress0/quantifiers/macro-back-subs-sat.smt2