proposition: Lemma nth_error_None_long {A} (n : nat) (ls : list A) : nth_error ls n = None <-> List.length ls <= n.
proof: Proof. revert n; induction ls; intros [|n]; try (specialize (IHls n); destruct IHls); simpl in *; split; intros; unfold value in *; try (reflexivity || omega || congruence); intuition. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Coq.Lists.List Coq.Lists.SetoidList Coq.Bool.Bool Fiat.Common Fiat.Common.List.Operations Fiat.Common.Equality Fiat.Common.List.FlattenList Fiat.Common.LogicFacts