Section L_list_def.
Context {X : Type}.
Variable (L : nat -> list X).
Fixpoint L_list (n : nat) : list (list X) :=
match n
with
| 0 => [ [] ]
| S n => L_list n ++ [ x :: L | (x,L) ∈ (cumul L n × L_list n) ]
end.
End L_list_def.

Lemma enumerator__T_list {X} L :
list_enumerator__T L X -> list_enumerator__T (L_list L) (list X).