import Data.SBV fruits :: SInteger -> SInteger -> SInteger -> SBool fruits a b c = equation &&& positive where x = sFromIntegral a :: SReal y = sFromIntegral b :: SReal z = sFromIntegral c :: SReal equation = x / (y + z) + y / (x + z) + z / (x + y) .== 4 positive = a .> 0 &&& b .> 0 &&& c .> 0 main :: IO () main = sat fruits >>= print