const binunion : set set set const Repl : set (set set) set const SetAdjoin : set set set const Sing : set set const ordsucc : set set const Empty : set term SNo_pair = \x:set.\y:set.binunion x (Repl y \z:set.SetAdjoin z (Sing (ordsucc (ordsucc Empty)))) 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 nIn = \x:set.\y:set.~ x iIn y axiom ReplI: !x:set.!f:set set.!y:set.y iIn x -> f y iIn Repl x f axiom binunionI2: !x:set.!y:set.!z:set.z iIn y -> z iIn binunion x y const SNo : set prop lemma !x:set.!y:set.!z:set.!w:set.!u:set.SNo y -> SNo z -> SNo w -> SNo_pair x y = SNo_pair z w -> u iIn y -> SetAdjoin u (Sing (ordsucc (ordsucc Empty))) iIn SNo_pair z w -> u iIn w claim !x:set.!y:set.!z:set.!w:set.SNo y -> SNo z -> SNo w -> SNo_pair x y = SNo_pair z w -> !u:set.u iIn y -> u iIn w