Add interfaces for making trust nodes in TheoryInferenceManager. (#5016)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 4 Sep 2020 00:15:30 +0000 (19:15 -0500)
committerGitHub <noreply@github.com>
Fri, 4 Sep 2020 00:15:30 +0000 (19:15 -0500)
commita5b834d5af88e372d9c6340653f831a09daf1d39
tree13b998f9887589f9f9d5f0619a0139d982d7e3b8
parent0fe081a56db369372584a5fcd35a4c4e4fb1c23f
Add interfaces for making trust nodes in TheoryInferenceManager. (#5016)

This gives theories a finer grained control over explained lemmas and conflicts.

A theory may now use an inference manager to construct "explained" lemmas/conflicts e.g. via mkLemmaExp, subsequently do any theory-specific debugging or modification to that lemma before sending it via trustedLemma.

This is required for the new strings inference manager on proof-new.

This also adds a missing variant of conflicts for the proof equality engine. It also does a minor simplification of a previous variant for constructing conflicts from proof equality engine based on a proof step buffer.
src/theory/theory_inference_manager.cpp
src/theory/theory_inference_manager.h
src/theory/uf/proof_equality_engine.cpp
src/theory/uf/proof_equality_engine.h