Goal:
  
  A : Type
  a : A
  l : list A
  IHl : ∀ n : nat, (∑ x : A, nth_error l n = Some x) <~> n < #|l|
  n : nat
  ============================
   ((∑ x : A, nth_error l n = Some x) <~> S n < S #|l|)


DEBUG:Going to execute:
destruct (IHl n); split