ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Subgroup.smul_diff'
theorem smul_diff' (h : H) :
    diff (MonoidHom.id H) α (op (h : G) • β) = diff (MonoidHom.id H) α β * h ^ H.index 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} [H.IsCommutative] [H.FiniteIndex] (α β : ↑(Subgroup.leftTransversals ↑H)) [H.Normal] (h : ↥H)
Goal: Subgroup.leftTransversals.diff (MonoidHom.id ↥H) α (MulOpposite.op ↑h • β) =
  Subgroup.leftTransversals.diff (MonoidHom.id ↥H) α β * h ^ H.index
-- Subgroup.eq_one_of_smul_eq_one
theorem eq_one_of_smul_eq_one (hH : Nat.Coprime (Nat.card H) H.index) (α : H.QuotientDiff)
    (h : H) : h • α = α → h = 1 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} [H.IsCommutative] [H.FiniteIndex] [H.Normal] (hH : (Nat.card ↥H).Coprime H.index) (α : H.QuotientDiff) (h : ↥H)
Goal: h • α = α → h = 1
-- Subgroup.exists_smul_eq
theorem exists_smul_eq (hH : Nat.Coprime (Nat.card H) H.index) (α β : H.QuotientDiff) :
    ∃ h : H, h • α = β 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} [H.IsCommutative] [H.FiniteIndex] [H.Normal] (hH : (Nat.card ↥H).Coprime H.index) (α β : H.QuotientDiff)
Goal: ∃ h, h • α = β
-- Subgroup.isComplement'_stabilizer_of_coprime
theorem isComplement'_stabilizer_of_coprime {α : H.QuotientDiff}
    (hH : Nat.Coprime (Nat.card H) H.index) : IsComplement' H (stabilizer G α) 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} [H.IsCommutative] [H.FiniteIndex] [H.Normal] {α : H.QuotientDiff} (hH : (Nat.card ↥H).Coprime H.index)
Goal: H.IsComplement' (MulAction.stabilizer G α)
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.exists_right_complement'_of_coprime_aux
private theorem exists_right_complement'_of_coprime_aux (hH : Nat.Coprime (Nat.card H) H.index) :
    ∃ K : Subgroup G, IsComplement' H K 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} [H.IsCommutative] [H.FiniteIndex] [H.Normal] (hH : (Nat.card ↥H).Coprime H.index)
Goal: ∃ K, H.IsComplement' K
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step0
private theorem step0 : N ≠ ⊥ 
Arguments: {G : Type u} [Group G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H)
Goal: N ≠ ⊥
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step1
private theorem step1 (K : Subgroup G) (hK : K ⊔ N = ⊤) : K = ⊤ 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H') (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H) (K : Subgroup G) (hK : K ⊔ N = ⊤)
Goal: K = ⊤
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step2
private theorem step2 (K : Subgroup G) [K.Normal] (hK : K ≤ N) : K = ⊥ ∨ K = N 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H') (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H) (K : Subgroup G) [K.Normal] (hK : K ≤ N)
Goal: K = ⊥ ∨ K = N
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step3
private theorem step3 (K : Subgroup N) [(K.map N.subtype).Normal] : K = ⊥ ∨ K = ⊤ 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H') (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H) (K : Subgroup ↥N) [(Subgroup.map N.subtype K).Normal]
Goal: K = ⊥ ∨ K = ⊤
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step4
private theorem step4 : (Nat.card N).minFac.Prime 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H)
Goal: Nat.Prime (Nat.card ↥N).minFac
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step5
private theorem step5 {P : Sylow (Nat.card N).minFac N} : P.1 ≠ ⊥ 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H) {P : Sylow (Nat.card ↥N).minFac ↥N}
Goal: ↑P ≠ ⊥
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.SchurZassenhausInduction.step6
private theorem step6 : IsPGroup (Nat.card N).minFac N 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H') (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H)
Goal: IsPGroup (Nat.card ↥N).minFac ↥N
-- Subgroup.SchurZassenhausInduction.step7
theorem step7 : IsCommutative N 
Arguments: {G : Type u} [Group G] [Finite G] {N : Subgroup G} [N.Normal] (h1 : (Nat.card ↥N).Coprime N.index) (h2 :
  ∀ (G' : Type u) [inst : Group G'] [inst_1 : Finite G'],
    Nat.card G' < Nat.card G →
      ∀ {N' : Subgroup G'} [inst_2 : N'.Normal], (Nat.card ↥N').Coprime N'.index → ∃ H', N'.IsComplement' H') (h3 : ∀ (H : Subgroup G), ¬N.IsComplement' H)
Goal: N.IsCommutative
-- _private.Mathlib.GroupTheory.SchurZassenhaus.0.Subgroup.exists_right_complement'_of_coprime_aux'
private theorem exists_right_complement'_of_coprime_aux' [Finite G] (hG : Nat.card G = n)
    {N : Subgroup G} [N.Normal] (hN : Nat.Coprime (Nat.card N) N.index) :
    ∃ H : Subgroup G, IsComplement' N H 
Arguments: {n : ℕ} {G : Type u} [Group G] [Finite G] (hG : Nat.card G = n) {N : Subgroup G} [N.Normal] (hN : (Nat.card ↥N).Coprime N.index)
Goal: ∃ H, N.IsComplement' H
-- Subgroup.exists_right_complement'_of_coprime
theorem exists_right_complement'_of_coprime {N : Subgroup G} [N.Normal]
    (hN : Nat.Coprime (Nat.card N) N.index) : ∃ H : Subgroup G, IsComplement' N H 
Arguments: {G : Type u} [Group G] {N : Subgroup G} [N.Normal] (hN : (Nat.card ↥N).Coprime N.index)
Goal: ∃ H, N.IsComplement' H
-- Subgroup.exists_left_complement'_of_coprime
theorem exists_left_complement'_of_coprime {N : Subgroup G} [N.Normal]
    (hN : Nat.Coprime (Nat.card N) N.index) : ∃ H : Subgroup G, IsComplement' H N 
Arguments: {G : Type u} [Group G] {N : Subgroup G} [N.Normal] (hN : (Nat.card ↥N).Coprime N.index)
Goal: ∃ H, H.IsComplement' N
-- LawfulBifunctor.id_bimap
class LawfulBifunctor (F : Type u₀ → Type u₁ → Type u₂) [Bifunctor F] : Prop where
  id_bimap : ∀ {α β} (x : F α β), bimap id id x = x
  bimap_bimap :
    ∀ {α₀ α₁ α₂ β₀ β₁ β₂} (f : α₀ → α₁) (f' : α₁ → α₂) (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α₀ β₀),
      bimap f' g' (bimap f g x) = bimap (f' ∘ f) (g' ∘ g) x
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [self : LawfulBifunctor F] {α : Type u₀} {β : Type u₁} (x : F α β)
Goal: bimap id id x = x
-- LawfulBifunctor.bimap_bimap
class LawfulBifunctor (F : Type u₀ → Type u₁ → Type u₂) [Bifunctor F] : Prop where
  id_bimap : ∀ {α β} (x : F α β), bimap id id x = x
  bimap_bimap :
    ∀ {α₀ α₁ α₂ β₀ β₁ β₂} (f : α₀ → α₁) (f' : α₁ → α₂) (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α₀ β₀),
      bimap f' g' (bimap f g x) = bimap (f' ∘ f) (g' ∘ g) x
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [self : LawfulBifunctor F] {α₀ α₁ α₂ : Type u₀} {β₀ β₁ β₂ : Type u₁} (f : α₀ → α₁) (f' : α₁ → α₂) (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α₀ β₀)
Goal: bimap f' g' (bimap f g x) = bimap (f' ∘ f) (g' ∘ g) x
-- Bifunctor.id_fst
@[higher_order fst_id]
theorem id_fst : ∀ {α β} (x : F α β), fst id x = x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β : Type u₁} (x : F α β)
Goal: Bifunctor.fst id x = x
-- Bifunctor.fst_id
@[higher_order fst_id]
theorem id_fst : ∀ {α β} (x : F α β), fst id x = x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β : Type u₁}
Goal: Bifunctor.fst id = id
-- Bifunctor.snd_id
@[higher_order snd_id]
theorem id_snd : ∀ {α β} (x : F α β), snd id x = x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β : Type u₁}
Goal: Bifunctor.snd id = id
-- Bifunctor.id_snd
@[higher_order snd_id]
theorem id_snd : ∀ {α β} (x : F α β), snd id x = x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β : Type u₁} (x : F α β)
Goal: Bifunctor.snd id x = x
-- Bifunctor.comp_fst
@[higher_order fst_comp_fst]
theorem comp_fst {α₀ α₁ α₂ β} (f : α₀ → α₁) (f' : α₁ → α₂) (x : F α₀ β) :
    fst f' (fst f x) = fst (f' ∘ f) x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ α₂ : Type u₀} {β : Type u₁} (f : α₀ → α₁) (f' : α₁ → α₂) (x : F α₀ β)
Goal: Bifunctor.fst f' (Bifunctor.fst f x) = Bifunctor.fst (f' ∘ f) x
-- Bifunctor.fst_comp_fst
@[higher_order fst_comp_fst]
theorem comp_fst {α₀ α₁ α₂ β} (f : α₀ → α₁) (f' : α₁ → α₂) (x : F α₀ β) :
    fst f' (fst f x) = fst (f' ∘ f) x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ α₂ : Type u₀} {β : Type u₁} (f : α₀ → α₁) (f' : α₁ → α₂)
Goal: Bifunctor.fst f' ∘ Bifunctor.fst f = Bifunctor.fst (f' ∘ f)
-- Bifunctor.fst_comp_snd
@[higher_order fst_comp_snd]
theorem fst_snd {α₀ α₁ β₀ β₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀) :
    fst f (snd f' x) = bimap f f' x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ : Type u₀} {β₀ β₁ : Type u₁} (f : α₀ → α₁) (f' : β₀ → β₁)
Goal: Bifunctor.fst f ∘ Bifunctor.snd f' = bimap f f'
-- Bifunctor.fst_snd
@[higher_order fst_comp_snd]
theorem fst_snd {α₀ α₁ β₀ β₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀) :
    fst f (snd f' x) = bimap f f' x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ : Type u₀} {β₀ β₁ : Type u₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀)
Goal: Bifunctor.fst f (Bifunctor.snd f' x) = bimap f f' x
-- Bifunctor.snd_comp_fst
@[higher_order snd_comp_fst]
theorem snd_fst {α₀ α₁ β₀ β₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀) :
    snd f' (fst f x) = bimap f f' x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ : Type u₀} {β₀ β₁ : Type u₁} (f : α₀ → α₁) (f' : β₀ → β₁)
Goal: Bifunctor.snd f' ∘ Bifunctor.fst f = bimap f f'
-- Bifunctor.snd_fst
@[higher_order snd_comp_fst]
theorem snd_fst {α₀ α₁ β₀ β₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀) :
    snd f' (fst f x) = bimap f f' x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α₀ α₁ : Type u₀} {β₀ β₁ : Type u₁} (f : α₀ → α₁) (f' : β₀ → β₁) (x : F α₀ β₀)
Goal: Bifunctor.snd f' (Bifunctor.fst f x) = bimap f f' x
-- Bifunctor.snd_comp_snd
@[higher_order snd_comp_snd]
theorem comp_snd {α β₀ β₁ β₂} (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α β₀) :
    snd g' (snd g x) = snd (g' ∘ g) x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β₀ β₁ β₂ : Type u₁} (g : β₀ → β₁) (g' : β₁ → β₂)
Goal: Bifunctor.snd g' ∘ Bifunctor.snd g = Bifunctor.snd (g' ∘ g)
-- Bifunctor.comp_snd
@[higher_order snd_comp_snd]
theorem comp_snd {α β₀ β₁ β₂} (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α β₀) :
    snd g' (snd g x) = snd (g' ∘ g) x 
Arguments: {F : Type u₀ → Type u₁ → Type u₂} [Bifunctor F] [LawfulBifunctor F] {α : Type u₀} {β₀ β₁ β₂ : Type u₁} (g : β₀ → β₁) (g' : β₁ → β₂) (x : F α β₀)
Goal: Bifunctor.snd g' (Bifunctor.snd g x) = Bifunctor.snd (g' ∘ g) x
-- Applicative.map_seq_map
theorem Applicative.map_seq_map (f : α → β → γ) (g : σ → β) (x : F α) (y : F σ) :
    f <$> x <*> g <$> y = ((· ∘ g) ∘ f) <$> x <*> y 
Arguments: {F : Type u → Type v} [Applicative F] [LawfulApplicative F] {α β γ σ : Type u} (f : α → β → γ) (g : σ → β) (x : F α) (y : F σ)
Goal: (Seq.seq (f <$> x) fun x => g <$> y) = Seq.seq (((fun x => x ∘ g) ∘ f) <$> x) fun x => y
-- Applicative.pure_seq_eq_map'
theorem Applicative.pure_seq_eq_map' (f : α → β) : ((pure f : F (α → β)) <*> ·) = (f <$> ·) 
Arguments: {F : Type u → Type v} [Applicative F] [LawfulApplicative F] {α β : Type u} (f : α → β)
Goal: (fun x => Seq.seq (pure f) fun x_1 => x) = fun x => f <$> x
-- Applicative.ext
theorem Applicative.ext {F} :
    ∀ {A1 : Applicative F} {A2 : Applicative F} [@LawfulApplicative F A1] [@LawfulApplicative F A2],
      (∀ {α : Type u} (x : α), @Pure.pure _ A1.toPure _ x = @Pure.pure _ A2.toPure _ x) →
      (∀ {α β : Type u} (f : F (α → β)) (x : F α),
          @Seq.seq _ A1.toSeq _ _ f (fun _ => x) = @Seq.seq _ A2.toSeq _ _ f (fun _ => x)) →
      A1 = A2
  
Arguments: {F : Type u → Type u_1} {A1 A2 : Applicative F} [LawfulApplicative F] [LawfulApplicative F]
Goal: (∀ {α : Type u} (x : α), pure x = pure x) →
  (∀ {α β : Type u} (f : F (α → β)) (x : F α), (Seq.seq f fun x_1 => x) = Seq.seq f fun x_1 => x) → A1 = A2
-- Functor.Comp.map_pure
theorem map_pure (f : α → β) (x : α) : (f <$> pure x : Comp F G β) = pure (f x) 
Arguments: {F : Type u → Type w} {G : Type v → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] {α β : Type v} (f : α → β) (x : α)
Goal: f <$> pure x = pure (f x)
-- Functor.Comp.seq_pure
theorem seq_pure (f : Comp F G (α → β)) (x : α) : f <*> pure x = (fun g : α → β => g x) <$> f 
Arguments: {F : Type u → Type w} {G : Type v → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] {α β : Type v} (f : Functor.Comp F G (α → β)) (x : α)
Goal: (Seq.seq f fun x_1 => pure x) = (fun g => g x) <$> f
-- Functor.Comp.seq_assoc
theorem seq_assoc (x : Comp F G α) (f : Comp F G (α → β)) (g : Comp F G (β → γ)) :
    g <*> (f <*> x) = @Function.comp α β γ <$> g <*> f <*> x 
Arguments: {F : Type u → Type w} {G : Type v → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] {α β γ : Type v} (x : Functor.Comp F G α) (f : Functor.Comp F G (α → β)) (g : Functor.Comp F G (β → γ))
Goal: (Seq.seq g fun x_1 => Seq.seq f fun x_2 => x) = Seq.seq (Seq.seq (Function.comp <$> g) fun x => f) fun x_1 => x
-- Functor.Comp.pure_seq_eq_map
theorem pure_seq_eq_map (f : α → β) (x : Comp F G α) : pure f <*> x = f <$> x 
Arguments: {F : Type u → Type w} {G : Type v → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] {α β : Type v} (f : α → β) (x : Functor.Comp F G α)
Goal: (Seq.seq (pure f) fun x_1 => x) = f <$> x
-- Functor.Comp.applicative_id_comp
theorem applicative_id_comp {F} [AF : Applicative F] [LawfulApplicative F] :
    @instApplicativeComp Id F _ _ = AF 
Arguments: {F : Type u_1 → Type u_2} [AF : Applicative F] [LawfulApplicative F]
Goal: Functor.Comp.instApplicativeComp = AF
-- Functor.Comp.applicative_comp_id
theorem applicative_comp_id {F} [AF : Applicative F] [LawfulApplicative F] :
    @Comp.instApplicativeComp F Id _ _ = AF 
Arguments: {F : Type u_1 → Type u_2} [AF : Applicative F] [LawfulApplicative F]
Goal: Functor.Comp.instApplicativeComp = AF
-- Comp.seq_mk
@[functor_norm]
theorem Comp.seq_mk {α β : Type w} {f : Type u → Type v} {g : Type w → Type u} [Applicative f]
    [Applicative g] (h : f (g (α → β))) (x : f (g α)) :
    Comp.mk h <*> Comp.mk x = Comp.mk ((· <*> ·) <$> h <*> x) 
Arguments: {α β : Type w} {f : Type u → Type v} {g : Type w → Type u} [Applicative f] [Applicative g] (h : f (g (α → β))) (x : f (g α))
Goal: (Seq.seq (Functor.Comp.mk h) fun x_1 => Functor.Comp.mk x) =
  Functor.Comp.mk (Seq.seq ((fun x x_1 => Seq.seq x fun x => x_1) <$> h) fun x_1 => x)
-- Traversable.pureTransformation_apply
@[simp]
theorem pureTransformation_apply {α} (x : id α) : PureTransformation F x = pure x 
Arguments: (F : Type u → Type u) [Applicative F] [LawfulApplicative F] {α : Type u} (x : id α)
Goal: (fun {α} => (Traversable.PureTransformation F).app α) x = pure x
-- Traversable.map_eq_traverse_id
theorem map_eq_traverse_id : map (f := t) f = traverse (m := Id) (pure ∘ f) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {β γ : Type u} (f : β → γ)
Goal: Functor.map f = traverse (pure ∘ f)
-- Traversable.map_traverse
theorem map_traverse (x : t α) : map f <$> traverse g x = traverse (map f ∘ g) x 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F : Type u → Type u} [Applicative F] [LawfulApplicative F] {α β γ : Type u} (g : α → F β) (f : β → γ) (x : t α)
Goal: Functor.map f <$> traverse g x = traverse (Functor.map f ∘ g) x
-- Traversable.traverse_map
theorem traverse_map (f : β → F γ) (g : α → β) (x : t α) :
    traverse f (g <$> x) = traverse (f ∘ g) x 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F : Type u → Type u} [Applicative F] [LawfulApplicative F] {α β γ : Type u} (f : β → F γ) (g : α → β) (x : t α)
Goal: traverse f (g <$> x) = traverse (f ∘ g) x
-- Traversable.pure_traverse
theorem pure_traverse (x : t α) : traverse pure x = (pure x : F (t α)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F : Type u → Type u} [Applicative F] [LawfulApplicative F] {α : Type u} (x : t α)
Goal: traverse pure x = pure x
-- Traversable.id_sequence
theorem id_sequence (x : t α) : sequence (f := Id) (pure <$> x) = pure x 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {α : Type u} (x : t α)
Goal: sequence (pure <$> x) = pure x
-- Traversable.comp_sequence
theorem comp_sequence (x : t (F (G α))) :
    sequence (Comp.mk <$> x) = Comp.mk (sequence <$> sequence x) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [LawfulApplicative F] [Applicative G] [LawfulApplicative G] {α : Type u} (x : t (F (G α)))
Goal: sequence (Functor.Comp.mk <$> x) = Functor.Comp.mk (sequence <$> sequence x)
-- Traversable.naturality'
theorem naturality' (η : ApplicativeTransformation F G) (x : t (F α)) :
    η (sequence x) = sequence (@η _ <$> x) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [LawfulApplicative F] [Applicative G] [LawfulApplicative G] {α : Type u} (η : ApplicativeTransformation F G) (x : t (F α))
Goal: (fun {α} => η.app α) (sequence x) = sequence ((fun {α} => η.app α) <$> x)
-- Traversable.traverse_id
@[functor_norm]
theorem traverse_id : traverse pure = (pure : t α → Id (t α)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {α : Type u}
Goal: traverse pure = pure
-- Traversable.traverse_comp
@[functor_norm]
theorem traverse_comp (g : α → F β) (h : β → G γ) :
    traverse (Comp.mk ∘ map h ∘ g) =
      (Comp.mk ∘ map (traverse h) ∘ traverse g : t α → Comp F G (t γ)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [LawfulApplicative F] [Applicative G] [LawfulApplicative G] {α β γ : Type u} (g : α → F β) (h : β → G γ)
Goal: traverse (Functor.Comp.mk ∘ Functor.map h ∘ g) = Functor.Comp.mk ∘ Functor.map (traverse h) ∘ traverse g
-- Traversable.traverse_eq_map_id'
theorem traverse_eq_map_id' (f : β → γ) :
    traverse (m := Id) (pure ∘ f) = pure ∘ (map f : t β → t γ) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {β γ : Type u} (f : β → γ)
Goal: traverse (pure ∘ f) = pure ∘ Functor.map f
-- Traversable.traverse_map'
theorem traverse_map' (g : α → β) (h : β → G γ) :
    traverse (h ∘ g) = (traverse h ∘ map g : t α → G (t γ)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {G : Type u → Type u} [Applicative G] [LawfulApplicative G] {α β γ : Type u} (g : α → β) (h : β → G γ)
Goal: traverse (h ∘ g) = traverse h ∘ Functor.map g
-- Traversable.map_traverse'
theorem map_traverse' (g : α → G β) (h : β → γ) :
    traverse (map h ∘ g) = (map (map h) ∘ traverse g : t α → G (t γ)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {G : Type u → Type u} [Applicative G] [LawfulApplicative G] {α β γ : Type u} (g : α → G β) (h : β → γ)
Goal: traverse (Functor.map h ∘ g) = Functor.map (Functor.map h) ∘ traverse g
-- Traversable.naturality_pf
theorem naturality_pf (η : ApplicativeTransformation F G) (f : α → F β) :
    traverse (@η _ ∘ f) = @η _ ∘ (traverse f : t α → F (t β)) 
Arguments: {t : Type u → Type u} [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [LawfulApplicative F] [Applicative G] [LawfulApplicative G] {α β : Type u} (η : ApplicativeTransformation F G) (f : α → F β)
Goal: traverse ((fun {α} => η.app α) ∘ f) = (fun {α} => η.app α) ∘ traverse f
-- Equiv.id_map
protected theorem id_map {α : Type u} (x : t' α) : Equiv.map eqv id x = x 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Functor t] [LawfulFunctor t] {α : Type u} (x : t' α)
Goal: Equiv.map eqv id x = x
-- Equiv.comp_map
protected theorem comp_map {α β γ : Type u} (g : α → β) (h : β → γ) (x : t' α) :
    Equiv.map eqv (h ∘ g) x = Equiv.map eqv h (Equiv.map eqv g x) 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Functor t] [LawfulFunctor t] {α β γ : Type u} (g : α → β) (h : β → γ) (x : t' α)
Goal: Equiv.map eqv (h ∘ g) x = Equiv.map eqv h (Equiv.map eqv g x)
-- Equiv.lawfulFunctor
protected theorem lawfulFunctor : @LawfulFunctor _ (Equiv.functor eqv) 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Functor t] [LawfulFunctor t]
Goal: LawfulFunctor t'
-- Equiv.lawfulFunctor'
protected theorem lawfulFunctor' [F : Functor t']
    (h₀ : ∀ {α β} (f : α → β), Functor.map f = Equiv.map eqv f)
    (h₁ : ∀ {α β} (f : β), Functor.mapConst f = (Equiv.map eqv ∘ Function.const α) f) :
    LawfulFunctor t' 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Functor t] [LawfulFunctor t] [F : Functor t'] (h₀ : ∀ {α β : Type u} (f : α → β), Functor.map f = Equiv.map eqv f) (h₁ : ∀ {α β : Type u} (f : β), Functor.mapConst f = (Equiv.map eqv ∘ Function.const α) f)
Goal: LawfulFunctor t'
-- Equiv.traverse_def
theorem traverse_def (f : α → m β) (x : t' α) :
    Equiv.traverse eqv f x = eqv β <$> traverse f ((eqv α).symm x) 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Traversable t] {m : Type u → Type u} [Applicative m] {α β : Type u} (f : α → m β) (x : t' α)
Goal: Equiv.traverse eqv f x = ⇑(eqv β) <$> traverse f ((eqv α).symm x)
-- Equiv.id_traverse
protected theorem id_traverse (x : t' α) : Equiv.traverse eqv (pure : α → Id α) x = x 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Traversable t] [LawfulTraversable t] {α : Type u} (x : t' α)
Goal: Equiv.traverse eqv pure x = x
-- Equiv.traverse_eq_map_id
protected theorem traverse_eq_map_id (f : α → β) (x : t' α) :
    Equiv.traverse eqv ((pure : β → Id β) ∘ f) x = pure (Equiv.map eqv f x) 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Traversable t] [LawfulTraversable t] {α β : Type u} (f : α → β) (x : t' α)
Goal: Equiv.traverse eqv (pure ∘ f) x = pure (Equiv.map eqv f x)
-- Equiv.comp_traverse
protected theorem comp_traverse (f : β → F γ) (g : α → G β) (x : t' α) :
    Equiv.traverse eqv (Comp.mk ∘ Functor.map f ∘ g) x =
      Comp.mk (Equiv.traverse eqv f <$> Equiv.traverse eqv g x) 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] {α β γ : Type u} (f : β → F γ) (g : α → G β) (x : t' α)
Goal: Equiv.traverse eqv (Functor.Comp.mk ∘ Functor.map f ∘ g) x =
  Functor.Comp.mk (Equiv.traverse eqv f <$> Equiv.traverse eqv g x)
-- Equiv.naturality
protected theorem naturality (f : α → F β) (x : t' α) :
    η (Equiv.traverse eqv f x) = Equiv.traverse eqv (@η _ ∘ f) x 
Arguments: {t t' : Type u → Type u} (eqv : (α : Type u) → t α ≃ t' α) [Traversable t] [LawfulTraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] (η : ApplicativeTransformation F G) {α β : Type u} (f : α → F β) (x : t' α)
Goal: (fun {α} => η.app α) (Equiv.traverse eqv f x) = Equiv.traverse eqv ((fun {α} => η.app α) ∘ f) x