proposition: Lemma not_empty_has_binding m : is_empty m = false <-> (exists x e, List.In (x,e) (bindings m)).
proof: Proof. rewrite <- not_true_iff_false, is_empty_bindings. destruct (bindings m) as [|(x,e) l]; simpl; firstorder; try congruence. exists x, e. now left. Qed.
imports: Coq(Bool Equalities Orders OrdersFacts OrdersLists) Coq(Morphisms Permutation SetoidPermutation) MMaps(Utils Comparisons Interface)