ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddSubgroup.mem_normalizer_iff''
@[to_additive]
theorem mem_normalizer_iff'' {g : G} : g ∈ H.normalizer ↔ ∀ h : G, h ∈ H ↔ g⁻¹ * h * g ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {g : G}
Goal: g ∈ H.normalizer ↔ ∀ (h : G), h ∈ H ↔ -g + h + g ∈ H
-- AddSubgroup.mem_normalizer_iff'
@[to_additive]
theorem mem_normalizer_iff' {g : G} : g ∈ H.normalizer ↔ ∀ n, n * g ∈ H ↔ g * n ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {g : G}
Goal: g ∈ H.normalizer ↔ ∀ (n : G), n + g ∈ H ↔ g + n ∈ H
-- Subgroup.mem_normalizer_iff'
@[to_additive]
theorem mem_normalizer_iff' {g : G} : g ∈ H.normalizer ↔ ∀ n, n * g ∈ H ↔ g * n ∈ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} {g : G}
Goal: g ∈ H.normalizer ↔ ∀ (n : G), n * g ∈ H ↔ g * n ∈ H
-- AddSubgroup.le_normalizer
@[to_additive]
theorem le_normalizer : H ≤ normalizer H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H ≤ H.normalizer
-- Subgroup.le_normalizer
@[to_additive]
theorem le_normalizer : H ≤ normalizer H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H ≤ H.normalizer
-- Subgroup.normalizer_eq_top
@[to_additive]
theorem normalizer_eq_top : H.normalizer = ⊤ ↔ H.Normal 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.normalizer = ⊤ ↔ H.Normal
-- AddSubgroup.normalizer_eq_top
@[to_additive]
theorem normalizer_eq_top : H.normalizer = ⊤ ↔ H.Normal 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.normalizer = ⊤ ↔ H.Normal
-- AddSubgroup.le_normalizer_of_normal
@[to_additive]
theorem le_normalizer_of_normal [hK : (H.subgroupOf K).Normal] (HK : H ≤ K) : K ≤ H.normalizer 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G} [hK : (H.addSubgroupOf K).Normal] (HK : H ≤ K)
Goal: K ≤ H.normalizer
-- Subgroup.le_normalizer_of_normal
@[to_additive]
theorem le_normalizer_of_normal [hK : (H.subgroupOf K).Normal] (HK : H ≤ K) : K ≤ H.normalizer 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G} [hK : (H.subgroupOf K).Normal] (HK : H ≤ K)
Goal: K ≤ H.normalizer
-- AddSubgroup.le_normalizer_comap
@[to_additive "The preimage of the normalizer is contained in the normalizer of the preimage."]
theorem le_normalizer_comap (f : N →* G) :
    H.normalizer.comap f ≤ (H.comap f).normalizer 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {N : Type u_5} [AddGroup N] (f : N →+ G)
Goal: AddSubgroup.comap f H.normalizer ≤ (AddSubgroup.comap f H).normalizer
-- Subgroup.le_normalizer_comap
@[to_additive "The preimage of the normalizer is contained in the normalizer of the preimage."]
theorem le_normalizer_comap (f : N →* G) :
    H.normalizer.comap f ≤ (H.comap f).normalizer 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} {N : Type u_5} [Group N] (f : N →* G)
Goal: Subgroup.comap f H.normalizer ≤ (Subgroup.comap f H).normalizer
-- Subgroup.le_normalizer_map
@[to_additive "The image of the normalizer is contained in the normalizer of the image."]
theorem le_normalizer_map (f : G →* N) : H.normalizer.map f ≤ (H.map f).normalizer 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} {N : Type u_5} [Group N] (f : G →* N)
Goal: Subgroup.map f H.normalizer ≤ (Subgroup.map f H).normalizer
-- AddSubgroup.le_normalizer_map
@[to_additive "The image of the normalizer is contained in the normalizer of the image."]
theorem le_normalizer_map (f : G →* N) : H.normalizer.map f ≤ (H.map f).normalizer 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: AddSubgroup.map f H.normalizer ≤ (AddSubgroup.map f H).normalizer
-- normalizerCondition_iff_only_full_group_self_normalizing
theorem _root_.normalizerCondition_iff_only_full_group_self_normalizing :
    NormalizerCondition G ↔ ∀ H : Subgroup G, H.normalizer = H → H = ⊤ 
Arguments: {G : Type u_1} [Group G]
Goal: NormalizerCondition G ↔ ∀ (H : Subgroup G), H.normalizer = H → H = ⊤
-- Subgroup.IsCommutative.is_comm
structure IsCommutative : Prop where
    is_comm : Std.Commutative (α := H) (· * ·)
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (self : H.IsCommutative)
Goal: Std.Commutative fun x x_1 => x * x_1
-- AddSubgroup.IsCommutative.is_comm
structure _root_.AddSubgroup.IsCommutative (H : AddSubgroup A) : Prop where
    is_comm : Std.Commutative (α := H) (· + ·)
Arguments: {A : Type u_4} [AddGroup A] {H : AddSubgroup A} (self : H.IsCommutative)
Goal: Std.Commutative fun x x_1 => x + x_1
-- AddSubgroup.comap_injective_isCommutative
@[to_additive]
theorem comap_injective_isCommutative {f : G' →* G} (hf : Injective f) [H.IsCommutative] :
    (H.comap f).IsCommutative 
Arguments: {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] (H : AddSubgroup G) {f : G' →+ G} (hf : Function.Injective ⇑f) [H.IsCommutative]
Goal: (AddSubgroup.comap f H).IsCommutative
-- Subgroup.comap_injective_isCommutative
@[to_additive]
theorem comap_injective_isCommutative {f : G' →* G} (hf : Injective f) [H.IsCommutative] :
    (H.comap f).IsCommutative 
Arguments: {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (H : Subgroup G) {f : G' →* G} (hf : Function.Injective ⇑f) [H.IsCommutative]
Goal: (Subgroup.comap f H).IsCommutative
-- MulEquiv.comapSubgroup_symm_apply
@[simps]
def comapSubgroup (f : G ≃* H) : Subgroup H ≃o Subgroup G 
Arguments: {G : Type u_1} [Group G] {H : Type u_5} [Group H] (f : G ≃* H)
Goal: ∀ (H_1 : Subgroup G), (RelIso.symm f.comapSubgroup) H_1 = Subgroup.comap (↑f.symm) H_1
-- MulEquiv.comapSubgroup_apply
@[simps]
def comapSubgroup (f : G ≃* H) : Subgroup H ≃o Subgroup G 
Arguments: {G : Type u_1} [Group G] {H : Type u_5} [Group H] (f : G ≃* H)
Goal: ∀ (H_1 : Subgroup H), f.comapSubgroup H_1 = Subgroup.comap (↑f) H_1
-- MulEquiv.mapSubgroup_apply
@[simps]
def mapSubgroup {H : Type*} [Group H] (f : G ≃* H) : Subgroup G ≃o Subgroup H 
Arguments: {G : Type u_1} [Group G] {H : Type u_6} [Group H] (f : G ≃* H)
Goal: ∀ (H_1 : Subgroup G), f.mapSubgroup H_1 = Subgroup.map (↑f) H_1
-- MulEquiv.mapSubgroup_symm_apply
@[simps]
def mapSubgroup {H : Type*} [Group H] (f : G ≃* H) : Subgroup G ≃o Subgroup H 
Arguments: {G : Type u_1} [Group G] {H : Type u_6} [Group H] (f : G ≃* H)
Goal: ∀ (H_1 : Subgroup H), (RelIso.symm f.mapSubgroup) H_1 = Subgroup.map (↑f.symm) H_1
-- Group.mem_conjugatesOfSet_iff
theorem mem_conjugatesOfSet_iff {x : G} : x ∈ conjugatesOfSet s ↔ ∃ a ∈ s, IsConj a x 
Arguments: {G : Type u_1} [Group G] {s : Set G} {x : G}
Goal: x ∈ Group.conjugatesOfSet s ↔ ∃ a ∈ s, IsConj a x
-- Group.subset_conjugatesOfSet
theorem subset_conjugatesOfSet : s ⊆ conjugatesOfSet s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: s ⊆ Group.conjugatesOfSet s
-- Group.conjugatesOfSet_mono
theorem conjugatesOfSet_mono {s t : Set G} (h : s ⊆ t) : conjugatesOfSet s ⊆ conjugatesOfSet t 
Arguments: {G : Type u_1} [Group G] {s t : Set G} (h : s ⊆ t)
Goal: Group.conjugatesOfSet s ⊆ Group.conjugatesOfSet t
-- Group.conjugates_subset_normal
theorem conjugates_subset_normal {N : Subgroup G} [tn : N.Normal] {a : G} (h : a ∈ N) :
    conjugatesOf a ⊆ N 
Arguments: {G : Type u_1} [Group G] {N : Subgroup G} [tn : N.Normal] {a : G} (h : a ∈ N)
Goal: conjugatesOf a ⊆ ↑N
-- Group.conjugatesOfSet_subset
theorem conjugatesOfSet_subset {s : Set G} {N : Subgroup G} [N.Normal] (h : s ⊆ N) :
    conjugatesOfSet s ⊆ N 
Arguments: {G : Type u_1} [Group G] {s : Set G} {N : Subgroup G} [N.Normal] (h : s ⊆ ↑N)
Goal: Group.conjugatesOfSet s ⊆ ↑N
-- Group.conj_mem_conjugatesOfSet
theorem conj_mem_conjugatesOfSet {x c : G} :
    x ∈ conjugatesOfSet s → c * x * c⁻¹ ∈ conjugatesOfSet s 
Arguments: {G : Type u_1} [Group G] {s : Set G} {x c : G}
Goal: x ∈ Group.conjugatesOfSet s → c * x * c⁻¹ ∈ Group.conjugatesOfSet s
-- Subgroup.conjugatesOfSet_subset_normalClosure
theorem conjugatesOfSet_subset_normalClosure : conjugatesOfSet s ⊆ normalClosure s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: Group.conjugatesOfSet s ⊆ ↑(Subgroup.normalClosure s)
-- Subgroup.subset_normalClosure
theorem subset_normalClosure : s ⊆ normalClosure s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: s ⊆ ↑(Subgroup.normalClosure s)
-- Subgroup.le_normalClosure
theorem le_normalClosure {H : Subgroup G} : H ≤ normalClosure ↑H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H ≤ Subgroup.normalClosure ↑H
-- Subgroup.normalClosure_le_normal
theorem normalClosure_le_normal {N : Subgroup G} [N.Normal] (h : s ⊆ N) : normalClosure s ≤ N 
Arguments: {G : Type u_1} [Group G] {s : Set G} {N : Subgroup G} [N.Normal] (h : s ⊆ ↑N)
Goal: Subgroup.normalClosure s ≤ N
-- Subgroup.normalClosure_subset_iff
theorem normalClosure_subset_iff {N : Subgroup G} [N.Normal] : s ⊆ N ↔ normalClosure s ≤ N 
Arguments: {G : Type u_1} [Group G] {s : Set G} {N : Subgroup G} [N.Normal]
Goal: s ⊆ ↑N ↔ Subgroup.normalClosure s ≤ N
-- Subgroup.normalClosure_mono
theorem normalClosure_mono {s t : Set G} (h : s ⊆ t) : normalClosure s ≤ normalClosure t 
Arguments: {G : Type u_1} [Group G] {s t : Set G} (h : s ⊆ t)
Goal: Subgroup.normalClosure s ≤ Subgroup.normalClosure t
-- Subgroup.normalClosure_eq_iInf
theorem normalClosure_eq_iInf :
    normalClosure s = ⨅ (N : Subgroup G) (_ : Normal N) (_ : s ⊆ N), N 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: Subgroup.normalClosure s = ⨅ N, ⨅ (_ : N.Normal), ⨅ (_ : s ⊆ ↑N), N
-- Subgroup.normalClosure_eq_self
@[simp]
theorem normalClosure_eq_self (H : Subgroup G) [H.Normal] : normalClosure ↑H = H 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [H.Normal]
Goal: Subgroup.normalClosure ↑H = H
-- Subgroup.normalClosure_idempotent
theorem normalClosure_idempotent : normalClosure ↑(normalClosure s) = normalClosure s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: Subgroup.normalClosure ↑(Subgroup.normalClosure s) = Subgroup.normalClosure s
-- Subgroup.closure_le_normalClosure
theorem closure_le_normalClosure {s : Set G} : closure s ≤ normalClosure s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: Subgroup.closure s ≤ Subgroup.normalClosure s
-- Subgroup.normalClosure_closure_eq_normalClosure
@[simp]
theorem normalClosure_closure_eq_normalClosure {s : Set G} :
    normalClosure ↑(closure s) = normalClosure s 
Arguments: {G : Type u_1} [Group G] {s : Set G}
Goal: Subgroup.normalClosure ↑(Subgroup.closure s) = Subgroup.normalClosure s
-- Subgroup.normalCore_le
theorem normalCore_le (H : Subgroup G) : H.normalCore ≤ H 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.normalCore ≤ H
-- Subgroup.normal_le_normalCore
theorem normal_le_normalCore {H : Subgroup G} {N : Subgroup G} [hN : N.Normal] :
    N ≤ H.normalCore ↔ N ≤ H 
Arguments: {G : Type u_1} [Group G] {H N : Subgroup G} [hN : N.Normal]
Goal: N ≤ H.normalCore ↔ N ≤ H
-- Subgroup.normalCore_mono
theorem normalCore_mono {H K : Subgroup G} (h : H ≤ K) : H.normalCore ≤ K.normalCore 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G} (h : H ≤ K)
Goal: H.normalCore ≤ K.normalCore
-- Subgroup.normalCore_eq_iSup
theorem normalCore_eq_iSup (H : Subgroup G) :
    H.normalCore = ⨆ (N : Subgroup G) (_ : Normal N) (_ : N ≤ H), N 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.normalCore = ⨆ N, ⨆ (_ : N.Normal), ⨆ (_ : N ≤ H), N
-- Subgroup.normalCore_eq_self
@[simp]
theorem normalCore_eq_self (H : Subgroup G) [H.Normal] : H.normalCore = H 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [H.Normal]
Goal: H.normalCore = H
-- Subgroup.normalCore_idempotent
theorem normalCore_idempotent (H : Subgroup G) : H.normalCore.normalCore = H.normalCore 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.normalCore.normalCore = H.normalCore
-- MonoidHom.coe_range
@[to_additive (attr := simp)]
theorem coe_range (f : G →* N) : (f.range : Set N) = Set.range f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: ↑f.range = Set.range ⇑f
-- AddMonoidHom.coe_range
@[to_additive (attr := simp)]
theorem coe_range (f : G →* N) : (f.range : Set N) = Set.range f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: ↑f.range = Set.range ⇑f
-- AddMonoidHom.mem_range
@[to_additive (attr := simp)]
theorem mem_range {f : G →* N} {y : N} : y ∈ f.range ↔ ∃ x, f x = y 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {y : N}
Goal: y ∈ f.range ↔ ∃ x, f x = y
-- MonoidHom.mem_range
@[to_additive (attr := simp)]
theorem mem_range {f : G →* N} {y : N} : y ∈ f.range ↔ ∃ x, f x = y 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {y : N}
Goal: y ∈ f.range ↔ ∃ x, f x = y
-- AddMonoidHom.range_eq_map
@[to_additive]
theorem range_eq_map (f : G →* N) : f.range = (⊤ : Subgroup G).map f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: f.range = AddSubgroup.map f ⊤
-- MonoidHom.range_eq_map
@[to_additive]
theorem range_eq_map (f : G →* N) : f.range = (⊤ : Subgroup G).map f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: f.range = Subgroup.map f ⊤
-- AddMonoidHom.restrict_range
@[to_additive (attr := simp)]
theorem restrict_range (f : G →* N) : (f.restrict K).range = K.map f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (K : AddSubgroup G) (f : G →+ N)
Goal: (f.restrict K).range = AddSubgroup.map f K
-- MonoidHom.restrict_range
@[to_additive (attr := simp)]
theorem restrict_range (f : G →* N) : (f.restrict K).range = K.map f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (K : Subgroup G) (f : G →* N)
Goal: (f.restrict K).range = Subgroup.map f K
-- MonoidHom.coe_rangeRestrict
@[to_additive (attr := simp)]
theorem coe_rangeRestrict (f : G →* N) (g : G) : (f.rangeRestrict g : N) = f g 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (g : G)
Goal: ↑(f.rangeRestrict g) = f g
-- AddMonoidHom.coe_rangeRestrict
@[to_additive (attr := simp)]
theorem coe_rangeRestrict (f : G →* N) (g : G) : (f.rangeRestrict g : N) = f g 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (g : G)
Goal: ↑(f.rangeRestrict g) = f g
-- AddMonoidHom.coe_comp_rangeRestrict
@[to_additive]
theorem coe_comp_rangeRestrict (f : G →* N) :
    ((↑) : f.range → N) ∘ (⇑f.rangeRestrict : G → f.range) = f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: Subtype.val ∘ ⇑f.rangeRestrict = ⇑f
-- MonoidHom.coe_comp_rangeRestrict
@[to_additive]
theorem coe_comp_rangeRestrict (f : G →* N) :
    ((↑) : f.range → N) ∘ (⇑f.rangeRestrict : G → f.range) = f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: Subtype.val ∘ ⇑f.rangeRestrict = ⇑f
-- AddMonoidHom.subtype_comp_rangeRestrict
@[to_additive]
theorem subtype_comp_rangeRestrict (f : G →* N) : f.range.subtype.comp f.rangeRestrict = f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: f.range.subtype.comp f.rangeRestrict = f
-- MonoidHom.subtype_comp_rangeRestrict
@[to_additive]
theorem subtype_comp_rangeRestrict (f : G →* N) : f.range.subtype.comp f.rangeRestrict = f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: f.range.subtype.comp f.rangeRestrict = f
-- MonoidHom.rangeRestrict_surjective
@[to_additive]
theorem rangeRestrict_surjective (f : G →* N) : Function.Surjective f.rangeRestrict 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: Function.Surjective ⇑f.rangeRestrict
-- AddMonoidHom.rangeRestrict_surjective
@[to_additive]
theorem rangeRestrict_surjective (f : G →* N) : Function.Surjective f.rangeRestrict 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: Function.Surjective ⇑f.rangeRestrict
-- AddMonoidHom.rangeRestrict_injective_iff
@[to_additive (attr := simp)]
lemma rangeRestrict_injective_iff {f : G →* N} : Injective f.rangeRestrict ↔ Injective f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N}
Goal: Function.Injective ⇑f.rangeRestrict ↔ Function.Injective ⇑f
-- MonoidHom.rangeRestrict_injective_iff
@[to_additive (attr := simp)]
lemma rangeRestrict_injective_iff {f : G →* N} : Injective f.rangeRestrict ↔ Injective f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N}
Goal: Function.Injective ⇑f.rangeRestrict ↔ Function.Injective ⇑f
-- MonoidHom.map_range
@[to_additive]
theorem map_range (g : N →* P) (f : G →* N) : f.range.map g = (g.comp f).range 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} {P : Type u_6} [Group N] [Group P] (g : N →* P) (f : G →* N)
Goal: Subgroup.map g f.range = (g.comp f).range
-- AddMonoidHom.map_range
@[to_additive]
theorem map_range (g : N →* P) (f : G →* N) : f.range.map g = (g.comp f).range 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} {P : Type u_6} [AddGroup N] [AddGroup P] (g : N →+ P) (f : G →+ N)
Goal: AddSubgroup.map g f.range = (g.comp f).range
-- AddMonoidHom.range_top_iff_surjective
@[to_additive]
theorem range_top_iff_surjective {N} [Group N] {f : G →* N} :
    f.range = (⊤ : Subgroup N) ↔ Function.Surjective f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_7} [AddGroup N] {f : G →+ N}
Goal: f.range = ⊤ ↔ Function.Surjective ⇑f
-- MonoidHom.range_top_iff_surjective
@[to_additive]
theorem range_top_iff_surjective {N} [Group N] {f : G →* N} :
    f.range = (⊤ : Subgroup N) ↔ Function.Surjective f 
Arguments: {G : Type u_1} [Group G] {N : Type u_7} [Group N] {f : G →* N}
Goal: f.range = ⊤ ↔ Function.Surjective ⇑f
-- MonoidHom.range_top_of_surjective
@[to_additive (attr := simp)
  "The range of a surjective `AddMonoid` homomorphism is the whole of the codomain."]
theorem range_top_of_surjective {N} [Group N] (f : G →* N) (hf : Function.Surjective f) :
    f.range = (⊤ : Subgroup N) 
Arguments: {G : Type u_1} [Group G] {N : Type u_7} [Group N] (f : G →* N) (hf : Function.Surjective ⇑f)
Goal: f.range = ⊤
-- AddMonoidHom.range_top_of_surjective
@[to_additive (attr := simp)
  "The range of a surjective `AddMonoid` homomorphism is the whole of the codomain."]
theorem range_top_of_surjective {N} [Group N] (f : G →* N) (hf : Function.Surjective f) :
    f.range = (⊤ : Subgroup N) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_7} [AddGroup N] (f : G →+ N) (hf : Function.Surjective ⇑f)
Goal: f.range = ⊤
-- MonoidHom.range_one
@[to_additive (attr := simp)]
theorem range_one : (1 : G →* N).range = ⊥ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N]
Goal: MonoidHom.range 1 = ⊥
-- AddMonoidHom.range_zero
@[to_additive (attr := simp)]
theorem range_one : (1 : G →* N).range = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N]
Goal: AddMonoidHom.range 0 = ⊥
-- Subgroup.subtype_range
@[to_additive (attr := simp)]
theorem _root_.Subgroup.subtype_range (H : Subgroup G) : H.subtype.range = H 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.subtype.range = H
-- AddSubgroup.subtype_range
@[to_additive (attr := simp)]
theorem _root_.Subgroup.subtype_range (H : Subgroup G) : H.subtype.range = H 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: H.subtype.range = H
-- Subgroup.inclusion_range
@[to_additive (attr := simp)]
theorem _root_.Subgroup.inclusion_range {H K : Subgroup G} (h_le : H ≤ K) :
    (inclusion h_le).range = H.subgroupOf K 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G} (h_le : H ≤ K)
Goal: (Subgroup.inclusion h_le).range = H.subgroupOf K
-- AddSubgroup.inclusion_range
@[to_additive (attr := simp)]
theorem _root_.Subgroup.inclusion_range {H K : Subgroup G} (h_le : H ≤ K) :
    (inclusion h_le).range = H.subgroupOf K 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G} (h_le : H ≤ K)
Goal: (AddSubgroup.inclusion h_le).range = H.addSubgroupOf K
-- AddMonoidHom.addSubgroupOf_range_eq_of_le
@[to_additive]
theorem subgroupOf_range_eq_of_le {G₁ G₂ : Type*} [Group G₁] [Group G₂] {K : Subgroup G₂}
    (f : G₁ →* G₂) (h : f.range ≤ K) :
    f.range.subgroupOf K = (f.codRestrict K fun x => h ⟨x, rfl⟩).range 
Arguments: {G₁ : Type u_7} {G₂ : Type u_8} [AddGroup G₁] [AddGroup G₂] {K : AddSubgroup G₂} (f : G₁ →+ G₂) (h : f.range ≤ K)
Goal: f.range.addSubgroupOf K = (f.codRestrict K ⋯).range
-- MonoidHom.subgroupOf_range_eq_of_le
@[to_additive]
theorem subgroupOf_range_eq_of_le {G₁ G₂ : Type*} [Group G₁] [Group G₂] {K : Subgroup G₂}
    (f : G₁ →* G₂) (h : f.range ≤ K) :
    f.range.subgroupOf K = (f.codRestrict K fun x => h ⟨x, rfl⟩).range 
Arguments: {G₁ : Type u_7} {G₂ : Type u_8} [Group G₁] [Group G₂] {K : Subgroup G₂} (f : G₁ →* G₂) (h : f.range ≤ K)
Goal: f.range.subgroupOf K = (f.codRestrict K ⋯).range
-- MonoidHom.coe_toAdditive_range
@[simp]
theorem coe_toAdditive_range (f : G →* G') :
    (MonoidHom.toAdditive f).range = Subgroup.toAddSubgroup f.range 
Arguments: {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (f : G →* G')
Goal: (MonoidHom.toAdditive f).range = Subgroup.toAddSubgroup f.range
-- MonoidHom.coe_toMultiplicative_range
@[simp]
theorem coe_toMultiplicative_range {A A' : Type*} [AddGroup A] [AddGroup A'] (f : A →+ A') :
    (AddMonoidHom.toMultiplicative f).range = AddSubgroup.toSubgroup f.range 
Arguments: {A : Type u_7} {A' : Type u_8} [AddGroup A] [AddGroup A'] (f : A →+ A')
Goal: (AddMonoidHom.toMultiplicative f).range = AddSubgroup.toSubgroup f.range
-- AddMonoidHom.ofLeftInverse_apply
@[to_additive (attr := simp)]
theorem ofLeftInverse_apply {f : G →* N} {g : N →* G} (h : Function.LeftInverse g f) (x : G) :
    ↑(ofLeftInverse h x) = f x 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {g : N →+ G} (h : Function.LeftInverse ⇑g ⇑f) (x : G)
Goal: ↑((AddMonoidHom.ofLeftInverse h) x) = f x
-- MonoidHom.ofLeftInverse_apply
@[to_additive (attr := simp)]
theorem ofLeftInverse_apply {f : G →* N} {g : N →* G} (h : Function.LeftInverse g f) (x : G) :
    ↑(ofLeftInverse h x) = f x 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {g : N →* G} (h : Function.LeftInverse ⇑g ⇑f) (x : G)
Goal: ↑((MonoidHom.ofLeftInverse h) x) = f x
-- AddMonoidHom.ofLeftInverse_symm_apply
@[to_additive (attr := simp)]
theorem ofLeftInverse_symm_apply {f : G →* N} {g : N →* G} (h : Function.LeftInverse g f)
    (x : f.range) : (ofLeftInverse h).symm x = g x 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {g : N →+ G} (h : Function.LeftInverse ⇑g ⇑f) (x : ↥f.range)
Goal: (AddMonoidHom.ofLeftInverse h).symm x = g ↑x
-- MonoidHom.ofLeftInverse_symm_apply
@[to_additive (attr := simp)]
theorem ofLeftInverse_symm_apply {f : G →* N} {g : N →* G} (h : Function.LeftInverse g f)
    (x : f.range) : (ofLeftInverse h).symm x = g x 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {g : N →* G} (h : Function.LeftInverse ⇑g ⇑f) (x : ↥f.range)
Goal: (MonoidHom.ofLeftInverse h).symm x = g ↑x
-- MonoidHom.ofInjective_apply
@[to_additive]
theorem ofInjective_apply {f : G →* N} (hf : Function.Injective f) {x : G} :
    ↑(ofInjective hf x) = f x 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} (hf : Function.Injective ⇑f) {x : G}
Goal: ↑((MonoidHom.ofInjective hf) x) = f x
-- AddMonoidHom.ofInjective_apply
@[to_additive]
theorem ofInjective_apply {f : G →* N} (hf : Function.Injective f) {x : G} :
    ↑(ofInjective hf x) = f x 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} (hf : Function.Injective ⇑f) {x : G}
Goal: ↑((AddMonoidHom.ofInjective hf) x) = f x
-- MonoidHom.apply_ofInjective_symm
@[to_additive (attr := simp)]
theorem apply_ofInjective_symm {f : G →* N} (hf : Function.Injective f) (x : f.range) :
    f ((ofInjective hf).symm x) = x 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} (hf : Function.Injective ⇑f) (x : ↥f.range)
Goal: f ((MonoidHom.ofInjective hf).symm x) = ↑x
-- AddMonoidHom.apply_ofInjective_symm
@[to_additive (attr := simp)]
theorem apply_ofInjective_symm {f : G →* N} (hf : Function.Injective f) (x : f.range) :
    f ((ofInjective hf).symm x) = x 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} (hf : Function.Injective ⇑f) (x : ↥f.range)
Goal: f ((AddMonoidHom.ofInjective hf).symm x) = ↑x
-- AddMonoidHom.mem_ker
@[to_additive]
theorem mem_ker (f : G →* M) {x : G} : x ∈ f.ker ↔ f x = 1 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddZeroClass M] (f : G →+ M) {x : G}
Goal: x ∈ f.ker ↔ f x = 0