Section Filtering.
Variables (K : ordType) (V : Type).
Notation fmap := (finMap K V).
Notation nil := (nil K V).
Definition kfilter' (p : pred K) (s : fmap) :=
filter (fun kv => p kv.1) (seq_of s).
Definition kfilter (p : pred K) (s : fmap) := FinMap (sorted_kfilter p s).

Lemma kfilt_ins (p : pred K) k v (s : fmap) :
kfilter p (ins k v s) =
if p k then ins k v (kfilter p s) else kfilter p s.