Goal:
  
  T : Type
  Listable_T : Listable T
  FinitelyListable_T : FinitelyListable T
  v : T
  x : T
  xs : list T
  n : nat
  IHxs : nth_error xs (Init.Nat.pred n) = Some v ->
         find_index v = S (find_index x) + Init.Nat.pred n
  Hnth : nth_error (x :: xs) n = Some v
  Hfold2 : is_true
             (forallb (fun '(n, t) => n == find_index t)
                (combine (seq (S (find_index x)) (length xs)) xs))
  ============================
   (find_index v = find_index x + n)


DEBUG:Going to execute:
destruct n as [| n]

Goals:
  
  T : Type
  Listable_T : Listable T
  FinitelyListable_T : FinitelyListable T
  v : T
  x : T
  xs : list T
  IHxs : nth_error xs (Init.Nat.pred 0) = Some v ->
         find_index v = S (find_index x) + Init.Nat.pred 0
  Hnth : nth_error (x :: xs) 0 = Some v
  Hfold2 : is_true
             (forallb (fun '(n, t) => n == find_index t)
                (combine (seq (S (find_index x)) (length xs)) xs))
  ============================
   (find_index v = find_index x + 0)

  
  T : Type
  Listable_T : Listable T
  FinitelyListable_T : FinitelyListable T
  v : T
  x : T
  xs : list T
  n : nat
  IHxs : nth_error xs (Init.Nat.pred (S n)) = Some v ->
         find_index v = S (find_index x) + Init.Nat.pred (S n)
  Hnth : nth_error (x :: xs) (S n) = Some v
  Hfold2 : is_true
             (forallb (fun '(n, t) => n == find_index t)
                (combine (seq (S (find_index x)) (length xs)) xs))
  ============================
   (find_index v = find_index x + S n)


DEBUG:Going to execute:
cbn in *
DEBUG LTAC Evaluated term: n