Definition zip_unit' (s : seq (K * V)) := mapf' unit_f s.

(* Specifications: *)
Lemma zipC' s1 s2 : zip' s1 s2 = zip' s2 s1.
Lemma zipA' s1 s2 s3 : obind (zip' s1) (zip' s2 s3) = obind (zip'^~ s3) (zip' s1 s2).
Lemma zip_unitL' s : zip' (zip_unit' s) s = Some s.
Lemma map_key_zip' s1 s2 s : zip' s1 s2 = Some s -> map key s = map key s1.
Lemma zip_unitE' s1 s2 : (exists s, zip' s1 s2 = Some s) <-> zip_unit' s1 = zip_unit' s2.
Lemma zip_sorted' s1 s2 : sorted ord (map key s1) -> forall s, zip' s1 s2 = Some s -> sorted ord (map key s).