Instance EqDec_AMap_key : EqDec AMap.key.

Lemma AMap_Raw_add_fold_left A (EQ : A -> A -> Prop) B f k (x : B) l (e : A) :
(forall e, EQ e e) ->
(forall e e', EQ e e' -> EQ e' e) ->
(forall e e' e'', EQ e e' -> EQ e' e'' -> EQ e e'') ->
(forall a e e', EQ e e' -> EQ (f e a) (f e' a)) ->
(forall a b e, fst a = fst b -> EQ (f (f e a) b) (f e a)) ->
(forall a b e, EQ (f (f e a) b) (f (f e b) a)) ->
EQ
(fold_left f (AMap.Raw.add k x l) e)
(fold_left f ((k, x) :: l) e).