Do not normalize to representatives for variable equalities in conflict-based instant...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 15 Apr 2020 05:15:10 +0000 (00:15 -0500)
committerGitHub <noreply@github.com>
Wed, 15 Apr 2020 05:15:10 +0000 (00:15 -0500)
commitb18ebfd50bfcb3b2ec422daf5b2fd8d99ca6406a
tree74a5814264690ecd7079743766ed6a57ee68b2fb
parent0e994acb6fe6b6128d71a1f618fb6e5629118c67
Do not normalize to representatives for variable equalities in conflict-based instantiation (#4280)

Conflict-based instantiation would sometimes initialize a match x -> getRepresentative(t) when a quantified formula contained x = t. This leads to issues where getRepresentative(t) is an illegal term (say, in combination with CEGQI). This makes it so the representative is accessed when necessary instead of being set as part of the match.

Fixes #4275.
src/theory/quantifiers/quant_conflict_find.cpp
src/theory/quantifiers/quant_conflict_find.h
test/regress/CMakeLists.txt
test/regress/regress0/quantifiers/issue4275-qcf-cegqi-rep.smt2 [new file with mode: 0644]