Goal:
  
  A : Type
  a : A
  l : list A
  n : nat
  P : nat → A → Type
  x : A
  IHl : ∀ (n : nat) (x : A),
          Alli P 0 (List.rev l) → nth_error l n = Some x → P (#|l| - S n) x
  Alll : Alli P 0 (List.rev l)
  X : P (#|List.rev l| + 0) a
  X0 : Alli P (S (#|List.rev l| + 0)) []
  ============================
   (nth_error (a :: l) n = Some x → P (#|l| - n) x)


DEBUG:Going to execute:
<coq-core.plugins.ltac::clear@0> $1
Level 1: evaluation returns
inversion_clear H
where
H := Alla
of type
constr of type tacvalue