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 const Power : set set const Sep : set (set prop) set lemma !x:set.!f:set set.(!y:set.y iIn Power x -> f y iIn Power x) -> (!y:set.y iIn Power x -> !z:set.z iIn Power x -> Subq y z -> Subq (f y) (f z)) -> Sep x (\y:set.!z:set.z iIn Power x -> Subq (f z) z -> y iIn z) iIn Power x -> f (Sep x \y:set.!z:set.z iIn Power x -> Subq (f z) z -> y iIn z) iIn Power x -> ?y:set.y iIn Power x & f y = y var x:set var f:set set hyp !y:set.y iIn Power x -> f y iIn Power x hyp !y:set.y iIn Power x -> !z:set.z iIn Power x -> Subq y z -> Subq (f y) (f z) claim Sep x (\y:set.!z:set.z iIn Power x -> Subq (f z) z -> y iIn z) iIn Power x -> ?y:set.y iIn Power x & f y = y