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 TransSet = \x:set.!y:set.y iIn x -> Subq y x term ordinal = \x:set.TransSet x & !y:set.y iIn x -> TransSet y term nIn = \x:set.\y:set.~ x iIn y term PNoEq_ = \x:set.\p:set prop.\q:set prop.!y:set.y iIn x -> (p y <-> q y) term SNoEq_ = \x:set.\y:set.\z:set.PNoEq_ x (\w:set.w iIn y) \w:set.w iIn z const SNo : set prop const SNoLev : set set const SNoLt : set set prop term < = SNoLt infix < 2020 2020 axiom ordinal_SNoLev_max: !x:set.ordinal x -> !y:set.SNo y -> SNoLev y iIn x -> y < x const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 axiom SNoLtLe: !x:set.!y:set.x < y -> x <= y axiom ordinal_SNo: !x:set.ordinal x -> SNo x axiom dneg: !P:prop.~ ~ P -> P axiom ordinal_ind: !p:set prop.(!x:set.ordinal x -> (!y:set.y iIn x -> p y) -> p x) -> !x:set.ordinal x -> p x const ordsucc : set set axiom ordsuccE: !x:set.!y:set.y iIn ordsucc x -> y iIn x | y = x lemma !x:set.!y:set.ordinal x -> TransSet x -> SNo y -> SNo x -> SNoLev x = x -> SNoLev y = x -> ~ y <= x -> ~ !z:set.ordinal z -> z iIn x -> z iIn y lemma !x:set.!y:set.!z:set.ordinal x -> TransSet x -> SNo y -> SNo x -> SNoLev y = x -> ordinal z -> (!w:set.w iIn z -> w iIn x -> w iIn y) -> z iIn x -> ~ z iIn y -> SNo z -> y < x var x:set var y:set hyp ordinal x hyp TransSet x hyp SNo y hyp SNoLev y iIn ordsucc x hyp SNo x claim SNoLev x = x -> y <= x