proposition: Lemma forall_chars__split_forall (str : String) P : forall_chars str P <-> (forall n, forall_chars (take n str) P /\ forall_chars (drop n str) P).
proof: Proof. split. { intros H n. rewrite <- forall_chars__split; assumption. } { intro H. specialize (H 0). rewrite forall_chars__split; eassumption. } Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Fiat.Parsers.StringLike.Core Fiat.Parsers.StringLike.Properties Fiat.Common