(*************************)
  (** ** Concatenation     *)
  (*************************)

  Fixpoint concat (l : list (list A)) : list A :=
    match l with
     | [] => []
     | x :: l => x ++ concat l
    end.

Lemma concat_app : forall l1 l2, concat (l1 ++ l2) = concat l1 ++ concat l2.