Goal:
  
  A : Type
  B : Type
  P : nat → B → Type
  f : nat → A → B
  n : nat
  hd : A
  tl : list A
  p : P n (f n hd)
  X : Alli (λ (n : nat) (a : A), P n (f n a)) (S n) tl
  IHX : Alli P (S n) (mapi_rec f tl (S n))
  ============================
   (Alli P n (f n hd :: mapi_rec f tl (S n)))


DEBUG:Going to execute:
constructor