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 omega : set const ordsucc : set set axiom omega_ordsucc: !x:set.x iIn omega -> ordsucc x iIn omega const eps_ : set set const SNoS_ : set set axiom SNo_eps_SNoS_omega: !x:set.x iIn omega -> eps_ x iIn SNoS_ omega axiom ordsuccI2: !x:set.x iIn ordsucc x const SNoLt : set set prop term < = SNoLt infix < 2020 2020 axiom SNo_eps_decr: !x:set.x iIn omega -> !y:set.y iIn x -> eps_ x < eps_ y const SNo : set prop const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 axiom SNoLtLe_tra: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x < y -> y <= z -> x < z const Empty : set axiom SNo_0: SNo Empty axiom SNoLeLt_tra: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x <= y -> y < z -> x < z const add_SNo : set set set term + = add_SNo infix + 2281 2280 lemma !x:set.!y:set.!z:set.!w:set.SNo x -> y iIn omega -> x < z + eps_ y -> SNo z -> z <= Empty -> SNo (eps_ (ordsucc w)) -> Empty < eps_ (ordsucc w) -> z < eps_ (ordsucc w) -> x < eps_ (ordsucc w) + eps_ y var x:set var y:set var P:prop var z:set var w:set hyp SNo x hyp y iIn omega hyp !u:set.u iIn SNoS_ omega -> Empty < u -> u < x -> x < u + eps_ y -> P hyp x < z + eps_ y hyp SNo z hyp z <= Empty hyp ~ P hyp w iIn omega hyp eps_ w <= x hyp SNo (eps_ w) hyp SNo (eps_ (ordsucc w)) claim Empty < eps_ (ordsucc w) -> x < eps_ w