Fixpoint fcat' (s1 : fmap) (s2 : seq (K * V)) {struct s2} : fmap :=
  if s2 is (k, v)::t then fcat' (ins k v s1) t else s1.Definition fcat s1 s2 := fcat' s1 (seq_of s2).

Lemma supp_eq_ins (s1 s2 : fmap) k1 k2 v1 v2 : path ord k1 (supp s1) -> path ord k2 (supp s2) -> supp (ins k1 v1 s1) =i supp (ins k2 v2 s2) -> k1 = k2 /\ supp s1 =i supp s2.