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:
solve
[ trivial
with eq_true
| reflexivity
| symmetry; trivial
| contradiction
| congruence ]