const In : set set prop term iIn = In infix iIn 2000 2000 term nIn = \x:set.\y:set.~ x iIn y const SNo : set prop const SNoLt : set set prop term < = SNoLt infix < 2020 2020 term SNoCutP = \x:set.\y:set.(!z:set.z iIn x -> SNo z) & (!z:set.z iIn y -> SNo z) & !z:set.z iIn x -> !w:set.w iIn y -> z < w const ordinal : set prop axiom ordinal_SNo: !x:set.ordinal x -> SNo x const add_SNo : set set set term + = add_SNo infix + 2281 2280 axiom SNo_add_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 Repl : set (set set) set axiom ReplE_impred: !x:set.!f:set set.!y:set.y iIn Repl x f -> !P:prop.(!z:set.z iIn x -> y = f z -> P) -> P const binunion : set set set axiom binunionE: !x:set.!y:set.!z:set.z iIn binunion x y -> z iIn x | z iIn y const Empty : set axiom EmptyE: !x:set.nIn x Empty axiom FalseE: ~ False claim !x:set.ordinal x -> !y:set.ordinal y -> (!z:set.z iIn binunion (Repl (SNoS_ x) \w:set.w + y) (Repl (SNoS_ y) (add_SNo x)) -> SNo z) & (!z:set.z iIn Empty -> SNo z) & !z:set.z iIn binunion (Repl (SNoS_ x) \w:set.w + y) (Repl (SNoS_ y) (add_SNo x)) -> !w:set.w iIn Empty -> z < w