Implement proofs for arith BRAB lemmas (#5784)
authorAlex Ozdemir <aozdemir@hmc.edu>
Tue, 19 Jan 2021 22:25:02 +0000 (14:25 -0800)
committerGitHub <noreply@github.com>
Tue, 19 Jan 2021 22:25:02 +0000 (16:25 -0600)
commit3c754308f66d92cd4b03d5f159464585c315b528
tree5dccdb0cad66968888b30b652c89ee45a1ac9979
parentde79f1ad325036ca90be9144a74606310b5dab9b
Implement proofs for arith BRAB lemmas (#5784)

All changes:

Add a Pf type alias for std::shared_ptr to
expr/proof_rule.h
Add an eager proof generator to TheoryArith for preprocessing
rewrites. Right now those are proven with INT_TRUST. Will eventually
fix.
Generate proved lemmas in TheoryArithPrivate::branchIntegerVariable.
Same for TheoryArithPrivate::roundRobinBranch
Add EagerProofGenerator::mkTrustedRewrite.
Add some proofsEnabled methods.
src/expr/proof_node.h
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h
src/theory/arith/theory_arith_private.cpp
src/theory/arith/theory_arith_private.h
src/theory/eager_proof_generator.cpp
src/theory/eager_proof_generator.h
src/theory/theory.cpp
src/theory/theory.h