Closed LeventErkok closed 1 year ago
Note that this isn't really about Exists
.. But it's really about fromLeft
, which introduces such variables. We'll have similar problems whenever we create an internal variable.
For instance, with tuples we don't have any such problem:
Prelude Data.SBV Data.SBV.Tuple> sat $ skolemize $ \(Exists @"x" x) -> (x :: STuple Bool Integer)^._1
Satisfiable. Model:
x = (True,0) :: (Bool, Integer)
This is because
fromLeft
/fromRight
create an extra variable. (Need to dig back into why we do this, it escapes me now).