Goal:
  
  A : Type
  B : Type
  P : B → A → A → Type
  i : list B
  i' : list B
  a : A
  l : list A
  tl : list A
  tl' : list A
  IHl : ∀ i i' : list B,
          OnOne2All P i tl tl'
          → #|i'| = #|l| → OnOne2All P (i' ++ i) (l ++ tl) (l ++ tl')
  ============================
   (OnOne2All P i tl tl'
    → #|i'| = S #|l| → OnOne2All P (i' ++ i) (a :: l ++ tl) (a :: l ++ tl'))


DEBUG:Going to execute:
constructor
Level 0: Backtrace:

In environment
A : Type
B : Type
P : B → A → A → Type
i, i' : list B
tl, tl' : list A
X : OnOne2All P i tl tl'
H : #|i'| = 0
Unable to unify
 "OnOne2All ?M2744 (?M2745 :: ?M2746) (?M2747 :: ?M2748) (?M2747 :: ?M2749)"
with "OnOne2All P (i' ++ i) tl tl'".
Level 0: Backtrace:

In environment
A : Type
B : Type
P : B → A → A → Type
i, i' : list B
tl, tl' : list A
X : OnOne2All P i tl tl'
H : #|i'| = 0
Unable to unify
 "OnOne2All ?M2744 (?M2745 :: ?M2746) (?M2747 :: ?M2748) (?M2747 :: ?M2749)"
with "OnOne2All P (i' ++ i) tl tl'".