(* Transitive closure of list extension *)
  #[local] Notation "list_ext ^+" := (clos_trans (list A) list_ext).(* Reflexive transitive closure of list extension *)
  #[local] Notation "list_ext ^*" := (clos_refl_trans (list A) list_ext).

(* Specifications: *)
Lemma list_ext_app_r l1 l2 l : list_ext l1 l2 -> list_ext (l1 ++ l) (l2 ++ l).
Lemma list_ext_app_l l l1 l2 : list_ext l1 l2 -> list_ext (l ++ l1) (l ++ l2).