proposition: Lemma rev_nonnil {A} (ls : list A) : ls <> nil <-> rev ls <> nil.
proof: Proof. destruct ls; simpl. { reflexivity. } { split; intros H H'; apply (f_equal (@List.length _)) in H'; rewrite ?app_length in H'; simpl in *; 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