Goal:
  
  A : Type
  B : Type
  C : Type
  f : option A -> option B -> option C
  f_None_None : f None None = None
  m2 : tree B
  i : positive
  ============================
   (option_map (fun b : B => f None (Some b)) (get i m2) = f None (get i m2))


DEBUG:Going to execute:
destruct (get i m2)
DEBUG LTAC Evaluated term: gmap_filter
DEBUG LTAC Evaluated term: gmap_filter

Goals:
  
  A : Type
  B : Type
  C : Type
  f : option A -> option B -> option C
  f_None_None : f None None = None
  m2 : tree B
  i : positive
  b : B
  ============================
   (option_map (fun b : B => f None (Some b)) (Some b) = f None (Some b))

  
  A : Type
  B : Type
  C : Type
  f : option A -> option B -> option C
  f_None_None : f None None = None
  m2 : tree B
  i : positive
  ============================
   (option_map (fun b : B => f None (Some b)) None = f None None)


DEBUG:Going to execute:
auto
DEBUG LTAC Evaluated term: (get i m2)

Goals:
  
  A : Type
  B : Type
  C : Type
  f : option A -> option B -> option C
  f_None_None : f None None = None
  m2 : tree B
  i : positive
  b : B
  ============================
   (option_map (fun b : B => f None (Some b)) (Some b) = f None (Some b))

  
  A : Type
  B : Type
  C : Type
  f : option A -> option B -> option C
  f_None_None : f None None = None
  m2 : tree B
  i : positive
  ============================
   (option_map (fun b : B => f None (Some b)) None = f None None)


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