Goal:
    A : Type  B : Type  P : B → B → Type  l : list A  l' : list A  f : A → B
  ============================
   (OnOne2 (on_Trel P f) l l' → OnOne2 P (map f l) (map f l'))


DEBUG:Going to execute:
induction 1

Goals:
  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  hd' : A
  tl : list A
  p : on_Trel P f hd hd'
  ============================
   (OnOne2 P (map f (hd :: tl)) (map f (hd' :: tl)))

  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  tl : list A
  tl' : list A
  X : OnOne2 (on_Trel P f) tl tl'
  IHX : OnOne2 P (map f tl) (map f tl')
  ============================
   (OnOne2 P (map f (hd :: tl)) (map f (hd :: tl')))


DEBUG:Going to execute:
simpl

Goals:
  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  hd' : A
  tl : list A
  p : on_Trel P f hd hd'
  ============================
   (OnOne2 P (f hd :: map f tl) (f hd' :: map f tl))

  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  tl : list A
  tl' : list A
  X : OnOne2 (on_Trel P f) tl tl'
  IHX : OnOne2 P (map f tl) (map f tl')
  ============================
   (OnOne2 P (f hd :: map f tl) (f hd :: map f tl'))


DEBUG:Going to execute:
constructor

Goals:
  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  hd' : A
  tl : list A
  p : on_Trel P f hd hd'
  ============================
   (OnOne2 P (f hd :: map f tl) (f hd' :: map f tl))

  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  tl : list A
  tl' : list A
  X : OnOne2 (on_Trel P f) tl tl'
  IHX : OnOne2 P (map f tl) (map f tl')
  ============================
   (OnOne2 P (f hd :: map f tl) (f hd :: map f tl'))


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

Goals:
  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  hd' : A
  tl : list A
  p : on_Trel P f hd hd'
  ============================
   (P (f hd) (f hd'))

  
  A : Type
  B : Type
  P : B → B → Type
  f : A → B
  hd : A
  tl : list A
  tl' : list A
  X : OnOne2 (on_Trel P f) tl tl'
  IHX : OnOne2 P (map f tl) (map f tl')
  ============================
   (OnOne2 P (map f tl) (map f tl'))


DEBUG:Going to execute:
try congruence