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 rem_kfilt (p : pred K) k (s : fmap) :
rem k (kfilter p s) =
if p k then kfilter p (rem k s) else kfilter p s.