Goal:
  
  A : Type
  B : Type
  P : nat → A → B → Type
  l0' : list A
  l1' : list B
  H : All2i_len P l0' l1'
  x : A
  y : B
  l : list A
  l' : list B
  r : P (#|l| + #|l0'|) x y
  X : All2i_len (λ n : nat, P (n + #|l0'|)) l l'
  IHX : All2i_len P (l ++ l0') (l' ++ l1')
  ============================
   (P #|l ++ l0'| x y)


DEBUG:Going to execute:
rewrite app_length