Goal:
  
  A : Type
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat, #|l| ≤ n → firstn n l = l
  H : S #|l| ≤ S n
  ============================
   (a :: firstn n l = a :: l)


DEBUG:Going to execute:
<coq-core.plugins.ssreflect::ssrrewrite@0> $1 $2

Goals:
  
  A : Type
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat, #|l| ≤ n → firstn n l = l
  H : S #|l| ≤ S n
  ============================
   (#|l| ≤ n)

  
  A : Type
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat, #|l| ≤ n → firstn n l = l
  H : S #|l| ≤ S n
  ============================
   (a :: l = a :: l)


DEBUG:Going to execute:
auto
DEBUG LTAC Evaluated term: IHl
DEBUG LTAC Evaluated term: IHl

Goals:
  
  A : Type
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat, #|l| ≤ n → firstn n l = l
  H : S #|l| ≤ S n
  ============================
   (#|l| ≤ n)

  
  A : Type
  a : A
  l : list A
  n : nat
  IHl : ∀ n : nat, #|l| ≤ n → firstn n l = l
  H : S #|l| ≤ S n
  ============================
   (a :: l = a :: l)


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