Goal:
  
  A : Type
  B : Type
  P : B → A → A → Type
  idx0 : list B
  idx1 : list A
  idx : list A
  a : OnOne2All P idx0 idx1 idx
  ============================
   (noConfusion_OnOne2All_obligation_1 A B P
      {|
        pr1 := {| pr1 := idx0; pr2 := {| pr1 := idx1; pr2 := idx |} |};
        pr2 := a
      |}
      {|
        pr1 := {| pr1 := idx0; pr2 := {| pr1 := idx1; pr2 := idx |} |};
        pr2 := a
      |}
      (noConfusion_OnOne2All_obligation_2 A B P
         {|
           pr1 := {| pr1 := idx0; pr2 := {| pr1 := idx1; pr2 := idx |} |};
           pr2 := a
         |}
         {|
           pr1 := {| pr1 := idx0; pr2 := {| pr1 := idx1; pr2 := idx |} |};
           pr2 := a
         |} eq_refl) = eq_refl)


DEBUG:Going to execute:
destruct id
Level 4: evaluation returns
idtac of type tacvalue


Goals:
  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  hd' : A
  tl : list A
  p : P b hd hd'
  e : #|bs| = #|tl|
  ============================
   (noConfusion_OnOne2All_obligation_1 A B P
      {|
        pr1 :=
          {|
            pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd' :: tl |}
          |};
        pr2 := OnOne2All_hd P b bs hd hd' tl p e
      |}
      {|
        pr1 :=
          {|
            pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd' :: tl |}
          |};
        pr2 := OnOne2All_hd P b bs hd hd' tl p e
      |}
      (noConfusion_OnOne2All_obligation_2 A B P
         {|
           pr1 :=
             {|
               pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd' :: tl |}
             |};
           pr2 := OnOne2All_hd P b bs hd hd' tl p e
         |}
         {|
           pr1 :=
             {|
               pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd' :: tl |}
             |};
           pr2 := OnOne2All_hd P b bs hd hd' tl p e
         |} eq_refl) = eq_refl)

  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  tl : list A
  tl' : list A
  a : OnOne2All P bs tl tl'
  ============================
   (noConfusion_OnOne2All_obligation_1 A B P
      {|
        pr1 :=
          {|
            pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd :: tl' |}
          |};
        pr2 := OnOne2All_tl P b bs hd tl tl' a
      |}
      {|
        pr1 :=
          {|
            pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd :: tl' |}
          |};
        pr2 := OnOne2All_tl P b bs hd tl tl' a
      |}
      (noConfusion_OnOne2All_obligation_2 A B P
         {|
           pr1 :=
             {|
               pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd :: tl' |}
             |};
           pr2 := OnOne2All_tl P b bs hd tl tl' a
         |}
         {|
           pr1 :=
             {|
               pr1 := b :: bs; pr2 := {| pr1 := hd :: tl; pr2 := hd :: tl' |}
             |};
           pr2 := OnOne2All_tl P b bs hd tl tl' a
         |} eq_refl) = eq_refl)


DEBUG:Going to execute:
simpl
Level 2: evaluation returns
idtac of type tacvalue

Level 2: evaluation returns
idtac of type tacvalue


Goals:
  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  hd' : A
  tl : list A
  p : P b hd hd'
  e : #|bs| = #|tl|
  ============================
   (eq_refl = eq_refl)

  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  tl : list A
  tl' : list A
  a : OnOne2All P bs tl tl'
  ============================
   (eq_refl = eq_refl)


DEBUG:Going to execute:
constructor

Goals:
  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  hd' : A
  tl : list A
  p : P b hd hd'
  e : #|bs| = #|tl|
  ============================
   (eq_refl = eq_refl)

  
  A : Type
  B : Type
  P : B → A → A → Type
  b : B
  bs : list B
  hd : A
  tl : list A
  tl' : list A
  a : OnOne2All P bs tl tl'
  ============================
   (eq_refl = eq_refl)


DEBUG:Going to execute:
<coq-core.plugins.ltac::constructor@0>