ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MonoidHom.mem_ker
@[to_additive]
theorem mem_ker (f : G →* M) {x : G} : x ∈ f.ker ↔ f x = 1 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M) {x : G}
Goal: x ∈ f.ker ↔ f x = 1
-- MonoidHom.coe_ker
@[to_additive]
theorem coe_ker (f : G →* M) : (f.ker : Set G) = (f : G → M) ⁻¹' {1} 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M)
Goal: ↑f.ker = ⇑f ⁻¹' {1}
-- AddMonoidHom.coe_ker
@[to_additive]
theorem coe_ker (f : G →* M) : (f.ker : Set G) = (f : G → M) ⁻¹' {1} 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddZeroClass M] (f : G →+ M)
Goal: ↑f.ker = ⇑f ⁻¹' {0}
-- MonoidHom.ker_toHomUnits
@[to_additive (attr := simp)]
theorem ker_toHomUnits {M} [Monoid M] (f : G →* M) : f.toHomUnits.ker = f.ker 
Arguments: {G : Type u_1} [Group G] {M : Type u_8} [Monoid M] (f : G →* M)
Goal: f.toHomUnits.ker = f.ker
-- AddMonoidHom.ker_toHomAddUnits
@[to_additive (attr := simp)]
theorem ker_toHomUnits {M} [Monoid M] (f : G →* M) : f.toHomUnits.ker = f.ker 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_8} [AddMonoid M] (f : G →+ M)
Goal: f.toHomAddUnits.ker = f.ker
-- AddMonoidHom.eq_iff
@[to_additive]
theorem eq_iff (f : G →* M) {x y : G} : f x = f y ↔ y⁻¹ * x ∈ f.ker 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddZeroClass M] (f : G →+ M) {x y : G}
Goal: f x = f y ↔ -y + x ∈ f.ker
-- MonoidHom.eq_iff
@[to_additive]
theorem eq_iff (f : G →* M) {x y : G} : f x = f y ↔ y⁻¹ * x ∈ f.ker 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M) {x y : G}
Goal: f x = f y ↔ y⁻¹ * x ∈ f.ker
-- AddMonoidHom.comap_ker
@[to_additive]
theorem comap_ker (g : N →* P) (f : G →* N) : g.ker.comap f = (g.comp f).ker 
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.comap f g.ker = (g.comp f).ker
-- MonoidHom.comap_ker
@[to_additive]
theorem comap_ker (g : N →* P) (f : G →* N) : g.ker.comap f = (g.comp f).ker 
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.comap f g.ker = (g.comp f).ker
-- AddMonoidHom.comap_bot
@[to_additive (attr := simp)]
theorem comap_bot (f : G →* N) : (⊥ : Subgroup N).comap f = f.ker 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: AddSubgroup.comap f ⊥ = f.ker
-- MonoidHom.comap_bot
@[to_additive (attr := simp)]
theorem comap_bot (f : G →* N) : (⊥ : Subgroup N).comap f = f.ker 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: Subgroup.comap f ⊥ = f.ker
-- AddMonoidHom.ker_restrict
@[to_additive (attr := simp)]
theorem ker_restrict (f : G →* N) : (f.restrict K).ker = f.ker.subgroupOf K 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (K : AddSubgroup G) (f : G →+ N)
Goal: (f.restrict K).ker = f.ker.addSubgroupOf K
-- MonoidHom.ker_restrict
@[to_additive (attr := simp)]
theorem ker_restrict (f : G →* N) : (f.restrict K).ker = f.ker.subgroupOf K 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (K : Subgroup G) (f : G →* N)
Goal: (f.restrict K).ker = f.ker.subgroupOf K
-- MonoidHom.ker_codRestrict
@[to_additive (attr := simp)]
theorem ker_codRestrict {S} [SetLike S N] [SubmonoidClass S N] (f : G →* N) (s : S)
    (h : ∀ x, f x ∈ s) : (f.codRestrict s h).ker = f.ker 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {S : Type u_8} [SetLike S N] [SubmonoidClass S N] (f : G →* N) (s : S) (h : ∀ (x : G), f x ∈ s)
Goal: (f.codRestrict s h).ker = f.ker
-- AddMonoidHom.ker_codRestrict
@[to_additive (attr := simp)]
theorem ker_codRestrict {S} [SetLike S N] [SubmonoidClass S N] (f : G →* N) (s : S)
    (h : ∀ x, f x ∈ s) : (f.codRestrict s h).ker = f.ker 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {S : Type u_8} [SetLike S N] [AddSubmonoidClass S N] (f : G →+ N) (s : S) (h : ∀ (x : G), f x ∈ s)
Goal: (f.codRestrict s h).ker = f.ker
-- AddMonoidHom.ker_rangeRestrict
@[to_additive (attr := simp)]
theorem ker_rangeRestrict (f : G →* N) : ker (rangeRestrict f) = ker f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: f.rangeRestrict.ker = f.ker
-- MonoidHom.ker_rangeRestrict
@[to_additive (attr := simp)]
theorem ker_rangeRestrict (f : G →* N) : ker (rangeRestrict f) = ker f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: f.rangeRestrict.ker = f.ker
-- MonoidHom.ker_one
@[to_additive (attr := simp)]
theorem ker_one : (1 : G →* M).ker = ⊤ 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M]
Goal: MonoidHom.ker 1 = ⊤
-- AddMonoidHom.ker_zero
@[to_additive (attr := simp)]
theorem ker_one : (1 : G →* M).ker = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddZeroClass M]
Goal: AddMonoidHom.ker 0 = ⊤
-- AddMonoidHom.ker_id
@[to_additive (attr := simp)]
theorem ker_id : (MonoidHom.id G).ker = ⊥ 
Arguments: {G : Type u_1} [AddGroup G]
Goal: (AddMonoidHom.id G).ker = ⊥
-- MonoidHom.ker_id
@[to_additive (attr := simp)]
theorem ker_id : (MonoidHom.id G).ker = ⊥ 
Arguments: {G : Type u_1} [Group G]
Goal: (MonoidHom.id G).ker = ⊥
-- MonoidHom.ker_eq_bot_iff
@[to_additive]
theorem ker_eq_bot_iff (f : G →* M) : f.ker = ⊥ ↔ Function.Injective f 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M)
Goal: f.ker = ⊥ ↔ Function.Injective ⇑f
-- AddMonoidHom.ker_eq_bot_iff
@[to_additive]
theorem ker_eq_bot_iff (f : G →* M) : f.ker = ⊥ ↔ Function.Injective f 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddZeroClass M] (f : G →+ M)
Goal: f.ker = ⊥ ↔ Function.Injective ⇑f
-- Subgroup.ker_subtype
@[to_additive (attr := simp)]
theorem _root_.Subgroup.ker_subtype (H : Subgroup G) : H.subtype.ker = ⊥ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.subtype.ker = ⊥
-- AddSubgroup.ker_subtype
@[to_additive (attr := simp)]
theorem _root_.Subgroup.ker_subtype (H : Subgroup G) : H.subtype.ker = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: H.subtype.ker = ⊥
-- AddSubgroup.ker_inclusion
@[to_additive (attr := simp)]
theorem _root_.Subgroup.ker_inclusion {H K : Subgroup G} (h : H ≤ K) : (inclusion h).ker = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G} (h : H ≤ K)
Goal: (AddSubgroup.inclusion h).ker = ⊥
-- Subgroup.ker_inclusion
@[to_additive (attr := simp)]
theorem _root_.Subgroup.ker_inclusion {H K : Subgroup G} (h : H ≤ K) : (inclusion h).ker = ⊥ 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G} (h : H ≤ K)
Goal: (Subgroup.inclusion h).ker = ⊥
-- AddMonoidHom.ker_sum
@[to_additive]
theorem ker_prod {M N : Type*} [MulOneClass M] [MulOneClass N] (f : G →* M) (g : G →* N) :
    (f.prod g).ker = f.ker ⊓ g.ker 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_8} {N : Type u_9} [AddZeroClass M] [AddZeroClass N] (f : G →+ M) (g : G →+ N)
Goal: (f.prod g).ker = f.ker ⊓ g.ker
-- MonoidHom.ker_prod
@[to_additive]
theorem ker_prod {M N : Type*} [MulOneClass M] [MulOneClass N] (f : G →* M) (g : G →* N) :
    (f.prod g).ker = f.ker ⊓ g.ker 
Arguments: {G : Type u_1} [Group G] {M : Type u_8} {N : Type u_9} [MulOneClass M] [MulOneClass N] (f : G →* M) (g : G →* N)
Goal: (f.prod g).ker = f.ker ⊓ g.ker
-- MonoidHom.prodMap_comap_prod
@[to_additive]
theorem prodMap_comap_prod {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N)
    (g : G' →* N') (S : Subgroup N) (S' : Subgroup N') :
    (S.prod S').comap (prodMap f g) = (S.comap f).prod (S'.comap g) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {G' : Type u_8} {N' : Type u_9} [Group G'] [Group N'] (f : G →* N) (g : G' →* N') (S : Subgroup N) (S' : Subgroup N')
Goal: Subgroup.comap (f.prodMap g) (S.prod S') = (Subgroup.comap f S).prod (Subgroup.comap g S')
-- AddMonoidHom.sumMap_comap_sum
@[to_additive]
theorem prodMap_comap_prod {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N)
    (g : G' →* N') (S : Subgroup N) (S' : Subgroup N') :
    (S.prod S').comap (prodMap f g) = (S.comap f).prod (S'.comap g) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {G' : Type u_8} {N' : Type u_9} [AddGroup G'] [AddGroup N'] (f : G →+ N) (g : G' →+ N') (S : AddSubgroup N) (S' : AddSubgroup N')
Goal: AddSubgroup.comap (f.prodMap g) (S.prod S') = (AddSubgroup.comap f S).prod (AddSubgroup.comap g S')
-- MonoidHom.ker_prodMap
@[to_additive]
theorem ker_prodMap {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N) (g : G' →* N') :
    (prodMap f g).ker = f.ker.prod g.ker 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {G' : Type u_8} {N' : Type u_9} [Group G'] [Group N'] (f : G →* N) (g : G' →* N')
Goal: (f.prodMap g).ker = f.ker.prod g.ker
-- AddMonoidHom.ker_sumMap
@[to_additive]
theorem ker_prodMap {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N) (g : G' →* N') :
    (prodMap f g).ker = f.ker.prod g.ker 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {G' : Type u_8} {N' : Type u_9} [AddGroup G'] [AddGroup N'] (f : G →+ N) (g : G' →+ N')
Goal: (f.prodMap g).ker = f.ker.prod g.ker
-- AddMonoidHom.range_le_ker_iff
@[to_additive]
theorem range_le_ker_iff (f : G →* G') (g : G' →* G'') : f.range ≤ g.ker ↔ g.comp f = 1 
Arguments: {G : Type u_1} {G' : Type u_2} {G'' : Type u_3} [AddGroup G] [AddGroup G'] [AddGroup G''] (f : G →+ G') (g : G' →+ G'')
Goal: f.range ≤ g.ker ↔ g.comp f = 0
-- MonoidHom.range_le_ker_iff
@[to_additive]
theorem range_le_ker_iff (f : G →* G') (g : G' →* G'') : f.range ≤ g.ker ↔ g.comp f = 1 
Arguments: {G : Type u_1} {G' : Type u_2} {G'' : Type u_3} [Group G] [Group G'] [Group G''] (f : G →* G') (g : G' →* G'')
Goal: f.range ≤ g.ker ↔ g.comp f = 1
-- AddMonoidHom.ker_fst
@[to_additive (attr := simp)]
lemma ker_fst : ker (fst G G') = .prod ⊥ ⊤ 
Arguments: {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G']
Goal: (AddMonoidHom.fst G G').ker = ⊥.prod ⊤
-- MonoidHom.ker_fst
@[to_additive (attr := simp)]
lemma ker_fst : ker (fst G G') = .prod ⊥ ⊤ 
Arguments: {G : Type u_1} {G' : Type u_2} [Group G] [Group G']
Goal: (MonoidHom.fst G G').ker = ⊥.prod ⊤
-- AddMonoidHom.ker_snd
@[to_additive (attr := simp)]
lemma ker_snd : ker (snd G G') = .prod ⊤ ⊥ 
Arguments: {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G']
Goal: (AddMonoidHom.snd G G').ker = ⊤.prod ⊥
-- MonoidHom.ker_snd
@[to_additive (attr := simp)]
lemma ker_snd : ker (snd G G') = .prod ⊤ ⊥ 
Arguments: {G : Type u_1} {G' : Type u_2} [Group G] [Group G']
Goal: (MonoidHom.snd G G').ker = ⊤.prod ⊥
-- MonoidHom.coe_toAdditive_ker
@[simp]
theorem coe_toAdditive_ker (f : G →* G') :
    (MonoidHom.toAdditive f).ker = Subgroup.toAddSubgroup f.ker 
Arguments: {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (f : G →* G')
Goal: (MonoidHom.toAdditive f).ker = Subgroup.toAddSubgroup f.ker
-- MonoidHom.coe_toMultiplicative_ker
@[simp]
theorem coe_toMultiplicative_ker {A A' : Type*} [AddGroup A] [AddGroup A'] (f : A →+ A') :
    (AddMonoidHom.toMultiplicative f).ker = AddSubgroup.toSubgroup f.ker 
Arguments: {A : Type u_8} {A' : Type u_9} [AddGroup A] [AddGroup A'] (f : A →+ A')
Goal: (AddMonoidHom.toMultiplicative f).ker = AddSubgroup.toSubgroup f.ker
-- AddMonoidHom.eqLocus_same
@[to_additive (attr := simp)]
theorem eqLocus_same (f : G →* N) : f.eqLocus f = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N)
Goal: f.eqLocus f = ⊤
-- MonoidHom.eqLocus_same
@[to_additive (attr := simp)]
theorem eqLocus_same (f : G →* N) : f.eqLocus f = ⊤ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N)
Goal: f.eqLocus f = ⊤
-- AddMonoidHom.eqOn_closure
@[to_additive
      "If two monoid homomorphisms are equal on a set, then they are equal on its subgroup
      closure."]
theorem eqOn_closure {f g : G →* M} {s : Set G} (h : Set.EqOn f g s) : Set.EqOn f g (closure s) 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddMonoid M] {f g : G →+ M} {s : Set G} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: Set.EqOn ⇑f ⇑g ↑(AddSubgroup.closure s)
-- MonoidHom.eqOn_closure
@[to_additive
      "If two monoid homomorphisms are equal on a set, then they are equal on its subgroup
      closure."]
theorem eqOn_closure {f g : G →* M} {s : Set G} (h : Set.EqOn f g s) : Set.EqOn f g (closure s) 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [Monoid M] {f g : G →* M} {s : Set G} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: Set.EqOn ⇑f ⇑g ↑(Subgroup.closure s)
-- AddMonoidHom.eq_of_eqOn_top
@[to_additive]
theorem eq_of_eqOn_top {f g : G →* M} (h : Set.EqOn f g (⊤ : Subgroup G)) : f = g 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddMonoid M] {f g : G →+ M} (h : Set.EqOn ⇑f ⇑g ↑⊤)
Goal: f = g
-- MonoidHom.eq_of_eqOn_top
@[to_additive]
theorem eq_of_eqOn_top {f g : G →* M} (h : Set.EqOn f g (⊤ : Subgroup G)) : f = g 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [Monoid M] {f g : G →* M} (h : Set.EqOn ⇑f ⇑g ↑⊤)
Goal: f = g
-- MonoidHom.eq_of_eqOn_dense
@[to_additive]
theorem eq_of_eqOn_dense {s : Set G} (hs : closure s = ⊤) {f g : G →* M} (h : s.EqOn f g) : f = g 
Arguments: {G : Type u_1} [Group G] {M : Type u_7} [Monoid M] {s : Set G} (hs : Subgroup.closure s = ⊤) {f g : G →* M} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: f = g
-- AddMonoidHom.eq_of_eqOn_dense
@[to_additive]
theorem eq_of_eqOn_dense {s : Set G} (hs : closure s = ⊤) {f g : G →* M} (h : s.EqOn f g) : f = g 
Arguments: {G : Type u_1} [AddGroup G] {M : Type u_7} [AddMonoid M] {s : Set G} (hs : AddSubgroup.closure s = ⊤) {f g : G →+ M} (h : Set.EqOn (⇑f) (⇑g) s)
Goal: f = g
-- AddMonoidHom.closure_preimage_le
@[to_additive]
theorem closure_preimage_le (f : G →* N) (s : Set N) : closure (f ⁻¹' s) ≤ (closure s).comap f 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (s : Set N)
Goal: AddSubgroup.closure (⇑f ⁻¹' s) ≤ AddSubgroup.comap f (AddSubgroup.closure s)
-- MonoidHom.closure_preimage_le
@[to_additive]
theorem closure_preimage_le (f : G →* N) (s : Set N) : closure (f ⁻¹' s) ≤ (closure s).comap f 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (s : Set N)
Goal: Subgroup.closure (⇑f ⁻¹' s) ≤ Subgroup.comap f (Subgroup.closure s)
-- AddMonoidHom.map_closure
@[to_additive
      "The image under an `AddMonoid` hom of the `AddSubgroup` generated by a set equals
      the `AddSubgroup` generated by the image of the set."]
theorem map_closure (f : G →* N) (s : Set G) : (closure s).map f = closure (f '' s) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (s : Set G)
Goal: AddSubgroup.map f (AddSubgroup.closure s) = AddSubgroup.closure (⇑f '' s)
-- MonoidHom.map_closure
@[to_additive
      "The image under an `AddMonoid` hom of the `AddSubgroup` generated by a set equals
      the `AddSubgroup` generated by the image of the set."]
theorem map_closure (f : G →* N) (s : Set G) : (closure s).map f = closure (f '' s) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (s : Set G)
Goal: Subgroup.map f (Subgroup.closure s) = Subgroup.closure (⇑f '' s)
-- Subgroup.Normal.map
@[to_additive]
theorem Normal.map {H : Subgroup G} (h : H.Normal) (f : G →* N) (hf : Function.Surjective f) :
    (H.map f).Normal 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {H : Subgroup G} (h : H.Normal) (f : G →* N) (hf : Function.Surjective ⇑f)
Goal: (Subgroup.map f H).Normal
-- AddSubgroup.Normal.map
@[to_additive]
theorem Normal.map {H : Subgroup G} (h : H.Normal) (f : G →* N) (hf : Function.Surjective f) :
    (H.map f).Normal 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {H : AddSubgroup G} (h : H.Normal) (f : G →+ N) (hf : Function.Surjective ⇑f)
Goal: (AddSubgroup.map f H).Normal
-- Subgroup.map_eq_bot_iff
@[to_additive]
theorem map_eq_bot_iff {f : G →* N} : H.map f = ⊥ ↔ H ≤ f.ker 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (H : Subgroup G) {f : G →* N}
Goal: Subgroup.map f H = ⊥ ↔ H ≤ f.ker
-- AddSubgroup.map_eq_bot_iff
@[to_additive]
theorem map_eq_bot_iff {f : G →* N} : H.map f = ⊥ ↔ H ≤ f.ker 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (H : AddSubgroup G) {f : G →+ N}
Goal: AddSubgroup.map f H = ⊥ ↔ H ≤ f.ker
-- Subgroup.map_eq_bot_iff_of_injective
@[to_additive]
theorem map_eq_bot_iff_of_injective {f : G →* N} (hf : Function.Injective f) :
    H.map f = ⊥ ↔ H = ⊥ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (H : Subgroup G) {f : G →* N} (hf : Function.Injective ⇑f)
Goal: Subgroup.map f H = ⊥ ↔ H = ⊥
-- AddSubgroup.map_eq_bot_iff_of_injective
@[to_additive]
theorem map_eq_bot_iff_of_injective {f : G →* N} (hf : Function.Injective f) :
    H.map f = ⊥ ↔ H = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (H : AddSubgroup G) {f : G →+ N} (hf : Function.Injective ⇑f)
Goal: AddSubgroup.map f H = ⊥ ↔ H = ⊥
-- AddSubgroup.map_le_range
@[to_additive]
theorem map_le_range (H : Subgroup G) : map f H ≤ f.range 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup G)
Goal: AddSubgroup.map f H ≤ f.range
-- Subgroup.map_le_range
@[to_additive]
theorem map_le_range (H : Subgroup G) : map f H ≤ f.range 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup G)
Goal: Subgroup.map f H ≤ f.range
-- AddSubgroup.map_subtype_le
@[to_additive]
theorem map_subtype_le {H : Subgroup G} (K : Subgroup H) : K.map H.subtype ≤ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} (K : AddSubgroup ↥H)
Goal: AddSubgroup.map H.subtype K ≤ H
-- Subgroup.map_subtype_le
@[to_additive]
theorem map_subtype_le {H : Subgroup G} (K : Subgroup H) : K.map H.subtype ≤ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (K : Subgroup ↥H)
Goal: Subgroup.map H.subtype K ≤ H
-- Subgroup.ker_le_comap
@[to_additive]
theorem ker_le_comap (H : Subgroup N) : f.ker ≤ comap f H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup N)
Goal: f.ker ≤ Subgroup.comap f H
-- AddSubgroup.ker_le_comap
@[to_additive]
theorem ker_le_comap (H : Subgroup N) : f.ker ≤ comap f H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup N)
Goal: f.ker ≤ AddSubgroup.comap f H
-- Subgroup.map_comap_le
@[to_additive]
theorem map_comap_le (H : Subgroup N) : map f (comap f H) ≤ H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup N)
Goal: Subgroup.map f (Subgroup.comap f H) ≤ H
-- AddSubgroup.map_comap_le
@[to_additive]
theorem map_comap_le (H : Subgroup N) : map f (comap f H) ≤ H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup N)
Goal: AddSubgroup.map f (AddSubgroup.comap f H) ≤ H
-- Subgroup.le_comap_map
@[to_additive]
theorem le_comap_map (H : Subgroup G) : H ≤ comap f (map f H) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup G)
Goal: H ≤ Subgroup.comap f (Subgroup.map f H)
-- AddSubgroup.le_comap_map
@[to_additive]
theorem le_comap_map (H : Subgroup G) : H ≤ comap f (map f H) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup G)
Goal: H ≤ AddSubgroup.comap f (AddSubgroup.map f H)
-- AddSubgroup.map_comap_eq
@[to_additive]
theorem map_comap_eq (H : Subgroup N) : map f (comap f H) = f.range ⊓ H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup N)
Goal: AddSubgroup.map f (AddSubgroup.comap f H) = f.range ⊓ H
-- Subgroup.map_comap_eq
@[to_additive]
theorem map_comap_eq (H : Subgroup N) : map f (comap f H) = f.range ⊓ H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup N)
Goal: Subgroup.map f (Subgroup.comap f H) = f.range ⊓ H
-- AddSubgroup.comap_map_eq
@[to_additive]
theorem comap_map_eq (H : Subgroup G) : comap f (map f H) = H ⊔ f.ker 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (f : G →+ N) (H : AddSubgroup G)
Goal: AddSubgroup.comap f (AddSubgroup.map f H) = H ⊔ f.ker
-- Subgroup.comap_map_eq
@[to_additive]
theorem comap_map_eq (H : Subgroup G) : comap f (map f H) = H ⊔ f.ker 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (f : G →* N) (H : Subgroup G)
Goal: Subgroup.comap f (Subgroup.map f H) = H ⊔ f.ker
-- Subgroup.map_comap_eq_self
@[to_additive]
theorem map_comap_eq_self {f : G →* N} {H : Subgroup N} (h : H ≤ f.range) :
    map f (comap f H) = H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {H : Subgroup N} (h : H ≤ f.range)
Goal: Subgroup.map f (Subgroup.comap f H) = H
-- AddSubgroup.map_comap_eq_self
@[to_additive]
theorem map_comap_eq_self {f : G →* N} {H : Subgroup N} (h : H ≤ f.range) :
    map f (comap f H) = H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {H : AddSubgroup N} (h : H ≤ f.range)
Goal: AddSubgroup.map f (AddSubgroup.comap f H) = H
-- AddSubgroup.map_comap_eq_self_of_surjective
@[to_additive]
theorem map_comap_eq_self_of_surjective {f : G →* N} (h : Function.Surjective f) (H : Subgroup N) :
    map f (comap f H) = H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} (h : Function.Surjective ⇑f) (H : AddSubgroup N)
Goal: AddSubgroup.map f (AddSubgroup.comap f H) = H
-- Subgroup.map_comap_eq_self_of_surjective
@[to_additive]
theorem map_comap_eq_self_of_surjective {f : G →* N} (h : Function.Surjective f) (H : Subgroup N) :
    map f (comap f H) = H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} (h : Function.Surjective ⇑f) (H : Subgroup N)
Goal: Subgroup.map f (Subgroup.comap f H) = H
-- Subgroup.comap_le_comap_of_le_range
@[to_additive]
theorem comap_le_comap_of_le_range {f : G →* N} {K L : Subgroup N} (hf : K ≤ f.range) :
    K.comap f ≤ L.comap f ↔ K ≤ L 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {K L : Subgroup N} (hf : K ≤ f.range)
Goal: Subgroup.comap f K ≤ Subgroup.comap f L ↔ K ≤ L
-- AddSubgroup.comap_le_comap_of_le_range
@[to_additive]
theorem comap_le_comap_of_le_range {f : G →* N} {K L : Subgroup N} (hf : K ≤ f.range) :
    K.comap f ≤ L.comap f ↔ K ≤ L 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {K L : AddSubgroup N} (hf : K ≤ f.range)
Goal: AddSubgroup.comap f K ≤ AddSubgroup.comap f L ↔ K ≤ L
-- Subgroup.comap_le_comap_of_surjective
@[to_additive]
theorem comap_le_comap_of_surjective {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective f) :
    K.comap f ≤ L.comap f ↔ K ≤ L 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective ⇑f)
Goal: Subgroup.comap f K ≤ Subgroup.comap f L ↔ K ≤ L
-- AddSubgroup.comap_le_comap_of_surjective
@[to_additive]
theorem comap_le_comap_of_surjective {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective f) :
    K.comap f ≤ L.comap f ↔ K ≤ L 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {K L : AddSubgroup N} (hf : Function.Surjective ⇑f)
Goal: AddSubgroup.comap f K ≤ AddSubgroup.comap f L ↔ K ≤ L
-- AddSubgroup.comap_lt_comap_of_surjective
@[to_additive]
theorem comap_lt_comap_of_surjective {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective f) :
    K.comap f < L.comap f ↔ K < L 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} {K L : AddSubgroup N} (hf : Function.Surjective ⇑f)
Goal: AddSubgroup.comap f K < AddSubgroup.comap f L ↔ K < L
-- Subgroup.comap_lt_comap_of_surjective
@[to_additive]
theorem comap_lt_comap_of_surjective {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective f) :
    K.comap f < L.comap f ↔ K < L 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} {K L : Subgroup N} (hf : Function.Surjective ⇑f)
Goal: Subgroup.comap f K < Subgroup.comap f L ↔ K < L
-- AddSubgroup.comap_injective
@[to_additive]
theorem comap_injective {f : G →* N} (h : Function.Surjective f) : Function.Injective (comap f) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {f : G →+ N} (h : Function.Surjective ⇑f)
Goal: Function.Injective (AddSubgroup.comap f)
-- Subgroup.comap_injective
@[to_additive]
theorem comap_injective {f : G →* N} (h : Function.Surjective f) : Function.Injective (comap f) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {f : G →* N} (h : Function.Surjective ⇑f)
Goal: Function.Injective (Subgroup.comap f)