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 SNo : set prop const SNoS_ : set set const omega : set const SNoLt : set set prop term < = SNoLt infix < 2020 2020 const ap : set set set const add_SNo : set set set term + = add_SNo infix + 2281 2280 const eps_ : set set const SNoCut : set set set const Repl : set (set set) set const real : set axiom SNo_approx_real: !x:set.SNo x -> !y:set.y iIn setexp (SNoS_ omega) omega -> !z:set.z iIn setexp (SNoS_ omega) omega -> (!w:set.w iIn omega -> ap y w < x) -> (!w:set.w iIn omega -> x < ap y w + eps_ w) -> (!w:set.w iIn omega -> !u:set.u iIn w -> ap y u < ap y w) -> (!w:set.w iIn omega -> x < ap z w) -> (!w:set.w iIn omega -> !u:set.u iIn w -> ap z w < ap z u) -> x = SNoCut (Repl omega (ap y)) (Repl omega (ap z)) -> x iIn real const minus_SNo : set set term - = minus_SNo const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 const SNoCutP : set set prop const SNoL : set set const SNoR : set set const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 var x:set var y:set var z:set var w:set var u:set var v:set hyp ~ x * y iIn real hyp SNo x hyp SNo y hyp SNo (x * y) hyp SNo - x * y hyp !x2:set.x2 iIn SNoL x -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x + - x2 -> P) -> P hyp !x2:set.x2 iIn SNoR x -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x2 + - x -> P) -> P hyp !x2:set.x2 iIn SNoL y -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= y + - x2 -> P) -> P hyp !x2:set.x2 iIn SNoR y -> !P:prop.(!y2:set.y2 iIn omega -> eps_ y2 <= x2 + - y -> P) -> P hyp SNoCutP z w hyp !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 hyp !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 hyp x * y = SNoCut z w hyp u iIn setexp (SNoS_ omega) omega hyp v iIn setexp (SNoS_ omega) omega hyp !x2:set.x2 iIn omega -> SNo (ap u x2) hyp !x2:set.x2 iIn omega -> SNo (ap v x2) hyp !x2:set.x2 iIn omega -> ap u x2 < x * y hyp !x2:set.x2 iIn omega -> x * y < ap v x2 hyp SNoCutP (Repl omega (ap u)) (Repl omega (ap v)) hyp SNo (SNoCut (Repl omega (ap u)) (Repl omega (ap v))) hyp !x2:set.x2 iIn omega -> ap u x2 < SNoCut (Repl omega (ap u)) (Repl omega (ap v)) hyp !x2:set.x2 iIn omega -> SNoCut (Repl omega (ap u)) (Repl omega (ap v)) < ap v x2 hyp !x2:set.x2 iIn omega -> x * y < ap u x2 + eps_ x2 hyp !x2:set.x2 iIn omega -> !y2:set.y2 iIn x2 -> ap u y2 < ap u x2 hyp !x2:set.x2 iIn omega -> (ap v x2 + - eps_ x2) < x * y hyp !x2:set.x2 iIn omega -> !y2:set.y2 iIn x2 -> ap v x2 < ap v y2 claim x * y != SNoCut (Repl omega (ap u)) (Repl omega (ap v))