Goal:
  
  A : Type
  R : list A → A → A → Type
  P : ∀ L l l' : list A, OnOne2 (R L) l l' → Type
  hhd : ∀ (L : list A) (x y : A) (l : list A) (r : R L x y),
          P L (x :: l) (y :: l) (OnOne2_hd (R L) x y l r)
  htl : ∀ (L : list A) (x : A) (l l' : list A) (h : OnOne2 (R L) l l'),
          P L l l' h → P L (x :: l) (x :: l') (OnOne2_tl (R L) x l l' h)
  l : list A
  l' : list A
  h : OnOne2 (R l) l l'
  ============================
   (P l l l' h)


DEBUG:Going to execute:
induction h

Goals:
  
  A : Type
  R : list A → A → A → Type
  P : ∀ L l l' : list A, OnOne2 (R L) l l' → Type
  hhd : ∀ (L : list A) (x y : A) (l : list A) (r : R L x y),
          P L (x :: l) (y :: l) (OnOne2_hd (R L) x y l r)
  htl : ∀ (L : list A) (x : A) (l l' : list A) (h : OnOne2 (R L) l l'),
          P L l l' h → P L (x :: l) (x :: l') (OnOne2_tl (R L) x l l' h)
  l : list A
  hd : A
  hd' : A
  tl : list A
  p : R l hd hd'
  ============================
   (P l (hd :: tl) (hd' :: tl) (OnOne2_hd (R l) hd hd' tl p))

  
  A : Type
  R : list A → A → A → Type
  P : ∀ L l l' : list A, OnOne2 (R L) l l' → Type
  hhd : ∀ (L : list A) (x y : A) (l : list A) (r : R L x y),
          P L (x :: l) (y :: l) (OnOne2_hd (R L) x y l r)
  htl : ∀ (L : list A) (x : A) (l l' : list A) (h : OnOne2 (R L) l l'),
          P L l l' h → P L (x :: l) (x :: l') (OnOne2_tl (R L) x l l' h)
  l : list A
  hd : A
  tl : list A
  tl' : list A
  h : OnOne2 (R l) tl tl'
  IHh : P l tl tl' h
  ============================
   (P l (hd :: tl) (hd :: tl') (OnOne2_tl (R l) hd tl tl' h))


DEBUG:Going to execute:
eauto
DEBUG LTAC Evaluated term: h

Goals:
  
  A : Type
  R : list A → A → A → Type
  P : ∀ L l l' : list A, OnOne2 (R L) l l' → Type
  hhd : ∀ (L : list A) (x y : A) (l : list A) (r : R L x y),
          P L (x :: l) (y :: l) (OnOne2_hd (R L) x y l r)
  htl : ∀ (L : list A) (x : A) (l l' : list A) (h : OnOne2 (R L) l l'),
          P L l l' h → P L (x :: l) (x :: l') (OnOne2_tl (R L) x l l' h)
  l : list A
  hd : A
  hd' : A
  tl : list A
  p : R l hd hd'
  ============================
   (P l (hd :: tl) (hd' :: tl) (OnOne2_hd (R l) hd hd' tl p))

  
  A : Type
  R : list A → A → A → Type
  P : ∀ L l l' : list A, OnOne2 (R L) l l' → Type
  hhd : ∀ (L : list A) (x y : A) (l : list A) (r : R L x y),
          P L (x :: l) (y :: l) (OnOne2_hd (R L) x y l r)
  htl : ∀ (L : list A) (x : A) (l l' : list A) (h : OnOne2 (R L) l l'),
          P L l l' h → P L (x :: l) (x :: l') (OnOne2_tl (R L) x l l' h)
  l : list A
  hd : A
  tl : list A
  tl' : list A
  h : OnOne2 (R l) tl tl'
  IHh : P l tl tl' h
  ============================
   (P l (hd :: tl) (hd :: tl') (OnOne2_tl (R l) hd tl tl' h))


DEBUG:Going to execute:
<coq-core.plugins.ltac::eauto@0> $1 $2 $3