proposition: Lemma Trie_find_TreeOK : forall trie st2 st1, TrieOK trie st1 -> forall bag, List.In bag (Trie_find trie st2) -> RepInv bag.
proof: Proof. intros trie st2; eapply Trie_find_ind; intros; subst. - inversion H; subst; eauto. simpl in H0; intuition eauto; subst; eauto. - simpl in H1; intuition; subst. + inversion H0; subst; eauto. + eapply (H (st1 ++ [key0])); eauto. - simpl in H0; intuition; subst; eauto. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsInterface Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsProperties Coq.FSets.FMapInterface Coq.FSets.FMapFacts Coq.FSets.FMapAVL Coq.ZArith.ZArith Fiat.Common Fiat.Common.List.ListFacts Fiat.Common.List.FlattenList Fiat.Common.SetEqProperties Fiat.Common.FMapExtensions Fiat.Common.List.PermutationFacts Fiat.QueryStructure.Specification.SearchTerms.ListPrefix