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 axiom iffI: !P:prop.!Q:prop.(P -> Q) -> (Q -> P) -> (P <-> Q) const SNo : set prop const SNoLev : set set axiom SNo_eq: !x:set.!y:set.SNo x -> SNo y -> SNoLev x = SNoLev y -> SNoEq_ (SNoLev x) x y -> x = y const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 lemma !x:set.!y:set.SNo y -> SNo x -> SNoLev x = x -> SNoLev y = x -> ~ y <= x -> Subq x y -> y != x var x:set var y:set hyp ordinal x hyp SNo y hyp SNo x hyp SNoLev x = x hyp SNoLev y = x hyp ~ y <= x hyp !z:set.ordinal z -> z iIn x -> z iIn y claim ~ Subq x y