Goal:
  
  A : Type
  l : list A
  P : A → bool
  n : nat
  d : A
  H : is_true (forallb P l)
  HH : #|l| ≤ n
  ============================
   ({∃ x : A, nth n l d = x ∧ P x} + {nth n l d = d})


DEBUG:Going to execute:
rewrite nth_overflow; try assumption
DEBUG LTAC Evaluated term: (le_lt_dec #|l| n)