Goal:
  
  A : Type
  m : nat
  x : A
  IHm : ∀ (n : nat) (l : list A),
          nth_error (firstn n l) m = Some x → nth_error l m = Some x
  n : nat
  a : A
  l : list A
  H : nth_error (firstn n l) m = Some x
  ============================
   (nth_error l m = Some x)


DEBUG:Going to execute:
inversion H

Goals:
    A : Type  x : A  n : nat  a : A  l : list A  H : Some a = Some x
  ============================
   (Some a = Some x)

  
  A : Type
  m : nat
  x : A
  IHm : ∀ (n : nat) (l : list A),
          nth_error (firstn n l) m = Some x → nth_error l m = Some x
  n : nat
  a : A
  l : list A
  H : nth_error (firstn n l) m = Some x
  ============================
   (nth_error l m = Some x)


DEBUG:Going to execute:
eauto
Level 0: Backtrace:

Proof is not complete.
Level 0: Backtrace:

No applicable tactic.

Goals:
    A : Type  x : A  n : nat  a : A  l : list A  H : Some a = Some x
  ============================
   (Some a = Some x)

  
  A : Type
  m : nat
  x : A
  IHm : ∀ (n : nat) (l : list A),
          nth_error (firstn n l) m = Some x → nth_error l m = Some x
  n : nat
  a : A
  l : list A
  H : nth_error (firstn n l) m = Some x
  ============================
   (nth_error l m = Some x)


DEBUG:Going to execute:
<coq-core.plugins.ltac::eauto@0> $1 $2 $3

COQC theories/MCProd.v