const SNo : set prop const add_SNo : set set set term + = add_SNo infix + 2281 2280 const minus_SNo : set set term - = minus_SNo const Empty : set axiom add_SNo_minus_SNo_rinv: !x:set.SNo x -> x + - x = Empty axiom add_SNo_0R: !x:set.SNo x -> x + Empty = x axiom add_SNo_assoc: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x + y + z = (x + y) + z axiom add_SNo_com: !x:set.!y:set.SNo x -> SNo y -> x + y = y + x lemma !x:set.!y:set.SNo x -> SNo y -> SNo - x -> SNo - y -> SNo (x + y) -> (x + y) + - (x + y) = (x + y) + - x + - y -> - (x + y) = - x + - y var x:set var y:set hyp SNo x hyp SNo y hyp SNo - x hyp SNo - y claim SNo (x + y) -> - (x + y) = - x + - y