proposition: Lemma InA_ind_helper : forall (P : TKey -> BagType -> Prop) (x : TKey) (y : BagType) (xs : list (TKey * BagType)), (forall k b, InA (eq_key_elt (elt:=BagType)) (k, b) ((x, y) :: xs) -> P k b) -> (P x y /\ (forall k b, InA (eq_key_elt (elt:=BagType)) (k, b) xs -> P k b)).
proof: Proof. intros; split; intros; eapply H. - eapply InA_cons_hd. reflexivity. - eapply InA_cons_tl. exact H0. Qed.
imports: Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsInterface Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsProperties Coq.Arith.PeanoNat Coq.FSets.FMapInterface Coq.FSets.FMapFacts Coq.FSets.FMapAVL Fiat.Common Fiat.Common.List.ListFacts Fiat.Common.List.FlattenList Fiat.Common.SetEqProperties Fiat.Common.FMapExtensions Fiat.Common.List.PermutationFacts