Goal:
  
  ============================
   (∀ (A B : Type) (P : B → A → A → Type) (a
                                           b : sigma
                                                 (λ index : 
                                                 sigma
                                                 (λ _ : list B,
                                                 sigma (λ _ : list A, list A)),
                                                 OnOne2All P 
                                                 (pr1 index)
                                                 (pr1 (pr2 index))
                                                 (pr2 (pr2 index)))),
      a = b → NoConfusion_OnOne2All A B P a b)


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