proposition: Lemma for_first_char__split (str : String) P n : for_first_char str P <-> ((n = 0 /\ for_first_char (drop n str) P) \/ (n <> 0 /\ for_first_char (take n str) P)).
proof: Proof. destruct n; [ rewrite drop_0 | rewrite <- for_first_char__take ]; intuition. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Fiat.Parsers.StringLike.Core Fiat.Parsers.StringLike.Properties Fiat.Parsers.StringLike.ForallChars Fiat.Common