proposition: Lemma drop_non_empty {A} (n : nat) (ls : list A) (H : ls <> nil) : List.drop (List.length ls - S n) ls <> nil.
proof: Proof. intro H'. apply (f_equal (@List.length _)) in H'. simpl in H'. rewrite length_drop in H'. destruct ls. { apply H; reflexivity. } { simpl length in H'. omega. } 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