const In : set set prop term iIn = In infix iIn 2000 2000 term nIn = \x:set.\y:set.~ x iIn y const If_i : prop set set set const Repl : set (set set) set const Eps_i : (set prop) set const Empty : set term Sep = \x:set.\p:set prop.If_i (?y:set.y iIn x & p y) (Repl x \y:set.If_i (p y) y (Eps_i \z:set.z iIn x & p z)) Empty axiom EmptyE: !x:set.nIn x Empty axiom FalseE: ~ False var x:set var p:set prop var y:set hyp ~ ?z:set.z iIn x & p z claim If_i (?z:set.z iIn x & p z) (Repl x \z:set.If_i (p z) z (Eps_i \w:set.w iIn x & p w)) Empty = Empty -> y iIn If_i (?z:set.z iIn x & p z) (Repl x \z:set.If_i (p z) z (Eps_i \w:set.w iIn x & p w)) Empty -> y iIn x & p y