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
[ trivial
with eq_true
| reflexivity
| symmetry; trivial
| contradiction
| congruence ]