Goal:
  
  A : Type
  B : Type
  f : A → B
  aux := fix aux (l : list A) (acc : list B) {struct l} : list B :=
           match l with
           | [] => acc
           | x :: l0 => aux l0 (f x :: acc)
           end : list A → list B → list B
  a : A
  l : list A
  IHl : ∀ acc : list B, aux l acc = aux l [] ++ acc
  acc : list B
  ============================
   (aux l [] ++ [f a] ++ acc = (aux l [] ++ [f a]) ++ acc)


DEBUG:Going to execute:
<coq-core.plugins.ltac::auto@0> $1 $2 $3
DEBUG LTAC Evaluated term: (IHl [f a])
DEBUG LTAC Evaluated term: (IHl [f a])
DEBUG LTAC Evaluated term: IHl
DEBUG LTAC Evaluated term: IHl
DEBUG LTAC Evaluated term: (f a :: acc)
DEBUG LTAC Evaluated term: ([f a] ++ acc)