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 SNo : set prop const SNoCut : set set set const SNoL : set set const SNoR : set set axiom SNo_eta: !x:set.SNo x -> x = SNoCut (SNoL x) (SNoR x) const binunion : set set set const Repl : set (set set) set const Empty : set const add_SNo : set set set term + = add_SNo infix + 2281 2280 const SNoS_ : set set const SNoLev : set set var x:set hyp SNo x hyp !y:set.y iIn SNoS_ (SNoLev x) -> Empty + y = y hyp binunion (Repl (SNoL Empty) \y:set.y + x) (Repl (SNoL x) (add_SNo Empty)) = SNoL x claim binunion (Repl (SNoR Empty) \y:set.y + x) (Repl (SNoR x) (add_SNo Empty)) = SNoR x -> SNoCut (binunion (Repl (SNoL Empty) \y:set.y + x) (Repl (SNoL x) (add_SNo Empty))) (binunion (Repl (SNoR Empty) \y:set.y + x) (Repl (SNoR x) (add_SNo Empty))) = x