Goal:
  
  ============================
   (∀ (A B C : Type) (R : A → B → C → Type) (l0 : list A) 
      (l1 : list B) (l : list C) (a b : All3 R l0 l1 l) 
      (e : NoConfusionHom_All3 A B C R l0 l1 l a b),
      (λ (A0 B0 C0 : Type) (R0 : A0 → B0 → C0 → Type) 
         (l2 : list A0) (l3 : list B0) (l4 : list C0) 
         (a0 b0 : All3 R0 l2 l3 l4) (H : a0 = b0),
         noConfusionHom_All3_obligation_2 A0 B0 C0 R0 l2 l3 l4 a0 b0 H) A B C
        R l0 l1 l a b
        ((λ (A0 B0 C0 : Type) (R0 : A0 → B0 → C0 → Type) 
            (l2 : list A0) (l3 : list B0) (l4 : list C0) 
            (a0 b0 : All3 R0 l2 l3 l4) (H : NoConfusionHom_All3 A0 B0 C0 R0
                                              l2 l3 l4 a0 b0),
            noConfusionHom_All3_obligation_1 A0 B0 C0 R0 l2 l3 l4 a0 b0 H) A
           B C R l0 l1 l a b e) = e)


DEBUG:Going to execute:
simpl; intros;
            match goal with
            | H:_ = _ |- _ = _ => try solve_noconf_hom_inv_equiv
            | H:_ = _ |- _ => try solve_noconf_prf
            | |- _ = _ => try solve_noconf_hom_inv
            end