const In : set set prop term iIn = In infix iIn 2000 2000 term Subq = \x:set.\y:set.!z:set.z iIn x -> z iIn y const SNo : set prop const minus_SNo : set set term - = minus_SNo axiom SNo_minus_SNo: !x:set.SNo x -> SNo - x const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 axiom SNo_mul_SNo: !x:set.!y:set.SNo x -> SNo y -> SNo (x * y) const omega : set axiom mul_SNo_In_omega: !x:set.x iIn omega -> !y:set.y iIn omega -> x * y iIn omega const int : set axiom Subq_omega_int: Subq omega int axiom minus_SNo_invol: !x:set.SNo x -> - - x = x axiom mul_SNo_minus_distrL: !x:set.!y:set.SNo x -> SNo y -> (- x) * y = - x * y axiom mul_SNo_com: !x:set.!y:set.SNo x -> SNo y -> x * y = y * x const ordinal : set prop var x:set var y:set hyp x iIn omega hyp SNo x hyp y iIn omega hyp ordinal y claim SNo y -> (- x) * - y iIn int