Goal:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  bs : list B
  ============================
   (alli p n (map f bs) = alli (λ i : nat, p i ∘ f) n bs)


DEBUG:Going to execute:
induction bs in n |- *

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  ============================
   (alli p n (map f []) = alli (λ (i : nat) (x : B), p i (f x)) n [])

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  a : B
  bs : list B
  IHbs : ∀ n : nat,
           alli p n (map f bs) = alli (λ (i : nat) (x : B), p i (f x)) n bs
  ============================
   (alli p n (map f (a :: bs)) =
    alli (λ (i : nat) (x : B), p i (f x)) n (a :: bs))


DEBUG:Going to execute:
simpl
DEBUG LTAC Evaluated term: bs

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  ============================
   (true = true)

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  a : B
  bs : list B
  IHbs : ∀ n : nat,
           alli p n (map f bs) = alli (λ (i : nat) (x : B), p i (f x)) n bs
  ============================
   (p n (f a) && alli p (S n) (map f bs) =
    p n (f a) && alli (λ (i : nat) (x : B), p i (f x)) (S n) bs)


DEBUG:Going to execute:
auto

Goals:
  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  ============================
   (true = true)

  
  A : Type
  p : nat → A → bool
  q : nat → A → bool
  l : list A
  l' : list A
  B : Type
  f : B → A
  n : nat
  a : B
  bs : list B
  IHbs : ∀ n : nat,
           alli p n (map f bs) = alli (λ (i : nat) (x : B), p i (f x)) n bs
  ============================
   (p n (f a) && alli p (S n) (map f bs) =
    p n (f a) && alli (λ (i : nat) (x : B), p i (f x)) (S n) bs)


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