Goal:
    A : Type  B : Type  f : A -> B  g : A -> B  H : forall x : A, f x = g x
  ============================
   (forall z : option A, option_map f z = option_map g z)


DEBUG:Going to execute:
intros []

Goals:
  
  A : Type
  B : Type
  f : A -> B
  g : A -> B
  H : forall x : A, f x = g x
  a : A
  ============================
   (option_map f (Some a) = option_map g (Some a))

    A : Type  B : Type  f : A -> B  g : A -> B  H : forall x : A, f x = g x
  ============================
   (option_map f None = option_map g None)


DEBUG:Going to execute:
cbn

Goals:
  
  A : Type
  B : Type
  f : A -> B
  g : A -> B
  H : forall x : A, f x = g x
  a : A
  ============================
   (Some (f a) = Some (g a))

    A : Type  B : Type  f : A -> B  g : A -> B  H : forall x : A, f x = g x
  ============================
   (None = None)


DEBUG:Going to execute:
congruence

Goals:
  
  A : Type
  B : Type
  f : A -> B
  g : A -> B
  H : forall x : A, f x = g x
  a : A
  ============================
   (Some (f a) = Some (g a))

    A : Type  B : Type  f : A -> B  g : A -> B  H : forall x : A, f x = g x
  ============================
   (None = None)


DEBUG:Going to execute:
<coq-core.plugins.cc::cc@0> $1