proposition: Lemma alt_IndexedBag_RepInv : forall container, IndexedBag_RepInv container -> forall (key0 : TKey) (bag : BagType), InA (@eq_key_elt _) (key0, bag) (elements container) -> RepInv bag /\ (forall item : TItem, List.In item (benumerate bag) -> E.eq (projection item) key0).
proof: Proof. intros; eapply H; rewrite elements_mapsto_iff; eauto. Qed.
imports: Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsInterface Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsProperties Coq.FSets.FMapInterface Coq.FSets.FMapFacts Coq.Arith.PeanoNat Fiat.Common Fiat.Common.List.ListFacts Fiat.Common.List.FlattenList Fiat.Common.SetEqProperties Fiat.Common.FMapExtensions Fiat.Common.List.PermutationFacts