const SNo : set prop const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 const minus_SNo : set set term - = minus_SNo axiom mul_SNo_minus_distrR: !x:set.!y:set.SNo x -> SNo y -> x * - y = - x * y axiom mul_SNo_minus_distrL: !x:set.!y:set.SNo x -> SNo y -> (- x) * y = - x * y axiom mul_SNo_minus_minus: !x:set.!y:set.SNo x -> SNo y -> (- x) * - y = x * y const add_SNo : set set set term + = add_SNo infix + 2281 2280 axiom SNo_foil: !x:set.!y:set.!z:set.!w:set.SNo x -> SNo y -> SNo z -> SNo w -> (x + y) * (z + w) = x * z + x * w + y * z + y * w var x:set var y:set var z:set var w:set hyp SNo x hyp SNo y hyp SNo z hyp SNo w hyp SNo - y claim SNo - w -> (x + - y) * (z + - w) = x * z + - x * w + - y * z + y * w