summaryrefslogtreecommitdiff
path: root/src/theory/arith/constraint.h
diff options
context:
space:
mode:
authorAlex Ozdemir <aozdemir@hmc.edu>2020-12-18 07:01:58 -0800
committerGitHub <noreply@github.com>2020-12-18 09:01:58 -0600
commit5b05e467710e07bbfa27d4a2417ec27b336c245d (patch)
treeb909dc2937e88d79a7a631b1afa9caf8fd78df88 /src/theory/arith/constraint.h
parent8a2a526b2dab5d6efaf1435afcc1b7be113a86bf (diff)
Bugfix: proofs for props of non-normal arith lits (#5702)
Arith has a normal form for literals, which the rewriter computes. Nonetheless, arith sometimes gets (and ultimately propagates) non-normal literals. It normalizes them internally and goes about its business. However, when asked for an explanation, it must prove the non-normal literal, rather than the normal one. Also includes a regression for the bug, courtesy of Andy. Co-authored-by: Andrew Reynolds andrew-reynolds@uiowa.edu
Diffstat (limited to 'src/theory/arith/constraint.h')
-rw-r--r--src/theory/arith/constraint.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/theory/arith/constraint.h b/src/theory/arith/constraint.h
index 952879182..70b2cad20 100644
--- a/src/theory/arith/constraint.h
+++ b/src/theory/arith/constraint.h
@@ -601,8 +601,17 @@ class Constraint {
* hasEqualityEngineProof().
*
* All return conjuncts were asserted before this constraint.
+ *
+ * Requires the given node to rewrite to the canonical literal for this
+ * constraint.
+ *
+ * @params n the literal to prove
+ * n must rewrite to the constraint's canonical literal
+ *
+ * @returns a trust node of the form:
+ * (=> explanation n)
*/
- TrustNode externalExplainForPropagation() const;
+ TrustNode externalExplainForPropagation(TNode n) const;
/**
* Explain the constraint and its negation in terms of assertions.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback