Goal:
  
  A : Type
  P : A → bool
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (on_Some_or_None (λ x : A, P x) (nth_error (a :: l) n))


DEBUG:Going to execute:
destruct n

Goals:
  
  A : Type
  P : A → bool
  a : A
  l : list A
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (on_Some_or_None (λ x : A, P x) (nth_error (a :: l) 0))

  
  A : Type
  P : A → bool
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (on_Some_or_None (λ x : A, P x) (nth_error (a :: l) (S n)))


DEBUG:Going to execute:
cbn
DEBUG LTAC Evaluated term: n

Goals:
  
  A : Type
  P : A → bool
  a : A
  l : list A
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (is_true (P a))

  
  A : Type
  P : A → bool
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (on_Some_or_None (λ x : A, P x) (nth_error l n))


DEBUG:Going to execute:
auto

Goals:
  
  A : Type
  P : A → bool
  a : A
  l : list A
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (is_true (P a))

  
  A : Type
  P : A → bool
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat,
          forallb P l → on_Some_or_None (λ x : A, P x) (nth_error l n)
  H0 : is_true (P a)
  H1 : Forall (λ x : A, P x) l
  ============================
   (on_Some_or_None (λ x : A, P x) (nth_error l n))


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