proposition: Lemma fold_eq_fold_pairs : forall A B C (m:monoid_op C) (f:A->B->C) (M:map A B), fold m f M = LibContainer.fold m (fun p => let '(a,b) := p in f a b) (\set{ p | exists k x, p = (k, x) /\ binds_impl M k x }).
proof: Proof. Proof using. auto. Qed.
imports: TLC(LibTactics LibLogic LibReflect LibOption LibRelation LibLogic LibOperation LibEpsilon LibMonoid LibSet)