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


DEBUG:Going to execute:
destruct n

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

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


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