const SNo : set prop const SNoLt : set set prop term < = SNoLt infix < 2020 2020 const add_SNo : set set set term + = add_SNo infix + 2281 2280 const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 axiom mul_SNo_Lt: !x:set.!y:set.!z:set.!w:set.SNo x -> SNo y -> SNo z -> SNo w -> z < x -> w < y -> (z * y + x * w) < x * y + z * w const SNoLe : set set prop term <= = SNoLe infix <= 2020 2020 axiom SNoLtLe: !x:set.!y:set.x < y -> x <= y axiom SNo_mul_SNo: !x:set.!y:set.SNo x -> SNo y -> SNo (x * y) axiom SNoLe_ref: !x:set.x <= x axiom add_SNo_com: !x:set.!y:set.SNo x -> SNo y -> x + y = y + x axiom SNoLeE: !x:set.!y:set.SNo x -> SNo y -> x <= y -> x < y | x = y claim !x:set.!y:set.!z:set.!w:set.SNo x -> SNo y -> SNo z -> SNo w -> z <= x -> w <= y -> (z * y + x * w) <= x * y + z * w