summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ozdemir <aozdemir@hmc.edu>2020-03-16 12:17:43 -0700
committerAlex Ozdemir <aozdemir@hmc.edu>2020-03-16 16:52:50 -0700
commit905d77664cdedb5d1f3fec91c32c5033a0618e67 (patch)
tree0d1421454b9208d4cca68d7e9edb13072afce8f0
parent53a07d0331d71656904a7333b5ed0c835d7d4c38 (diff)
Only save farkas+tightening proofs. Error on holes
I'll remove the error later
-rw-r--r--src/proof/arith_proof.cpp4
-rw-r--r--src/theory/arith/theory_arith_private.cpp14
2 files changed, 13 insertions, 5 deletions
diff --git a/src/proof/arith_proof.cpp b/src/proof/arith_proof.cpp
index 7deb22d48..2660f723f 100644
--- a/src/proof/arith_proof.cpp
+++ b/src/proof/arith_proof.cpp
@@ -1156,8 +1156,10 @@ void LFSCArithProof::printTheoryLemmaProof(std::vector<Expr>& lemma,
}
else
{
+ AlwaysAssert(false) << "arith hole!";
os << "\n; Arithmetic proofs which use reasoning more complex than Farkas "
- "proofs are currently unsupported\n(clausify_false trust)\n";
+ "proofs and bound tightening are currently unsupported\n"
+ "(clausify_false trust)\n";
}
}
diff --git a/src/theory/arith/theory_arith_private.cpp b/src/theory/arith/theory_arith_private.cpp
index 6c226bb61..fb71bb1b1 100644
--- a/src/theory/arith/theory_arith_private.cpp
+++ b/src/theory/arith/theory_arith_private.cpp
@@ -2188,8 +2188,11 @@ void TheoryArithPrivate::outputConflicts(){
}
Assert(conflict.getNumChildren() == pf.d_farkasCoefficients->size());
- d_containing.d_proofRecorder->saveFarkasCoefficients(
- conflictInFarkasCoefficientOrder, pf.d_farkasCoefficients);
+ if (confConstraint->hasSimpleFarkasProof())
+ {
+ d_containing.d_proofRecorder->saveFarkasCoefficients(
+ conflictInFarkasCoefficientOrder, pf.d_farkasCoefficients);
+ }
})
if(Debug.isOn("arith::normalize::external")){
conflict = flattenAndSort(conflict);
@@ -4951,8 +4954,11 @@ bool TheoryArithPrivate::rowImplicationCanBeApplied(RowIndex ridx, bool rowUp, C
Assert(coeffs != RationalVectorPSentinel);
Assert(conflictInFarkasCoefficientOrder.getNumChildren()
== coeffs->size());
- d_containing.d_proofRecorder->saveFarkasCoefficients(
- conflictInFarkasCoefficientOrder, coeffs);
+ if (implied->hasSimpleFarkasProof())
+ {
+ d_containing.d_proofRecorder->saveFarkasCoefficients(
+ conflictInFarkasCoefficientOrder, coeffs);
+ }
})
outputLemma(clause);
}else{
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback