Goal:
    A : Type  d : A  n : nat  v : A  H : d = v
  ============================
   ((None = Some v) + (None = None ∧ v = d))%type


DEBUG:Going to execute:
match goal with
           | H:¬ _ |- _ => solve [ case H; trivial ]
           end
Level 1: Backtrace:

No such assumption.
Level 0: Backtrace:

No such assumption.
Level 0: Backtrace:

No such assumption.
Level 0: Backtrace:

No such assumption.

Goals:
    A : Type  d : A
  ============================
   (∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))

    A : Type  d : A
  ============================
   (nat → ∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))


DEBUG:Going to execute:
now right
Level 0: Backtrace:

No matching clauses for match.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.
Level 1: Backtrace:

No applicable tactic.
Level 0: Backtrace:

No applicable tactic.

Goals:
    A : Type  d : A
  ============================
   (∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))

    A : Type  d : A
  ============================
   (nat → ∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))


DEBUG:Going to execute:
right

Goals:
    A : Type  d : A
  ============================
   (∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))

    A : Type  d : A
  ============================
   (nat → ∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))


DEBUG:Going to execute:
fun => <coq-core.plugins.ltac::right@0>

Goals:
    A : Type  d : A
  ============================
   (∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))

    A : Type  d : A
  ============================
   (nat → ∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))


DEBUG:Going to execute:
t; easy

Goals:
    A : Type  d : A
  ============================
   (∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))

    A : Type  d : A
  ============================
   (nat → ∀ v : A, d = v → (None = Some v) + (None = None ∧ v = d))


DEBUG:Going to execute:
t

Goals:
    A : Type  d : A  v : A  H : d = v
  ============================
   (None = None ∧ v = d)

    A : Type  d : A  n : nat  v : A  H : d = v
  ============================
   (None = None ∧ v = d)


DEBUG:Going to execute:
easy

Goals:
    A : Type  d : A  v : A  H : d = v
  ============================
   (None = None ∧ v = d)

    A : Type  d : A  n : nat  v : A  H : d = v
  ============================
   (None = None ∧ v = d)


DEBUG:Going to execute:
easy0 || (solve [ intuition eauto  3 with core terms ])