proposition: Lemma take_to_string s n : List.take n (to_string s) = to_string (take n s).
proof: Proof. destruct (le_lt_dec (length s) n) as [H|H]. { rewrite take_long by assumption. rewrite take_all by (rewrite to_string_length; assumption). reflexivity. } { revert H. take_drop_to_string_t s n. } Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Fiat.Common Fiat.Common.List.Operations Fiat.Common.List.ListFacts Fiat.Common.Le Fiat.Common.Tactics.SetoidSubst Fiat.Common.Tactics.IsClosed Fiat.Parsers.StringLike.Core Fiat.Common.UIP