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.!z:set.(!w:set.w iIn Power x -> !u:set.u iIn Power x -> Subq w u -> Subq (f w) (f u)) -> Sep x (\w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) iIn Power x -> y iIn f (Sep x \w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) -> z iIn Power x -> Subq (f z) z -> Subq (Sep x \w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) z -> Subq (f (Sep x \w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u)) (f z) -> y iIn z var x:set var f:set set var y:set var z:set hyp !w:set.w iIn Power x -> !u:set.u iIn Power x -> Subq w u -> Subq (f w) (f u) hyp Sep x (\w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) iIn Power x hyp !w:set.w iIn Power x -> Subq (f w) w -> Subq (Sep x \u:set.!v:set.v iIn Power x -> Subq (f v) v -> u iIn v) w hyp y iIn f (Sep x \w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) hyp z iIn Power x hyp Subq (f z) z claim Subq (Sep x \w:set.!u:set.u iIn Power x -> Subq (f u) u -> w iIn u) z -> y iIn z