module ElimExCompose (prop) where {-@ prop :: x:Nat -> {v:Int | v = x + 5} @-} prop :: Int -> Int prop = incr . incr . incr . incr . incr {-@ incr :: dog:Int -> {v:Int | v == dog + 1} @-} incr :: Int -> Int incr cat = cat + 1