const In : set set prop term iIn = In infix iIn 2000 2000 const omega : set const SNo : set prop const eps_ : set set axiom SNo_eps_: !x:set.x iIn omega -> SNo (eps_ x) const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 axiom SNo_mul_SNo: !x:set.!y:set.SNo x -> SNo y -> SNo (x * y) const ordsucc : set set const Empty : set axiom SNo_1: SNo (ordsucc Empty) const SNoLt : set set prop term < = SNoLt infix < 2020 2020 axiom SNo_eps_pos: !x:set.x iIn omega -> Empty < eps_ x axiom pos_mul_SNo_Lt: !x:set.!y:set.!z:set.SNo x -> Empty < x -> SNo y -> SNo z -> y < z -> x * y < x * z axiom SNo_2: SNo (ordsucc (ordsucc Empty)) const nat_p : set prop axiom omega_nat_p: !x:set.x iIn omega -> nat_p x const exp_SNo_nat : set set set axiom SNo_exp_SNo_nat: !x:set.SNo x -> !y:set.nat_p y -> SNo (exp_SNo_nat x y) axiom FalseE: ~ False const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 axiom SNoLtLe_or: !x:set.!y:set.SNo x -> SNo y -> x < y | y <= x axiom SNoLt_tra: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x < y -> y < z -> x < z lemma !x:set.x iIn omega -> SNo x -> ordsucc Empty <= eps_ x * x -> ~ SNo (exp_SNo_nat (ordsucc (ordsucc Empty)) x) var x:set var y:set hyp SNo x hyp y iIn omega hyp x < y claim SNo y -> ?z:set.z iIn omega & eps_ z * x < ordsucc Empty