(proof-new) proofs for arith-constraint explanations (#5224)
authorAlex Ozdemir <aozdemir@hmc.edu>
Fri, 9 Oct 2020 12:55:14 +0000 (05:55 -0700)
committerGitHub <noreply@github.com>
Fri, 9 Oct 2020 12:55:14 +0000 (07:55 -0500)
commit5fd55819da2ea6fdf0472f2e212330d09c4b5317
tree826c5f9ee804a7ac19ea51242667edc7a76dcfe1
parent36addc33791da4b1fbae9fbcec87ac26cfc7a270
(proof-new) proofs for arith-constraint explanations (#5224)

Threads proofs through arith::Constraint's machinery for explaining
constraints. Changes, by function:

externalExplainByAssertions:
introduce scope to prove the implication
externalExplainForPropagation:
introduce scope to prove the implication
externalExplainConflict:
use other machinery to prove conflicting constraints
use the CONTRA rule
introduce scope to close the conflict proof
Future commits will pick up these proofs in theory_arith_private.cpp.
Future commits will prove the "split" lemmas produced in constraint.cpp
src/theory/arith/arith_utilities.h
src/theory/arith/constraint.cpp
src/theory/arith/constraint.h
src/theory/arith/theory_arith_private.cpp