From f65fd6a5150436a6defbe00acbcdca08d94e9cd6 Mon Sep 17 00:00:00 2001 From: Andres Noetzli Date: Fri, 24 May 2019 23:38:46 -0700 Subject: Avoid substituting Boolean term variables Fixes #3020. Boolean terms that appear in other terms, e.g. a Boolean array index, are replaced by `BOOLEAN_TERM_VARIABLE`s to make sure that they are handled properly in theory combination. When doing this replacement, an equality of the form `(= b1 b2)) +(assert (not (and b2 b3))) +(assert (=> b3 b1)) +(assert (= b4 (select B b2))) +(assert (xor b4 b2)) +(check-sat) -- cgit v1.2.3