Definition cumulative {X} (L: nat -> list X) :=
forall n, exists A, L (S n) = L n ++ A.
Hint Extern 0 (cumulative _) => intros ?; cbn; eauto.

(* Specifications: *)
Lemma cum_ge {X} (L: nat -> list X) n m :
cumulative L -> m >= n -> exists A, L m = L n ++ A.
Lemma cum_ge' {X} (L: nat -> list X) x n m :
cumulative L -> x el L n -> m >= n -> x el L m.