Closed alex-ozdemir closed 3 years ago
I don't think there's any semantic difference from an SMT perspective, because you have to consider all the constraints at once. I'd actually think the encoding would usually be worse because typically an ITE
would be rewritten into two equalities for each case. But I'm not an expert on this so I could definitely be missing something.
I don't think there's any semantic difference from an SMT perspective,
My thoughts as well. The only reason I can imagine would be some difference in the semantics of partial functions, but SMT tries to avoid those.... Perhaps this is another mystery to ask the Z3 devs about sometime.
Yeah. Not clear why they couldn't just use AND. Do you know of any difference in SMT semantics between
(ite a b 0)
and(and a b)
?