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 const PNoEq_ : set (set prop) (set prop) prop term PNoLt_ = \x:set.\p:set prop.\q:set prop.?y:set.y iIn x & (PNoEq_ y p q & ~ p y & q y) const PNoLe : set (set prop) set (set prop) prop term PNo_upc = \P:set (set prop) prop.\x:set.\p:set prop.?y:set.ordinal y & ?q:set prop.P y q & PNoLe y q x p const PNoLt : set (set prop) set (set prop) prop term PNo_rel_strict_lowerbd = \P:set (set prop) prop.\x:set.\p:set prop.!y:set.y iIn x -> !q:set prop.PNo_upc P y q -> PNoLt x p y q term PNo_strict_lowerbd = \P:set (set prop) prop.\x:set.\p:set prop.!y:set.ordinal y -> !q:set prop.P y q -> PNoLt x p y q const binintersect : set set set axiom binintersect_Subq_eq_1: !x:set.!y:set.Subq x y -> binintersect x y = x axiom PNoLtI1: !x:set.!y:set.!p:set prop.!q:set prop.PNoLt_ (binintersect x y) p q -> PNoLt x p y q axiom PNoLt_tra: !x:set.!y:set.!z:set.ordinal x -> ordinal y -> ordinal z -> !p:set prop.!q:set prop.!p2:set prop.PNoLt x p y q -> PNoLt y q z p2 -> PNoLt x p z p2 axiom PNoLt_irref: !x:set.!p:set prop.~ PNoLt x p x p axiom PNoLtI2: !x:set.!y:set.!p:set prop.!q:set prop.x iIn y -> PNoEq_ x p q -> q x -> PNoLt x p y q axiom In_no2cycle: !x:set.!y:set.x iIn y -> ~ y iIn x axiom FalseE: ~ False axiom PNoLtE: !x:set.!y:set.!p:set prop.!q:set prop.PNoLt x p y q -> !P:prop.(PNoLt_ (binintersect x y) p q -> P) -> (x iIn y -> PNoEq_ x p q -> q x -> P) -> (y iIn x -> PNoEq_ y p q -> ~ p y -> P) -> P axiom In_irref: !x:set.nIn x x axiom PNoLt_trichotomy_or: !x:set.!y:set.!p:set prop.!q:set prop.ordinal x -> ordinal y -> PNoLt x p y q | x = y & PNoEq_ x p q | PNoLt y q x p var x:set var y:set var p:set prop var z:set var q:set prop hyp ordinal x hyp z iIn y hyp TransSet x hyp ordinal y hyp ordinal z hyp Subq z y hyp PNoLt x p z q hyp z iIn x claim Subq z x -> PNoLt y p z q