(proof-new) Add proof support in TheoryUF (#5002)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 2 Sep 2020 19:01:39 +0000 (14:01 -0500)
committerGitHub <noreply@github.com>
Wed, 2 Sep 2020 19:01:39 +0000 (16:01 -0300)
commitc17f9b25cac7c0d2941ef136466cb750cf4c3e7b
tree95abb34573b6fd33e2215a7b2cfafc2f27281054
parenta692d44ed5ba0107113df54d2654417bc9f9c345
(proof-new) Add proof support in TheoryUF (#5002)

This makes TheoryUF use a standard theory inference manager, which thus makes it proof producing when proof-new is enabled.

This additionally cleans HoExtension so that it does not keep a backwards reference to TheoryUF and instead takes its inference manager. This additionally adds two rules for higher-order that are required to make its equality engine proofs correct.

Co-authored-by: Haniel Barbosa <hanielbbarbosa@gmail.com>
src/expr/proof_rule.cpp
src/expr/proof_rule.h
src/theory/uf/ho_extension.cpp
src/theory/uf/ho_extension.h
src/theory/uf/proof_checker.cpp
src/theory/uf/theory_uf.cpp
src/theory/uf/theory_uf.h
src/theory/uf/theory_uf_rewriter.h