summaryrefslogtreecommitdiff
path: root/src/theory/theory_inference.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-09-04 17:52:11 -0500
committerGitHub <noreply@github.com>2020-09-04 17:52:11 -0500
commit3f150596fe2186aea1c40b3210e8a0d59dc1ba94 (patch)
treed0e3fbe5e3e55ef59783b8b4eb3e15e1f7020a4c /src/theory/theory_inference.cpp
parent721ce847f4d44fb7ee2509df3b34aad49fc7f484 (diff)
Add asLemma flag to theory inference process (#5030)
This is required for strings, which uses the same data structure, InferInfo, for both lemmas and facts. This ensures the process method of theory inference knows where we are a pending lemma or a pending fact. It also makes a few changes necessary for the proof-new branch, including disabling the proof node manager in the inference manager for datatypes.
Diffstat (limited to 'src/theory/theory_inference.cpp')
-rw-r--r--src/theory/theory_inference.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/theory/theory_inference.cpp b/src/theory/theory_inference.cpp
index 618dc640b..38e01eea5 100644
--- a/src/theory/theory_inference.cpp
+++ b/src/theory/theory_inference.cpp
@@ -28,9 +28,10 @@ SimpleTheoryLemma::SimpleTheoryLemma(Node n,
{
}
-bool SimpleTheoryLemma::process(TheoryInferenceManager* im)
+bool SimpleTheoryLemma::process(TheoryInferenceManager* im, bool asLemma)
{
Assert(!d_node.isNull());
+ Assert(asLemma);
// send (trusted) lemma on the output channel with property p
return im->trustedLemma(TrustNode::mkTrustLemma(d_node, d_pg), d_property);
}
@@ -42,8 +43,9 @@ SimpleTheoryInternalFact::SimpleTheoryInternalFact(Node conc,
{
}
-bool SimpleTheoryInternalFact::process(TheoryInferenceManager* im)
+bool SimpleTheoryInternalFact::process(TheoryInferenceManager* im, bool asLemma)
{
+ Assert(!asLemma);
bool polarity = d_conc.getKind() != NOT;
TNode atom = polarity ? d_conc : d_conc[0];
// no double negation or conjunctive conclusions
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback