Notation key := (@key K V).Notation value := (@value K V).Notation predk := (@predk K V).Notation predCk := (@predCk K V).Record finMap := FinMap {
  seq_of : seq (K * V); 
  _ : sorted ord (map key seq_of)}.Record finMap := FinMap {
  seq_of : seq (K * V); 
  _ : sorted ord (map key seq_of)}.Record finMap := FinMap {
  seq_of : seq (K * V); 
  _ : sorted ord (map key seq_of)}.Definition finMap_for of phant (K -> V) := finMap.Identity Coercion finMap_for_finMap : finMap_for >-> finMap.Notation "{ 'finMap' fT }" := (finMap_for (Phant fT))
  (at level 0, format "{ 'finMap'  '[hv' fT ']' }") : type_scope.Notation fmap := (finMap K V).

(* Specifications: *)
Lemma fmapE (s1 s2 : fmap) : s1 = s2 <-> seq_of s1 = seq_of s2.