Instance EqDec_AMap_key : EqDec AMap.key.

(* Specifications: *)
Lemma AMap_find_add {A} m x (y : A) x' :
AMap.find x' (AMap.add x y m) =
if eq_dec x x' then Some y else AMap.find x' m.
Lemma AMap_find_remove {A} (m : AMap.t A) x x' :
AMap.find x' (AMap.remove x m) =
if eq_dec x x' then None else AMap.find x' m.
Lemma AMap_Raw_map_app {A} (f : A -> A) l1 l2 :
AMap.Raw.map (option_map f) (app l1 l2) =
app (AMap.Raw.map (option_map f) l1)
(AMap.Raw.map (option_map f) l2).
Lemma AMap_Raw_map_rev {A} (f : A -> A) l :
AMap.Raw.map (option_map f) (rev l) =
rev (AMap.Raw.map (option_map f) l).
Lemma A2PMap_option_map {A} (m : AMap.t (option A)) (f : A -> A) :
A2PMap (AMap.map (option_map f) m) = A2PMap m.
Lemma AMap_map_add {A B} (f : A -> B) m x y :
AMap.Equal
(AMap.map f (AMap.add x y m))
(AMap.add x (f y) (AMap.map f m)).
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).
Lemma AMap_Raw_add_fold_left_permut A (EQ : A -> A -> Prop) B f (l l' : list B) (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, EQ (f (f e a) b) (f (f e b) a)) ->
Permutation l l' ->
EQ
(fold_left f l e)
(fold_left f l' e).
Lemma AMap_Raw_add_fold_left_right A (EQ : A -> A -> Prop) B f (l : list B) (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, EQ (f (f e a) b) (f (f e b) a)) ->
EQ
(fold_left f l e)
(fold_right (fun x y => f y x) e l).
Lemma setPerm_b_comm o b ofs1 ofs2 t :
setPerm o b ofs1 (setPerm o b ofs2 t) =
setPerm o b ofs2 (setPerm o b ofs1 t).
Lemma setPerm_b_idem o b ofs t :
setPerm o b ofs (setPerm o b ofs t) =
setPerm o b ofs t.