Goal:
  
  A : Type
  B : Type
  P : A → B → Type
  Q : A → B → Type
  a : A
  l : list A
  IHl : ∀ l' : list B,
          All2 P l l'
          → (∀ (x : A) (y : B), In x l → In y l' → P x y → Q x y)
            → All2 Q l l'
  l' : list B
  X : All2 P (a :: l) l'
  X0 : ∀ (x : A) (y : B), In x (a :: l) → In y l' → P x y → Q x y
  x : A
  y : B
  l0 : list A
  l'0 : list B
  X1 : P a y
  X2 : All2 P l l'0
  H0 : x = a
  H1 : l0 = l
  H2 : y :: l'0 = l'
  ============================
   (All2 Q (a :: l) (y :: l'0))


DEBUG:Going to execute:
<coq-core.plugins.ltac::subst@1>