proposition: Lemma find_first_char_such_that'_short {Char HSLM HSL} str P len : @find_first_char_such_that' Char HSLM HSL P len str <= len.
proof: Proof. revert str; induction len; simpl; intros; [ reflexivity | ]. destruct (get (length str - S len) str) eqn:H. { edestruct P; try omega. apply (fun n m => proj1 (Nat.succ_le_mono n m)), IHlen. } { apply (fun n m => proj1 (Nat.succ_le_mono n m)), IHlen. } Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Coq.Lists.List Fiat.Parsers.Refinement.PreTactics Fiat.Computation.Refinements.General Fiat.Parsers.StringLike.Properties Fiat.Parsers.StringLike.FirstChar Fiat.Common.Equality Fiat.Common.List.Operations Fiat.Parsers.ContextFreeGrammar.ValidReflective Fiat.Parsers.Refinement.DisjointLemmas Fiat.Parsers.Refinement.DisjointRulesCommon Fiat.Parsers.Refinement.PossibleTerminalsSets Fiat.Parsers.ParserInterface Fiat.Parsers.StringLike.Core Fiat.Common.List.DisjointFacts