End PositiveMap.
(** Here come some additional facts about this implementation. Most are facts that cannot be derivable from the general interface. *)
Module PositiveMapAdditionalFacts.

(* Specifications: *)
(* Derivable from the Map interface *)
Theorem gsspec:
forall (A:Type)(i j: key) (x: A) (m: t A),
find i (add j x m) = if E.eq_dec i j then Some x else find i m.
(* Not derivable from the Map interface *)
Theorem gsident:
forall (A:Type)(i: key) (m: t A) (v: A),
find i m = Some v -> add i v m = m.
Lemma xmap2_lr :
forall (A B : Type)(f g: option A -> option A -> option B)(m : t A),
(forall (i j : option A), f i j = g j i) ->
xmap2_l f m = xmap2_r g m.
Theorem map2_commut:
forall (A B: Type) (f g: option A -> option A -> option B),
(forall (i j: option A), f i j = g j i) ->
forall (m1 m2: t A),
_map2 f m1 m2 = _map2 g m2 m1.