diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-10-06 10:02:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-06 10:02:54 -0500 |
commit | 2d8889f935ca78ef4a5555f0e6bbed76dbc559d7 (patch) | |
tree | 2d83522cd3d1e0d711773a45de0d2be2952dbb7c /src/theory/theory.h | |
parent | 6d663abe421c07976755c224180b1a1ee93442f6 (diff) |
(proof-new) Add interface for trusted substitution and update ppAssert (#5193)
The current work on proof-new involves proofs for preprocessing. The biggest issue currently is that our preprocessing passes do not track proofs for substitutions.
This adds a "trusted substitution" class with is a layer on substitution map. The proof aspect of this class is not yet implemented, this PR just adds its interface.
This also updates Theory::ppAssert to take a TrustSubstitutionMap instead of a SubstitutionMap, since eventually we will require proofs to be provided for substitutions that are added to this map.
Diffstat (limited to 'src/theory/theory.h')
-rw-r--r-- | src/theory/theory.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/theory/theory.h b/src/theory/theory.h index 6f6c863df..86dbb60d6 100644 --- a/src/theory/theory.h +++ b/src/theory/theory.h @@ -44,6 +44,7 @@ #include "theory/theory_rewriter.h" #include "theory/theory_state.h" #include "theory/trust_node.h" +#include "theory/trust_substitutions.h" #include "theory/valuation.h" #include "util/statistics_registry.h" @@ -699,10 +700,16 @@ class Theory { }; /** - * Given a literal, add the solved substitutions to the map, if any. - * The method should return true if the literal can be safely removed. + * Given a literal and its proof generator (encapsulated by trust node tin), + * add the solved substitutions to the map, if any. The method should return + * true if the literal can be safely removed from the input problem. + * + * Note that tin has trude node kind LEMMA. Its proof generator should be + * take into account when adding a substitution to outSubstitutions when + * proofs are enabled. */ - virtual PPAssertStatus ppAssert(TNode in, SubstitutionMap& outSubstitutions); + virtual PPAssertStatus ppAssert(TrustNode tin, + TrustSubstitutionMap& outSubstitutions); /** * Given an atom of the theory coming from the input formula, this |