Definition supp s := map key (seq_of s).

(* Specifications: *)
Lemma ord_path (x y : K) s : ord x y -> path ord y s -> path ord x s.
Lemma last_ins' (x : K) (v : V) s : path ord x (map key s) -> ins' x v s = (x, v) :: s.
Lemma fmapP (s1 s2 : fmap) : (forall k, fnd k s1 = fnd k s2) -> s1 = s2.
Lemma supp_rem k (s : fmap) : supp (rem k s) =i predI (predC1 k) (mem (supp s)).
Lemma supp_ins k v (s : fmap) : supp (ins k v s) =i predU (pred1 k) (mem (supp s)).
Lemma fnd_empty k : fnd k nil = None.
Lemma rem_empty k : rem k nil = nil.
Lemma seqof_ins k v (s : fmap) : path ord k (supp s) -> seq_of (ins k v s) = (k, v) :: seq_of s.
Lemma path_supp_ins k1 k v (s : fmap) : ord k1 k -> path ord k1 (supp s) -> path ord k1 (supp (ins k v s)).
Lemma path_supp_ins_inv k1 k v (s : fmap) : path ord k (supp s) -> path ord k1 (supp (ins k v s)) -> ord k1 k && path ord k1 (supp s).
Lemma fmap_ind' (P : fmap -> Prop) : P nil -> (forall k v s, path ord k (supp s) -> P s -> P (ins k v s)) -> forall s, P s.