Section naturals_inductionA1.
Variable A : Ens.
Hypothesis h : IN A S.
Let N := Next A.
Let step1_1 : P N := step4 A h.
Let step1_2 : IN N Naturals := Nexts_in_Naturals A (step2 A h).
Definition naturals_inductionA1_Out : IN N S := step5 N step1_2 step1_1.
End naturals_inductionA1.
Let step6 : forall (A : Ens) (h : IN A S), IN (Next A) S :=
naturals_inductionA1_Out.
Let step7 : Contains_NN S := Build_Contains_NN S step1 step6.
Variable B : Ens.
Hypothesis p : IN B Naturals.
Let step8 : Element_of_NN B := Naturals_pr2 B p.
Let step9 : IN B S := step8 S step7.
Definition naturals_inductionA_Out : P B := step3 B step9.
End naturals_inductionA_proof.
Definition naturals_induction_nexts (P : Ens -> Prop) :=
forall (A : Ens) (h : IN A Naturals) (k : P A), P (Next A).

Theorem naturals_inductionA :
forall (P : Ens -> Prop) (IH_zero : P Zero)
(IH_nexts : naturals_induction_nexts P) (B : Ens)
(p : IN B Naturals), P B.