proposition: Lemma no_first_char_empty str (H' : get 0 str = None) : length str = 0.
proof: Proof. case_eq (length (take 1 str)); rewrite take_length. { destruct (length str); simpl; intros; omega. } { intros ? H''. pose proof (singleton_exists (take 1 str)) as H'''. rewrite take_length in H'''. destruct (length str); try omega; simpl in *. specialize (H''' eq_refl). destruct H''' as [ch H''']. apply get_0 in H'''. congruence. } 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