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 term nIn = \x:set.\y:set.~ x iIn y term TransSet = \x:set.!y:set.y iIn x -> Subq y x const Pi : set (set set) set term setexp = \x:set.\y:set.Pi y \z:set.x const ordinal : set prop const omega : set axiom omega_ordinal: ordinal omega const SNo : set prop 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 SNoS_ : set set const SNoLev : set set const SNo_ : set set prop axiom SNoS_E2: !x:set.ordinal x -> !y:set.y iIn SNoS_ x -> !P:prop.(SNoLev y iIn x -> ordinal (SNoLev y) -> SNo y -> SNo_ (SNoLev y) y -> P) -> P const SNoLt : set set prop term < = SNoLt infix < 2020 2020 const Empty : set const eps_ : set set const ordsucc : set set const add_SNo : set set set term + = add_SNo infix + 2281 2280 lemma !x:set.!y:set.!z:set.!w:set.!u:set.!v:set.Empty < x -> Empty < y -> SNo x -> SNo y -> SNo (x * y) -> z iIn omega -> eps_ z * x < ordsucc Empty -> eps_ z * y < ordsucc Empty -> w iIn omega -> SNo (eps_ w) -> w + ordsucc Empty iIn omega -> w + ordsucc (ordsucc Empty) iIn omega -> SNo (eps_ (z + w + ordsucc (ordsucc Empty))) -> u iIn SNoS_ omega -> Empty < u -> u < x -> x < u + eps_ (z + w + ordsucc (ordsucc Empty)) -> SNo u -> v iIn SNoS_ omega -> Empty < v -> v < y -> y < v + eps_ (z + w + ordsucc (ordsucc Empty)) -> SNo v -> SNo (u * v) -> ?x2:set.x2 iIn SNoS_ omega & (x2 < x * y & x * y < x2 + eps_ w) var x:set var y:set var z:set var w:set hyp Empty < x hyp Empty < y hyp SNo x hyp SNo y hyp !u:set.u iIn omega -> !P:prop.(!v:set.v iIn SNoS_ omega -> Empty < v -> v < x -> x < v + eps_ u -> P) -> P hyp !u:set.u iIn omega -> !P:prop.(!v:set.v iIn SNoS_ omega -> Empty < v -> v < y -> y < v + eps_ u -> P) -> P hyp SNo (x * y) hyp z iIn omega hyp eps_ z * x < ordsucc Empty hyp eps_ z * y < ordsucc Empty hyp w iIn omega hyp SNo (eps_ w) hyp w + ordsucc Empty iIn omega hyp w + ordsucc (ordsucc Empty) iIn omega hyp z + w + ordsucc (ordsucc Empty) iIn omega claim SNo (eps_ (z + w + ordsucc (ordsucc Empty))) -> ?u:set.u iIn SNoS_ omega & (u < x * y & x * y < u + eps_ w)