case _ c1 c2 =>
  intro a2
  cases x1_mem
  case inl x1_mem_left =>
    contradiction
  case inr x1_mem_right =>
    cases x2_mem
    case inl x2_mem_left =>
      contradiction
    case inr x2_mem_right =>
      simp only [List.InjOn] at a1_left
      apply a1_left x1_mem_right x2_mem_right a2
α : Type
inst✝ : DecidableEq α
xs_hd : α
xs_tl : List α
ys_hd : α
ys_tl : List α
h1 : xs_tl.length = ys_tl.length
h2_left : xs_hd ∉ xs_tl
h2_right : xs_tl.Nodup
h3_left : ys_hd ∉ ys_tl
h3_right : ys_tl.Nodup
f : α → α
a1_left : InjOn f xs_tl
a1_right : map f xs_tl = ys_tl
x1 x2 : α
x1_mem : x1 = xs_hd ∨ x1 ∈ xs_tl
x2_mem : x2 = xs_hd ∨ x2 ∈ xs_tl
c1 : ¬x1 = xs_hd
c2 : ¬x2 = xs_hd
⊢ f x1 = f x2 → x1 = x2
no goals