const binunion : set set set const Empty : set axiom binunion_idl: !x:set.binunion Empty x = x const Repl : set (set set) set axiom Repl_Empty: !f:set set.Repl Empty f = Empty const ordinal : set prop const SNoR : set set axiom ordinal_SNoR: !x:set.ordinal x -> SNoR x = Empty const SNoL : set set const SNoS_ : set set axiom ordinal_SNoL: !x:set.ordinal x -> SNoL x = SNoS_ x const SNo : set prop const add_SNo : set set set term + = add_SNo infix + 2281 2280 const SNoCut : set set set axiom add_SNo_eq: !x:set.SNo x -> !y:set.SNo y -> x + y = SNoCut (binunion (Repl (SNoL x) \z:set.z + y) (Repl (SNoL y) (add_SNo x))) (binunion (Repl (SNoR x) \z:set.z + y) (Repl (SNoR y) (add_SNo x))) var x:set var y:set hyp ordinal x hyp ordinal y hyp SNo x claim SNo y -> x + y = SNoCut (binunion (Repl (SNoS_ x) \z:set.z + y) (Repl (SNoS_ y) (add_SNo x))) Empty