Canonical Structure Tlist_setoid : Setoid := Equal_Tlist_equiv.Fixpoint Concat (l : Tlist_setoid) : Tlist_setoid -> Tlist_setoid :=
  fun m : Tlist_setoid =>
  match l with
  | Empty => m
  | Concat1 a l1 => Concat1 a (Concat l1 m)
  end.

(* Specifications: *)
Lemma Diff_Concat1_Empty : forall (a : A) (l : Tlist), ~ Equal_Tlist (Concat1 a l) Empty.
Lemma Concat_congl : Map2_congl_law Concat.
Lemma Concat_congr : Map2_congr_law Concat.