const Empty : set const ordsucc : set set term nat_p = \x:set.!p:set prop.p Empty -> (!y:set.p y -> p (ordsucc y)) -> p x lemma !p:set prop.!x:set.nat_p Empty & p Empty -> (!y:set.nat_p y & p y -> nat_p (ordsucc y) & p (ordsucc y)) -> nat_p x -> nat_p x & p x -> p x var p:set prop hyp !x:set.nat_p x -> p x -> p (ordsucc x) hyp nat_p Empty & p Empty claim (!x:set.nat_p x & p x -> nat_p (ordsucc x) & p (ordsucc x)) -> !x:set.nat_p x -> p x