Goal:
    A : Type  B : Type  f : nat → A → B  l : list A  n : nat
  ============================
   (#|mapi_rec f l n| = #|l|)


DEBUG:Going to execute:
induction l in n |- *

Goals:
    A : Type  B : Type  f : nat → A → B  n : nat
  ============================
   (#|mapi_rec f [] n| = #|[]|)

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


DEBUG:Going to execute:
simpl
DEBUG LTAC Evaluated term: l

Goals:
    A : Type  B : Type  f : nat → A → B  n : nat
  ============================
   (0 = 0)

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


DEBUG:Going to execute:
try congruence