Goal:
  
  A : Type
  B : Type
  f : nat → A → B
  a : A
  l : list A
  l' : list A
  n : nat
  IHl : ∀ n : nat,
          mapi_rec f (l ++ l') n = mapi_rec f l n ++ mapi_rec f l' (#|l| + n)
  ============================
   (f n a :: mapi_rec f (l ++ l') (S n) =
    f n a :: mapi_rec f l (S n) ++ mapi_rec f l' (S (#|l| + n)))


DEBUG:Going to execute:
congruence