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 ordsucc : set set const Empty : set axiom SNo_1: SNo (ordsucc Empty) const omega : set const nat_p : set prop axiom omega_nat_p: !x:set.x iIn omega -> nat_p x const ordinal : set prop axiom nat_p_ordinal: !x:set.nat_p x -> ordinal x axiom omega_ordsucc: !x:set.x iIn omega -> ordsucc x iIn omega const int : set axiom Subq_omega_int: Subq omega int const add_SNo : set set set term + = add_SNo infix + 2281 2280 axiom ordinal_ordsucc_SNo_eq: !x:set.ordinal x -> ordsucc x = ordsucc Empty + x axiom add_SNo_com_3_0_1: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x + y + z = y + x + z lemma !x:set.!y:set.- x + y iIn int -> (!z:set.z iIn omega -> - x + y = z -> ordsucc Empty + - x + y iIn int) -> ordsucc Empty + - x + y iIn int var x:set var y:set hyp SNo x hyp - x + y iIn int hyp ordinal y claim SNo y -> - x + ordsucc y iIn int