const In : set set prop term iIn = In infix iIn 2000 2000 term nIn = \x:set.\y:set.~ x iIn y const Pi : set (set set) set term setexp = \x:set.\y:set.Pi y \z:set.x const nat_p : set prop const nat_primrec : set (set set set) set set const ordsucc : set set axiom nat_primrec_S: !x:set.!g:set set set.!y:set.nat_p y -> nat_primrec x g (ordsucc y) = g y (nat_primrec x g y) const SNo : set prop const SNoS_ : set set const omega : set 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 const Eps_i : (set prop) set const Empty : set const ap : set set set lemma !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)) -> nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty iIn SNoS_ omega & nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty < x & x < nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty + eps_ Empty -> (!y:set.nat_p y -> nat_primrec (Eps_i \z:set.z iIn SNoS_ omega & z < x & x < z + eps_ Empty) (\z:set.\w:set.Eps_i \u:set.u iIn SNoS_ omega & u < x & x < u + eps_ (ordsucc z) & w < u) (ordsucc y) = Eps_i \z:set.z iIn SNoS_ omega & z < x & x < z + eps_ (ordsucc y) & nat_primrec (Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ Empty) (\w:set.\u:set.Eps_i \v:set.v iIn SNoS_ omega & v < x & x < v + eps_ (ordsucc w) & u < v) y < z) -> ?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 var x:set hyp SNo x hyp !y:set.y iIn SNoS_ omega -> (!z:set.z iIn omega -> abs_SNo (y + - x) < eps_ z) -> y = x hyp !y:set.y iIn omega -> ?z:set.z iIn SNoS_ omega & (z < x & x < z + eps_ y) hyp nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty = Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty claim nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty iIn SNoS_ omega & nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty < x & x < nat_primrec (Eps_i \y:set.y iIn SNoS_ omega & y < x & x < y + eps_ Empty) (\y:set.\z:set.Eps_i \w:set.w iIn SNoS_ omega & w < x & x < w + eps_ (ordsucc y) & z < w) Empty + eps_ Empty -> ?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