const SNo : set prop const add_SNo : set set set term + = add_SNo infix + 2281 2280 axiom SNo_add_SNo: !x:set.!y:set.SNo x -> SNo y -> SNo (x + y) axiom add_SNo_assoc: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x + y + z = (x + y) + z const SNoLt : set set prop term < = SNoLt infix < 2020 2020 const minus_SNo : set set term - = minus_SNo axiom add_SNo_minus_Lt1b: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> x < z + y -> (x + - y) < z axiom add_SNo_com: !x:set.!y:set.SNo x -> SNo y -> x + y = y + x axiom add_SNo_minus_Lt2b: !x:set.!y:set.!z:set.SNo x -> SNo y -> SNo z -> (z + y) < x -> z < x + - y var x:set var y:set var z:set var w:set var u:set var v:set hyp SNo x hyp SNo y hyp SNo z hyp SNo w hyp SNo u hyp SNo v hyp (x + y + v) < w + u + z hyp SNo - z hyp SNo - v hyp SNo (x + y) claim SNo (w + u) -> (x + y + - z) < w + u + - v