fact: Definition rev_rect (A : Type) (P : list A → Type) (H : P []) (H0 : ∀ (x : A) (l : list A), P l → P (l ++ [x])) (l : list A) : P l := (λ E : rev (rev l) = l, eq_rect (rev (rev l)) (λ l0 : list A, P l0) (rev_list_rect A P H (λ (a : A) (l0 : list A) (H1 : P (rev l0)), H0 a (rev l0) H1) (rev l)) l E) (rev_involutive l).
imports: Coq.Lists.List Category.Lib.Tactics