Goal:
  
  A : Type
  B : Type
  P : A → Type
  f : B → A
  x : B
  l : list B
  p : P (f x)
  X : All (λ x : B, P (f x)) l
  IHX : All P (rev_map f l)
  ============================
   (All P (rev_map f l ++ [f x]))


DEBUG:Going to execute:
apply All_app_inv
DEBUG LTAC Evaluated term: rev_map_cons
DEBUG LTAC Evaluated term: rev_map_cons

Goals:
  
  A : Type
  B : Type
  P : A → Type
  f : B → A
  x : B
  l : list B
  p : P (f x)
  X : All (λ x : B, P (f x)) l
  IHX : All P (rev_map f l)
  ============================
   (All P (rev_map f l))

  
  A : Type
  B : Type
  P : A → Type
  f : B → A
  x : B
  l : list B
  p : P (f x)
  X : All (λ x : B, P (f x)) l
  IHX : All P (rev_map f l)
  ============================
   (All P [f x])


DEBUG:Going to execute:
auto
DEBUG LTAC Evaluated term: All_app_inv

Goals:
  
  A : Type
  B : Type
  P : A → Type
  f : B → A
  x : B
  l : list B
  p : P (f x)
  X : All (λ x : B, P (f x)) l
  IHX : All P (rev_map f l)
  ============================
   (All P (rev_map f l))

  
  A : Type
  B : Type
  P : A → Type
  f : B → A
  x : B
  l : list B
  p : P (f x)
  X : All (λ x : B, P (f x)) l
  IHX : All P (rev_map f l)
  ============================
   (All P [f x])


DEBUG:Going to execute:
<coq-core.plugins.ltac::auto@0> $1 $2 $3