(* ********************************************************************* *)
  (** ** 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_map_l : forall A B C (E : list (asn A B)) (F : list (asn A B)) (f1 : A -> A) (f2: B -> B), disjoint (map f1 f2 E) F <-> disjoint E F.