Make data structures in relevance manager SAT-context dependent (#7733)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 7 Dec 2021 17:28:39 +0000 (11:28 -0600)
committerGitHub <noreply@github.com>
Tue, 7 Dec 2021 17:28:39 +0000 (17:28 +0000)
commitffbf4a88580c72d7db41a807d3b39008a82b51f4
tree8835d35832856faf1e6b4dde21df9a8b25403e11
parent9760648304ab71e6af6c479c0c3e941908561bc7
Make data structures in relevance manager SAT-context dependent (#7733)

This PR significantly improves the quality of values in get-difficulty. It fixes several bugs related to get-difficulty, including over-pruning values in ProofManager, and not tracking explanations for certain literals. It also improves performance by tracking justifications in relevance manager in a SAT-context dependent manner.

This is to support difficulty measurements based on lemmas sent at STANDARD effort.

It also adds 2 simple regressions.

A further PR will further improve the quality by being more careful about the relationships between literals and the assertions that entail that they are relevant.
src/smt/proof_manager.cpp
src/smt/set_defaults.cpp
src/theory/difficulty_manager.cpp
src/theory/difficulty_manager.h
src/theory/relevance_manager.cpp
src/theory/relevance_manager.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
test/regress/CMakeLists.txt
test/regress/regress0/difficulty-model-ex.smt2 [new file with mode: 0644]
test/regress/regress0/difficulty-simple.smt2 [new file with mode: 0644]