const SNo_rec2 : (set set (set set set) set) set set set const SNoCut : set set set const binunion : set set set const Repl : set (set set) set const SNoL : set set const SNoR : set set term add_SNo = SNo_rec2 \x:set.\y:set.\g:set set set.SNoCut (binunion (Repl (SNoL x) \z:set.g z y) (Repl (SNoL y) (g x))) (binunion (Repl (SNoR x) \z:set.g z y) (Repl (SNoR y) (g x))) term + = add_SNo infix + 2281 2280 const In : set set prop term iIn = In infix iIn 2000 2000 const SNoS_ : set set const SNoLev : set set const SNo : set prop var x:set var y:set var g:set set set var h:set set set hyp SNo y hyp !z:set.z iIn SNoS_ (SNoLev y) -> g x z = h x z hyp Repl (SNoL x) (\z:set.g z y) = Repl (SNoL x) \z:set.h z y hyp Repl (SNoL y) (g x) = Repl (SNoL y) (h x) hyp Repl (SNoR x) (\z:set.g z y) = Repl (SNoR x) \z:set.h z y claim Repl (SNoR y) (g x) = Repl (SNoR y) (h x) -> SNoCut (binunion (Repl (SNoL x) \z:set.g z y) (Repl (SNoL y) (g x))) (binunion (Repl (SNoR x) \z:set.g z y) (Repl (SNoR y) (g x))) = SNoCut (binunion (Repl (SNoL x) \z:set.h z y) (Repl (SNoL y) (h x))) (binunion (Repl (SNoR x) \z:set.h z y) (Repl (SNoR y) (h x)))