diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-03-10 13:07:39 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-10 13:07:39 -0600 |
commit | 99acb6adc4858e9228a75283c0d4a640ce7cc812 (patch) | |
tree | 4427782f5823505831ba11bd1915a17f10caeed1 /src/theory/fp | |
parent | 132504c9f255fdb2c31b9a43bb3b9513db41afc1 (diff) |
(proof-new) Update ppRewrite to use skolem lemmas (#6102)
This is required for proofs. The internal calculus no longer uses witness forms for reasoning, and hence we cannot return witness terms in ppRewrite. This is required to fix a debug failure, as well as making life easier on external proof conversions.
As a result of this PR, for example, given (P a) as input to ppRewrite, previous we returned:
(P (witness ((x T)) (A x)))
now we return:
(P k), with skolem lemma ( (A k), k )
Followup PRs will remove the use of WITNESS in ppRewrite (e.g. in sets and strings); this PR modifies arithmetic to not return WITNESS in response to ppRewrite.
Diffstat (limited to 'src/theory/fp')
-rw-r--r-- | src/theory/fp/theory_fp.cpp | 2 | ||||
-rw-r--r-- | src/theory/fp/theory_fp.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/theory/fp/theory_fp.cpp b/src/theory/fp/theory_fp.cpp index c783620a7..d17e2999e 100644 --- a/src/theory/fp/theory_fp.cpp +++ b/src/theory/fp/theory_fp.cpp @@ -454,7 +454,7 @@ TrustNode TheoryFp::expandDefinition(Node node) return TrustNode::null(); } -TrustNode TheoryFp::ppRewrite(TNode node) +TrustNode TheoryFp::ppRewrite(TNode node, std::vector<SkolemLemma>& lems) { Trace("fp-ppRewrite") << "TheoryFp::ppRewrite(): " << node << std::endl; // first, see if we need to expand definitions diff --git a/src/theory/fp/theory_fp.h b/src/theory/fp/theory_fp.h index 2283756f6..1660d5799 100644 --- a/src/theory/fp/theory_fp.h +++ b/src/theory/fp/theory_fp.h @@ -64,7 +64,7 @@ class TheoryFp : public Theory void preRegisterTerm(TNode node) override; - TrustNode ppRewrite(TNode node) override; + TrustNode ppRewrite(TNode node, std::vector<SkolemLemma>& lems) override; //--------------------------------- standard check /** Do we need a check call at last call effort? */ |