proposition: Lemma filter_spec A (f:key->A->bool) m : bindings (filter f m) = List.filter (fun '(k,e) => f k e) (bindings m).
proof: Proof. unfold filter. rewrite xmapi_spec; simpl; auto. rewrite filter_as_mapfilter. f_equiv. intros (k,e) ? <-. now destruct f. Qed.
imports: Coq(Bool PeanoNat BinPos Orders OrdersEx OrdersLists) MMaps(Utils Comparisons Interface)