{-@ LIQUID "--higherorder" @-} module Reductions where {-@ reduction :: forall
Bool -> Bool>. f:(a -> a) -> (x:a -> Bool
) -> y:a -> Bool
@-} reduction :: (a -> a) -> (a -> Bool) -> a -> Bool reduction f thm y = thm (f y)