[proofs] Generalize handling of constants merged in equality engine (#8781)
authorHaniel Barbosa <hanielbbarbosa@gmail.com>
Mon, 16 May 2022 22:05:10 +0000 (19:05 -0300)
committerGitHub <noreply@github.com>
Mon, 16 May 2022 22:05:10 +0000 (22:05 +0000)
commitc5189f3419ed0b45b3a3c298dabc506755e86408
treea0661c0cd96043ad487ad58e2cf2ca9b774537df
parente39bf3a391cdd92412bb109419ce5ca66fd3a0f0
[proofs] Generalize handling of constants merged in equality engine (#8781)

Previously the reconstruction of EUF proofs was not considering a corner case from the equality engine where it infers that two constants are disequal from other equalities, but these other equalities all become of the form x = x at the time we are explaining this disquality. In this case the constant disequality is justified with MERGED_THROUGH_CONSTANTS rather than MERGED_THROUGH_TRANS as other disequalities.
src/theory/uf/eq_proof.cpp
src/theory/uf/equality_engine.cpp
test/regress/cli/CMakeLists.txt
test/regress/cli/regress1/proofs/eq-engine-corner-case-constants-disequal.smt2 [new file with mode: 0644]