fact: Fixpoint RangeTreeBag_btraverse_left (container : RawRangeTreeBag) (min_key : option TKey) : list (TKey * BagType) := match container with | Raw.Leaf => [] | Raw.Node l key' bag r _ => if Range_Min_le_Value min_key key' then RangeTreeBag_btraverse_left l min_key ++ (key', bag) :: RangeTreeBag_bcollect r else RangeTreeBag_btraverse_left r min_key end.
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