const In : set set prop term iIn = In infix iIn 2000 2000 term Subq = \x:set.\y:set.!z:set.z iIn x -> z iIn y const SNo : set prop const minus_SNo : set set term - = minus_SNo axiom SNo_minus_SNo: !x:set.SNo x -> SNo - x const omega : set const int : set axiom int_minus_SNo_omega: !x:set.x iIn omega -> - x iIn int const add_SNo : set set set term + = add_SNo infix + 2281 2280 const Empty : set axiom add_SNo_0R: !x:set.SNo x -> x + Empty = x const nat_p : set prop const ordinal : set prop axiom nat_p_ordinal: !x:set.nat_p x -> ordinal x const ordsucc : set set axiom nat_ind: !p:set prop.p Empty -> (!x:set.nat_p x -> p x -> p (ordsucc x)) -> !x:set.nat_p x -> p x lemma !x:set.!y:set.SNo x -> nat_p y -> - x + y iIn int -> ordinal y -> - x + ordsucc y iIn int var x:set hyp x iIn omega hyp ordinal x claim SNo x -> !y:set.nat_p y -> - x + y iIn int