proposition: Lemma nth_take_1_drop {A} (ls : list A) n a : nth n ls a = match take 1 (drop n ls) with | nil => a | x::_ => x end.
proof: Proof. revert n. induction ls as [|x xs IHxs]; simpl; intros. { destruct n; reflexivity. } { destruct n; simpl; [trivial|]; []. rewrite IHxs; simpl; reflexivity. } 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