Goal:
    A : Type  B : Type  l : list A  l' : list B  default : A
  ============================
   (#|l| = #|l'| → mapi (λ (i : nat) (_ : B), nth i l default) l' = l)


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

Goals:
    A : Type  B : Type  l : list A  default : A
  ============================
   (#|l| = #|[]| → mapi (λ (i : nat) (_ : B), nth i l default) [] = l)

  
  A : Type
  B : Type
  l : list A
  a : B
  l' : list B
  default : A
  IHl' : ∀ l : list A,
           #|l| = #|l'| → mapi (λ (i : nat) (_ : B), nth i l default) l' = l
  ============================
   (#|l| = #|a :: l'|
    → mapi (λ (i : nat) (_ : B), nth i l default) (a :: l') = l)


DEBUG:Going to execute:
destruct l => /= //
DEBUG LTAC Evaluated term: l'