(* ********************************************************************* *)
  (** ** The [simpl_alist] tactic *)

  (** The [simpl_alist] tactic rewrites association lists so that they
      are in the normal form described above.  Similar to the [simpl]
      tactic, we define "[in *]" and "[in H]" variants of the tactic. *)

  Ltac simpl_asnlist :=
    autorewrite with rewr_list rewr_list_in rewr_map rewr_dom.Implicit Types A B C D : Set.

Lemma disjoint_app_l : forall A B (E F : list (asn A B)) (G : list (asn A B)), disjoint (E ++ F) G <-> disjoint E G /\ disjoint F G.