Goal:
  
  A : Type
  f : A → bool
  g : nat → A
  n : nat
  fg : ∀ x : nat, x < n → f (g x)
  ============================
   (is_true (forallb f (unfold n g)))


DEBUG:Going to execute:
induction n

Goals:
    A : Type  f : A → bool  g : nat → A  fg : ∀ x : nat, x < 0 → f (g x)
  ============================
   (is_true (forallb f (unfold 0 g)))

  
  A : Type
  f : A → bool
  g : nat → A
  n : nat
  fg : ∀ x : nat, x < S n → f (g x)
  IHn : (∀ x : nat, x < n → f (g x)) → forallb f (unfold n g)
  ============================
   (is_true (forallb f (unfold (S n) g)))


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

Goals:
    A : Type  f : A → bool  g : nat → A  fg : ∀ x : nat, x < 0 → f (g x)
  ============================
   (is_true true)

  
  A : Type
  f : A → bool
  g : nat → A
  n : nat
  fg : ∀ x : nat, x < S n → f (g x)
  IHn : (∀ x : nat, x < n → f (g x)) → forallb f (unfold n g)
  ============================
   (is_true (forallb f (unfold n g ++ [g n])))


DEBUG:Going to execute:
auto

Goals:
    A : Type  f : A → bool  g : nat → A  fg : ∀ x : nat, x < 0 → f (g x)
  ============================
   (is_true true)

  
  A : Type
  f : A → bool
  g : nat → A
  n : nat
  fg : ∀ x : nat, x < S n → f (g x)
  IHn : (∀ x : nat, x < n → f (g x)) → forallb f (unfold n g)
  ============================
   (is_true (forallb f (unfold n g ++ [g n])))


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