Goal:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  l : list A
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  ============================
   (alli p n l → alli q n l)


DEBUG:Going to execute:
PTRDEBUGTACinduction l in n |- *

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  ============================
   (alli p n [] → alli q n [])

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  a : A
  l : list A
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  IHl : ∀ n : nat, alli p n l → alli q n l
  ============================
   (alli p n (a :: l) → alli q n (a :: l))


DEBUG:Going to execute:
PTRDEBUGTACsimpl
DEBUG LTAC Evaluated term: l

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  ============================
   (true → true)

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  a : A
  l : list A
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  IHl : ∀ n : nat, alli p n l → alli q n l
  ============================
   (p n a && alli p (S n) l → q n a && alli q (S n) l)


DEBUG:Going to execute:
PTRDEBUGTACauto

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  ============================
   (true → true)

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  n : nat
  a : A
  l : list A
  hpq : ∀ (i : nat) (x : A), p i x → q i x
  IHl : ∀ n : nat, alli p n l → alli q n l
  ============================
   (p n a && alli p (S n) l → q n a && alli q (S n) l)


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