Goal:
  
  A : Type
  x : nat
  y : nat
  a : A
  args : list A
  IHx : ∀ (y : nat) (args : list A),
          firstn (x + y) args = firstn x args ++ firstn y (skipn x args)
  ============================
   ((a :: firstn x args) ++ firstn y (skipn x args) =
    (a :: firstn x args) ++ firstn y (skipn x args))


DEBUG:Going to execute:
(solve [ do_atom | use_hyps; do_ccl ]) ||
             fail "Cannot solve this goal"