Section Lemmas.
Open Scope nat.
Inductive finite_intersections_len {X : Type} (F : Family X) : IndexedFamily nat (Ensemble X) :=
| intro_fi_len_full : In (finite_intersections_len F 0) Full_set
| intro_fi_len_S : forall U : Ensemble X, In F U -> In (finite_intersections_len F 1) U
| intro_fi_len_intersection : forall (U V : Ensemble X) (m k : nat),
In (finite_intersections_len F m) U ->
In (finite_intersections_len F k) V ->
In (finite_intersections_len F (m + k)) (Intersection U V).

Lemma finite_intersections_len_S_exists
{X : Type}
{F : Family X}
{U : Ensemble X}
{n : nat} :
In (finite_intersections_len F (S n)) U ->
exists V W,
In (finite_intersections_len F n) V /\
In (finite_intersections_len F 1) W /\
U = Intersection V W.