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 ap : set set set axiom ap_Pi: !x:set.!f:set set.!y:set.!z:set.y iIn Pi x f -> z iIn x -> ap y z iIn f z const SNoS_ : set set const SNoLev : set set const SNo : set prop 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 abs_SNo : set set const add_SNo : set set set term + = add_SNo infix + 2281 2280 const minus_SNo : set set term - = minus_SNo const eps_ : set set axiom SNo_prereal_decr_upper_approx: !x:set.SNo x -> (!y:set.y iIn SNoS_ omega -> (!z:set.z iIn omega -> abs_SNo (y + - x) < eps_ z) -> y = x) -> (!y:set.y iIn omega -> ?z:set.z iIn SNoS_ omega & (z < x & x < z + eps_ y)) -> ?y:set.y iIn setexp (SNoS_ omega) omega & !z:set.z iIn omega -> (ap y z + - eps_ z) < x & x < ap y z & !w:set.w iIn z -> ap y z < ap y w axiom SNo_prereal_incr_lower_approx: !x:set.SNo x -> (!y:set.y iIn SNoS_ omega -> (!z:set.z iIn omega -> abs_SNo (y + - x) < eps_ z) -> y = x) -> (!y:set.y iIn omega -> ?z:set.z iIn SNoS_ omega & (z < x & x < z + eps_ y)) -> ?y:set.y iIn setexp (SNoS_ omega) omega & !z:set.z iIn omega -> ap y z < x & x < ap y z + eps_ z & !w:set.w iIn z -> ap y w < ap y z const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 const real : set const SNoL : set set const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 const SNoR : set set const SNoCutP : set set prop const SNoCut : set set set lemma !x:set.!y:set.!z:set.!w:set.!u:set.!v:set.~ x * y iIn real -> SNo x -> SNo y -> SNo (x * y) -> SNo - x * y -> (!x2:set.x2 iIn SNoL x -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x + - x2 -> P) -> P) -> (!x2:set.x2 iIn SNoR x -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x2 + - x -> P) -> P) -> (!x2:set.x2 iIn SNoL y -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= y + - x2 -> P) -> P) -> (!x2:set.x2 iIn SNoR y -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x2 + - y -> P) -> P) -> SNoCutP z w -> (!x2:set.x2 iIn z -> !P:prop.(!y2:set.y2 iIn SNoL x -> !z2:set.z2 iIn SNoL y -> x2 = y2 * y + x * z2 + - y2 * z2 -> P) -> (!y2:set.y2 iIn SNoR x -> !z2:set.z2 iIn SNoR y -> x2 = y2 * y + x * z2 + - y2 * z2 -> P) -> P) -> (!x2:set.x2 iIn w -> !P:prop.(!y2:set.y2 iIn SNoL x -> !z2:set.z2 iIn SNoR y -> x2 = y2 * y + x * z2 + - y2 * z2 -> P) -> (!y2:set.y2 iIn SNoR x -> !z2:set.z2 iIn SNoL y -> x2 = y2 * y + x * z2 + - y2 * z2 -> P) -> P) -> x * y = SNoCut z w -> u iIn setexp (SNoS_ omega) omega -> (!x2:set.x2 iIn omega -> ap u x2 < x * y & x * y < ap u x2 + eps_ x2 & !y2:set.y2 iIn x2 -> ap u y2 < ap u x2) -> v iIn setexp (SNoS_ omega) omega -> (!x2:set.x2 iIn omega -> (ap v x2 + - eps_ x2) < x * y & x * y < ap v x2 & !y2:set.y2 iIn x2 -> ap v x2 < ap v y2) -> ~ !x2:set.x2 iIn omega -> SNo (ap u x2) const ordsucc : set set const Empty : set var x:set var y:set var z:set var w:set var u:set hyp Empty < x hyp Empty < y hyp ~ x * y iIn real hyp SNo x hyp SNo y hyp !v:set.v iIn omega -> !P:prop.(!x2:set.x2 iIn SNoS_ omega -> Empty < x2 -> x2 < x -> x < x2 + eps_ v -> P) -> P hyp !v:set.v iIn omega -> !P:prop.(!x2:set.x2 iIn SNoS_ omega -> Empty < x2 -> x2 < y -> y < x2 + eps_ v -> P) -> P hyp SNo (x * y) hyp SNo - x * y hyp !v:set.v iIn SNoL x -> !P:prop.(!x2:set.x2 iIn omega -> eps_ x2 <= x + - v -> P) -> P hyp !v:set.v iIn SNoR x -> !P:prop.(!x2:set.x2 iIn omega -> eps_ x2 <= v + - x -> P) -> P hyp !v:set.v iIn SNoL y -> !P:prop.(!x2:set.x2 iIn omega -> eps_ x2 <= y + - v -> P) -> P hyp !v:set.v iIn SNoR y -> !P:prop.(!x2:set.x2 iIn omega -> eps_ x2 <= v + - y -> P) -> P hyp SNoCutP z w hyp !v:set.v iIn z -> !P:prop.(!x2:set.x2 iIn SNoL x -> !y2:set.y2 iIn SNoL y -> v = x2 * y + x * y2 + - x2 * y2 -> P) -> (!x2:set.x2 iIn SNoR x -> !y2:set.y2 iIn SNoR y -> v = x2 * y + x * y2 + - x2 * y2 -> P) -> P hyp !v:set.v iIn w -> !P:prop.(!x2:set.x2 iIn SNoL x -> !y2:set.y2 iIn SNoR y -> v = x2 * y + x * y2 + - x2 * y2 -> P) -> (!x2:set.x2 iIn SNoR x -> !y2:set.y2 iIn SNoL y -> v = x2 * y + x * y2 + - x2 * y2 -> P) -> P hyp x * y = SNoCut z w hyp !v:set.v iIn SNoS_ omega -> (!x2:set.x2 iIn omega -> abs_SNo (v + - x * y) < eps_ x2) -> v = x * y hyp u iIn omega hyp eps_ u * x < ordsucc Empty hyp eps_ u * y < ordsucc Empty claim ~ !v:set.v iIn omega -> ?x2:set.x2 iIn SNoS_ omega & (x2 < x * y & x * y < x2 + eps_ v)