Goal:
  
  A : Type
  a : A
  l1 : list A
  x : A
  y : A
  IHl1 : ∀ l2 : list A, l1 ++ [x] = l2 ++ [y] → l1 = l2 ∧ x = y
  H : a :: l1 ++ [x] = [] ++ [y]
  H1 : a = y
  H2 : l1 ++ [x] = []
  ============================
   (y :: l1 = l1 ++ [x] ∧ x = y)


DEBUG:Going to execute:
subst