const nat_p : set prop const ordsucc : set set const Empty : set axiom nat_1: nat_p (ordsucc Empty) const SNo : set prop const exp_SNo_nat : set set set axiom exp_SNo_nat_0: !x:set.SNo x -> exp_SNo_nat x Empty = ordsucc Empty const In : set set prop term iIn = In infix iIn 2000 2000 const omega : set axiom nat_p_omega: !x:set.nat_p x -> x iIn omega const mul_nat : set set set axiom mul_nat_p: !x:set.nat_p x -> !y:set.nat_p y -> nat_p (mul_nat x y) const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 axiom mul_nat_mul_SNo: !x:set.x iIn omega -> !y:set.y iIn omega -> mul_nat x y = x * y axiom exp_SNo_nat_S: !x:set.SNo x -> !y:set.nat_p y -> exp_SNo_nat x (ordsucc y) = x * exp_SNo_nat x y axiom nat_ind: !p:set prop.p Empty -> (!x:set.nat_p x -> p x -> p (ordsucc x)) -> !x:set.nat_p x -> p x var x:set hyp nat_p x claim SNo x -> !y:set.nat_p y -> nat_p (exp_SNo_nat x y)