Goal:
    A : Type  l : list (option A)  f : A -> A
  ============================
   (map_option_out (map (option_map f) l) =
    option_map (map f) (map_option_out l))


DEBUG:Going to execute:
induction l

Goals:
    A : Type  f : A -> A
  ============================
   (map_option_out (map (option_map f) []) =
    option_map (map f) (map_option_out []))

  
  A : Type
  a : option A
  l : list (option A)
  f : A -> A
  IHl : map_option_out (map (option_map f) l) =
        option_map (map f) (map_option_out l)
  ============================
   (map_option_out (map (option_map f) (a :: l)) =
    option_map (map f) (map_option_out (a :: l)))


DEBUG:Going to execute:
simpl
DEBUG LTAC Evaluated term: l

Goals:
    A : Type  f : A -> A
  ============================
   (Some [] = Some [])

  
  A : Type
  a : option A
  l : list (option A)
  f : A -> A
  IHl : map_option_out (map (option_map f) l) =
        option_map (map f) (map_option_out l)
  ============================
   (match option_map f a with
    | Some hd =>
        match map_option_out (map (option_map f) l) with
        | Some tl => Some (hd :: tl)
        | None => None
        end
    | None => None
    end =
    option_map (map f)
      match a with
      | Some hd =>
          match map_option_out l with
          | Some tl => Some (hd :: tl)
          | None => None
          end
      | None => None
      end)


DEBUG:Going to execute:
auto

Goals:
    A : Type  f : A -> A
  ============================
   (Some [] = Some [])

  
  A : Type
  a : option A
  l : list (option A)
  f : A -> A
  IHl : map_option_out (map (option_map f) l) =
        option_map (map f) (map_option_out l)
  ============================
   (match option_map f a with
    | Some hd =>
        match map_option_out (map (option_map f) l) with
        | Some tl => Some (hd :: tl)
        | None => None
        end
    | None => None
    end =
    option_map (map f)
      match a with
      | Some hd =>
          match map_option_out l with
          | Some tl => Some (hd :: tl)
          | None => None
          end
      | None => None
      end)


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