Proof naturals_inductionA_Out.
(* prove some properties of naturals by induction *)
Definition in_then_strictsub (N : Ens) :=
forall X : Ens, IN X N -> StrictSUB X N.
Definition not_in_itself (X : Ens) := ~ IN X X.
Record naturals_main_ind_hyp (N : Ens) : Prop :=
{naturals_main_ind1 : in_then_strictsub N;
naturals_main_ind2 : not_in_itself N}.
(**** now we prove that if A is not in itself then A strictsub (Next A)            *******)
Section strictsub_next_proof.
Variable A : Ens.
Hypothesis h : not_in_itself A.
Let N := Next A.
Let step1 : SUB A N := anything_sub_next_of_itself A.
Section strictsub_next1.
Hypothesis k : EQ A N.
Let step2 : SUB N A := EQ_backwards A N k.
Let step3 : IN A N := anything_in_next_of_itself A.
Let step4 : IN A A := step2 A step3.
Definition strictsub_next1_Out : False := h step4.
End strictsub_next1.
Let step5 : ~ EQ A N := strictsub_next1_Out.
Definition strictsub_next_Out : StrictSUB A N :=
Build_StrictSUB A N step1 step5.
End strictsub_next_proof.

(* Specifications: *)
Theorem some_things_strictsub_their_nexts :
forall (A : Ens) (h : not_in_itself A), StrictSUB A (Next A).