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 omega : set const add_SNo : set set set term + = add_SNo infix + 2281 2280 axiom add_SNo_In_omega: !x:set.x iIn omega -> !y:set.y iIn omega -> x + y iIn omega const SNoLt : set set prop term < = SNoLt infix < 2020 2020 const Empty : set const SNo : set prop const SNoS_ : set set const eps_ : set set const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 const ordsucc : set set lemma !x:set.!y:set.!z:set.!w:set.Empty < x -> Empty < y -> SNo x -> SNo y -> (!u:set.u iIn omega -> !P:prop.(!v:set.v iIn SNoS_ omega -> Empty < v -> v < x -> x < v + eps_ u -> P) -> P) -> (!u:set.u iIn omega -> !P:prop.(!v:set.v iIn SNoS_ omega -> Empty < v -> v < y -> y < v + eps_ u -> P) -> P) -> 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 -> z + w + ordsucc (ordsucc Empty) iIn omega -> ?u:set.u iIn SNoS_ omega & (u < x * y & x * y < u + 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 claim w + ordsucc (ordsucc Empty) iIn omega -> ?u:set.u iIn SNoS_ omega & (u < x * y & x * y < u + eps_ w)