const bij : set set (set set) prop term equip = \x:set.\y:set.?f:set set.bij x y f const In : set set prop term iIn = In infix iIn 2000 2000 term nIn = \x:set.\y:set.~ x iIn y term inj = \x:set.\y:set.\f:set set.(!z:set.z iIn x -> f z iIn y) & !z:set.z iIn x -> !w:set.w iIn x -> f z = f w -> z = w const Subq : set set prop const setminus : set set set axiom setminus_antimonotone: !x:set.!y:set.!z:set.Subq y z -> Subq (setminus x z) (setminus x y) const Repl : set (set set) set axiom image_monotone: !f:set set.!x:set.!y:set.Subq x y -> Subq (Repl x f) (Repl y f) const Power : set set lemma !x:set.!y:set.!f:set set.!f2:set set.(!z:set.z iIn x -> f z iIn y) -> (!z:set.z iIn x -> !w:set.w iIn x -> f z = f w -> z = w) -> (!z:set.z iIn y -> f2 z iIn x) -> (!z:set.z iIn y -> !w:set.w iIn y -> f2 z = f2 w -> z = w) -> (!z:set.z iIn Power x -> Repl (setminus y (Repl (setminus x z) f)) f2 iIn Power x) -> (!z:set.z iIn Power x -> !w:set.w iIn Power x -> Subq z w -> Subq (Repl (setminus y (Repl (setminus x z) f)) f2) (Repl (setminus y (Repl (setminus x w) f)) f2)) -> ?f3:set set.bij x y f3 var x:set var y:set var f:set set var f2:set set hyp !z:set.z iIn x -> f z iIn y hyp !z:set.z iIn x -> !w:set.w iIn x -> f z = f w -> z = w hyp !z:set.z iIn y -> f2 z iIn x hyp !z:set.z iIn y -> !w:set.w iIn y -> f2 z = f2 w -> z = w claim (!z:set.z iIn Power x -> Repl (setminus y (Repl (setminus x z) f)) f2 iIn Power x) -> equip x y