const In_rec_i : (set (set set) set) set set const If_i : prop set set set const In : set set prop term iIn = In infix iIn 2000 2000 const Union : set set term nat_primrec = \x:set.\g:set set set.In_rec_i \y:set.\f:set set.If_i (Union y iIn y) (g (Union y) (f (Union y))) x axiom nat_primrec_r: !x:set.!g:set set set.!y:set.!f:set set.!f2:set set.(!z:set.z iIn y -> f z = f2 z) -> If_i (Union y iIn y) (g (Union y) (f (Union y))) x = If_i (Union y iIn y) (g (Union y) (f2 (Union y))) x const ordsucc : set set axiom ordsuccI2: !x:set.x iIn ordsucc x axiom If_i_1: !P:prop.!x:set.!y:set.P -> If_i P x y = x const nat_p : set prop axiom Union_ordsucc_eq: !x:set.nat_p x -> Union (ordsucc x) = x axiom In_rec_i_eq: !P:set (set set) set.(!x:set.!f:set set.!f2:set set.(!y:set.y iIn x -> f y = f2 y) -> P x f = P x f2) -> !x:set.In_rec_i P x = P x (In_rec_i P) claim !x:set.!g:set set set.!y:set.nat_p y -> nat_primrec x g (ordsucc y) = g y (nat_primrec x g y)