ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Subgroup.mem_subgroupOf
@[to_additive]
theorem mem_subgroupOf {H K : Subgroup G} {h : K} : h ∈ H.subgroupOf K ↔ (h : G) ∈ H 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G} {h : ↥K}
Goal: h ∈ H.subgroupOf K ↔ ↑h ∈ H
-- AddSubgroup.mem_addSubgroupOf
@[to_additive]
theorem mem_subgroupOf {H K : Subgroup G} {h : K} : h ∈ H.subgroupOf K ↔ (h : G) ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G} {h : ↥K}
Goal: h ∈ H.addSubgroupOf K ↔ ↑h ∈ H
-- AddSubgroup.addSubgroupOf_map_subtype
@[to_additive (attr := simp)]
theorem subgroupOf_map_subtype (H K : Subgroup G) : (H.subgroupOf K).map K.subtype = H ⊓ K 
Arguments: {G : Type u_1} [AddGroup G] (H K : AddSubgroup G)
Goal: AddSubgroup.map K.subtype (H.addSubgroupOf K) = H ⊓ K
-- Subgroup.subgroupOf_map_subtype
@[to_additive (attr := simp)]
theorem subgroupOf_map_subtype (H K : Subgroup G) : (H.subgroupOf K).map K.subtype = H ⊓ K 
Arguments: {G : Type u_1} [Group G] (H K : Subgroup G)
Goal: Subgroup.map K.subtype (H.subgroupOf K) = H ⊓ K
-- AddSubgroup.bot_addSubgroupOf
@[to_additive (attr := simp)]
theorem bot_subgroupOf : (⊥ : Subgroup G).subgroupOf H = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: ⊥.addSubgroupOf H = ⊥
-- Subgroup.bot_subgroupOf
@[to_additive (attr := simp)]
theorem bot_subgroupOf : (⊥ : Subgroup G).subgroupOf H = ⊥ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: ⊥.subgroupOf H = ⊥
-- Subgroup.top_subgroupOf
@[to_additive (attr := simp)]
theorem top_subgroupOf : (⊤ : Subgroup G).subgroupOf H = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: ⊤.subgroupOf H = ⊤
-- AddSubgroup.top_addSubgroupOf
@[to_additive (attr := simp)]
theorem top_subgroupOf : (⊤ : Subgroup G).subgroupOf H = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: ⊤.addSubgroupOf H = ⊤
-- Subgroup.subgroupOf_bot_eq_bot
@[to_additive]
theorem subgroupOf_bot_eq_bot : H.subgroupOf ⊥ = ⊥ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.subgroupOf ⊥ = ⊥
-- AddSubgroup.addSubgroupOf_bot_eq_bot
@[to_additive]
theorem subgroupOf_bot_eq_bot : H.subgroupOf ⊥ = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: H.addSubgroupOf ⊥ = ⊥
-- AddSubgroup.addSubgroupOf_bot_eq_top
@[to_additive]
theorem subgroupOf_bot_eq_top : H.subgroupOf ⊥ = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: H.addSubgroupOf ⊥ = ⊤
-- Subgroup.subgroupOf_bot_eq_top
@[to_additive]
theorem subgroupOf_bot_eq_top : H.subgroupOf ⊥ = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.subgroupOf ⊥ = ⊤
-- AddSubgroup.addSubgroupOf_self
@[to_additive (attr := simp)]
theorem subgroupOf_self : H.subgroupOf H = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G)
Goal: H.addSubgroupOf H = ⊤
-- Subgroup.subgroupOf_self
@[to_additive (attr := simp)]
theorem subgroupOf_self : H.subgroupOf H = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G)
Goal: H.subgroupOf H = ⊤
-- Subgroup.subgroupOf_inj
@[to_additive (attr := simp)]
theorem subgroupOf_inj {H₁ H₂ K : Subgroup G} :
    H₁.subgroupOf K = H₂.subgroupOf K ↔ H₁ ⊓ K = H₂ ⊓ K 
Arguments: {G : Type u_1} [Group G] {H₁ H₂ K : Subgroup G}
Goal: H₁.subgroupOf K = H₂.subgroupOf K ↔ H₁ ⊓ K = H₂ ⊓ K
-- AddSubgroup.addSubgroupOf_inj
@[to_additive (attr := simp)]
theorem subgroupOf_inj {H₁ H₂ K : Subgroup G} :
    H₁.subgroupOf K = H₂.subgroupOf K ↔ H₁ ⊓ K = H₂ ⊓ K 
Arguments: {G : Type u_1} [AddGroup G] {H₁ H₂ K : AddSubgroup G}
Goal: H₁.addSubgroupOf K = H₂.addSubgroupOf K ↔ H₁ ⊓ K = H₂ ⊓ K
-- AddSubgroup.inf_addSubgroupOf_right
@[to_additive (attr := simp)]
theorem inf_subgroupOf_right (H K : Subgroup G) : (H ⊓ K).subgroupOf K = H.subgroupOf K 
Arguments: {G : Type u_1} [AddGroup G] (H K : AddSubgroup G)
Goal: (H ⊓ K).addSubgroupOf K = H.addSubgroupOf K
-- Subgroup.inf_subgroupOf_right
@[to_additive (attr := simp)]
theorem inf_subgroupOf_right (H K : Subgroup G) : (H ⊓ K).subgroupOf K = H.subgroupOf K 
Arguments: {G : Type u_1} [Group G] (H K : Subgroup G)
Goal: (H ⊓ K).subgroupOf K = H.subgroupOf K
-- AddSubgroup.inf_addSubgroupOf_left
@[to_additive (attr := simp)]
theorem inf_subgroupOf_left (H K : Subgroup G) : (K ⊓ H).subgroupOf K = H.subgroupOf K 
Arguments: {G : Type u_1} [AddGroup G] (H K : AddSubgroup G)
Goal: (K ⊓ H).addSubgroupOf K = H.addSubgroupOf K
-- Subgroup.inf_subgroupOf_left
@[to_additive (attr := simp)]
theorem inf_subgroupOf_left (H K : Subgroup G) : (K ⊓ H).subgroupOf K = H.subgroupOf K 
Arguments: {G : Type u_1} [Group G] (H K : Subgroup G)
Goal: (K ⊓ H).subgroupOf K = H.subgroupOf K
-- Subgroup.subgroupOf_eq_bot
@[to_additive (attr := simp)]
theorem subgroupOf_eq_bot {H K : Subgroup G} : H.subgroupOf K = ⊥ ↔ Disjoint H K 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G}
Goal: H.subgroupOf K = ⊥ ↔ Disjoint H K
-- AddSubgroup.addSubgroupOf_eq_bot
@[to_additive (attr := simp)]
theorem subgroupOf_eq_bot {H K : Subgroup G} : H.subgroupOf K = ⊥ ↔ Disjoint H K 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G}
Goal: H.addSubgroupOf K = ⊥ ↔ Disjoint H K
-- AddSubgroup.addSubgroupOf_eq_top
@[to_additive (attr := simp)]
theorem subgroupOf_eq_top {H K : Subgroup G} : H.subgroupOf K = ⊤ ↔ K ≤ H 
Arguments: {G : Type u_1} [AddGroup G] {H K : AddSubgroup G}
Goal: H.addSubgroupOf K = ⊤ ↔ K ≤ H
-- Subgroup.subgroupOf_eq_top
@[to_additive (attr := simp)]
theorem subgroupOf_eq_top {H K : Subgroup G} : H.subgroupOf K = ⊤ ↔ K ≤ H 
Arguments: {G : Type u_1} [Group G] {H K : Subgroup G}
Goal: H.subgroupOf K = ⊤ ↔ K ≤ H
-- Subgroup.coe_prod
@[to_additive coe_prod]
theorem coe_prod (H : Subgroup G) (K : Subgroup N) :
    (H.prod K : Set (G × N)) = (H : Set G) ×ˢ (K : Set N) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (H : Subgroup G) (K : Subgroup N)
Goal: ↑(H.prod K) = ↑H ×ˢ ↑K
-- AddSubgroup.coe_prod
@[to_additive coe_prod]
theorem coe_prod (H : Subgroup G) (K : Subgroup N) :
    (H.prod K : Set (G × N)) = (H : Set G) ×ˢ (K : Set N) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (H : AddSubgroup G) (K : AddSubgroup N)
Goal: ↑(H.prod K) = ↑H ×ˢ ↑K
-- AddSubgroup.mem_prod
@[to_additive mem_prod]
theorem mem_prod {H : Subgroup G} {K : Subgroup N} {p : G × N} : p ∈ H.prod K ↔ p.1 ∈ H ∧ p.2 ∈ K 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {H : AddSubgroup G} {K : AddSubgroup N} {p : G × N}
Goal: p ∈ H.prod K ↔ p.1 ∈ H ∧ p.2 ∈ K
-- Subgroup.mem_prod
@[to_additive mem_prod]
theorem mem_prod {H : Subgroup G} {K : Subgroup N} {p : G × N} : p ∈ H.prod K ↔ p.1 ∈ H ∧ p.2 ∈ K 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {H : Subgroup G} {K : Subgroup N} {p : G × N}
Goal: p ∈ H.prod K ↔ p.1 ∈ H ∧ p.2 ∈ K
-- AddSubgroup.prod_mono
@[to_additive prod_mono]
theorem prod_mono : ((· ≤ ·) ⇒ (· ≤ ·) ⇒ (· ≤ ·)) (@prod G _ N _) (@prod G _ N _) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N]
Goal: ((fun x x_1 => x ≤ x_1) ⇒ (fun x x_1 => x ≤ x_1) ⇒ fun x x_1 => x ≤ x_1) AddSubgroup.prod AddSubgroup.prod
-- Subgroup.prod_mono
@[to_additive prod_mono]
theorem prod_mono : ((· ≤ ·) ⇒ (· ≤ ·) ⇒ (· ≤ ·)) (@prod G _ N _) (@prod G _ N _) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N]
Goal: ((fun x x_1 => x ≤ x_1) ⇒ (fun x x_1 => x ≤ x_1) ⇒ fun x x_1 => x ≤ x_1) Subgroup.prod Subgroup.prod
-- Subgroup.prod_mono_right
@[to_additive prod_mono_right]
theorem prod_mono_right (K : Subgroup G) : Monotone fun t : Subgroup N => K.prod t 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (K : Subgroup G)
Goal: Monotone fun t => K.prod t
-- AddSubgroup.prod_mono_right
@[to_additive prod_mono_right]
theorem prod_mono_right (K : Subgroup G) : Monotone fun t : Subgroup N => K.prod t 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (K : AddSubgroup G)
Goal: Monotone fun t => K.prod t
-- AddSubgroup.prod_mono_left
@[to_additive prod_mono_left]
theorem prod_mono_left (H : Subgroup N) : Monotone fun K : Subgroup G => K.prod H 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (H : AddSubgroup N)
Goal: Monotone fun K => K.prod H
-- Subgroup.prod_mono_left
@[to_additive prod_mono_left]
theorem prod_mono_left (H : Subgroup N) : Monotone fun K : Subgroup G => K.prod H 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (H : Subgroup N)
Goal: Monotone fun K => K.prod H
-- AddSubgroup.prod_top
@[to_additive prod_top]
theorem prod_top (K : Subgroup G) : K.prod (⊤ : Subgroup N) = K.comap (MonoidHom.fst G N) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (K : AddSubgroup G)
Goal: K.prod ⊤ = AddSubgroup.comap (AddMonoidHom.fst G N) K
-- Subgroup.prod_top
@[to_additive prod_top]
theorem prod_top (K : Subgroup G) : K.prod (⊤ : Subgroup N) = K.comap (MonoidHom.fst G N) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (K : Subgroup G)
Goal: K.prod ⊤ = Subgroup.comap (MonoidHom.fst G N) K
-- AddSubgroup.top_prod
@[to_additive top_prod]
theorem top_prod (H : Subgroup N) : (⊤ : Subgroup G).prod H = H.comap (MonoidHom.snd G N) 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] (H : AddSubgroup N)
Goal: ⊤.prod H = AddSubgroup.comap (AddMonoidHom.snd G N) H
-- Subgroup.top_prod
@[to_additive top_prod]
theorem top_prod (H : Subgroup N) : (⊤ : Subgroup G).prod H = H.comap (MonoidHom.snd G N) 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] (H : Subgroup N)
Goal: ⊤.prod H = Subgroup.comap (MonoidHom.snd G N) H
-- AddSubgroup.top_prod_top
@[to_additive (attr := simp) top_prod_top]
theorem top_prod_top : (⊤ : Subgroup G).prod (⊤ : Subgroup N) = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N]
Goal: ⊤.prod ⊤ = ⊤
-- Subgroup.top_prod_top
@[to_additive (attr := simp) top_prod_top]
theorem top_prod_top : (⊤ : Subgroup G).prod (⊤ : Subgroup N) = ⊤ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N]
Goal: ⊤.prod ⊤ = ⊤
-- Subgroup.bot_prod_bot
@[to_additive]
theorem bot_prod_bot : (⊥ : Subgroup G).prod (⊥ : Subgroup N) = ⊥ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N]
Goal: ⊥.prod ⊥ = ⊥
-- AddSubgroup.bot_sum_bot
@[to_additive]
theorem bot_prod_bot : (⊥ : Subgroup G).prod (⊥ : Subgroup N) = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N]
Goal: ⊥.prod ⊥ = ⊥
-- AddSubgroup.le_prod_iff
@[to_additive le_prod_iff]
theorem le_prod_iff {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)} :
    J ≤ H.prod K ↔ map (MonoidHom.fst G N) J ≤ H ∧ map (MonoidHom.snd G N) J ≤ K 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {H : AddSubgroup G} {K : AddSubgroup N} {J : AddSubgroup (G × N)}
Goal: J ≤ H.prod K ↔ AddSubgroup.map (AddMonoidHom.fst G N) J ≤ H ∧ AddSubgroup.map (AddMonoidHom.snd G N) J ≤ K
-- Subgroup.le_prod_iff
@[to_additive le_prod_iff]
theorem le_prod_iff {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)} :
    J ≤ H.prod K ↔ map (MonoidHom.fst G N) J ≤ H ∧ map (MonoidHom.snd G N) J ≤ K 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)}
Goal: J ≤ H.prod K ↔ Subgroup.map (MonoidHom.fst G N) J ≤ H ∧ Subgroup.map (MonoidHom.snd G N) J ≤ K
-- Subgroup.prod_le_iff
@[to_additive prod_le_iff]
theorem prod_le_iff {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)} :
    H.prod K ≤ J ↔ map (MonoidHom.inl G N) H ≤ J ∧ map (MonoidHom.inr G N) K ≤ J 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)}
Goal: H.prod K ≤ J ↔ Subgroup.map (MonoidHom.inl G N) H ≤ J ∧ Subgroup.map (MonoidHom.inr G N) K ≤ J
-- AddSubgroup.prod_le_iff
@[to_additive prod_le_iff]
theorem prod_le_iff {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)} :
    H.prod K ≤ J ↔ map (MonoidHom.inl G N) H ≤ J ∧ map (MonoidHom.inr G N) K ≤ J 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {H : AddSubgroup G} {K : AddSubgroup N} {J : AddSubgroup (G × N)}
Goal: H.prod K ≤ J ↔ AddSubgroup.map (AddMonoidHom.inl G N) H ≤ J ∧ AddSubgroup.map (AddMonoidHom.inr G N) K ≤ J
-- AddSubgroup.prod_eq_bot_iff
@[to_additive (attr := simp) prod_eq_bot_iff]
theorem prod_eq_bot_iff {H : Subgroup G} {K : Subgroup N} : H.prod K = ⊥ ↔ H = ⊥ ∧ K = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] {N : Type u_5} [AddGroup N] {H : AddSubgroup G} {K : AddSubgroup N}
Goal: H.prod K = ⊥ ↔ H = ⊥ ∧ K = ⊥
-- Subgroup.prod_eq_bot_iff
@[to_additive (attr := simp) prod_eq_bot_iff]
theorem prod_eq_bot_iff {H : Subgroup G} {K : Subgroup N} : H.prod K = ⊥ ↔ H = ⊥ ∧ K = ⊥ 
Arguments: {G : Type u_1} [Group G] {N : Type u_5} [Group N] {H : Subgroup G} {K : Subgroup N}
Goal: H.prod K = ⊥ ↔ H = ⊥ ∧ K = ⊥
-- Subgroup.coe_pi
@[to_additive]
theorem coe_pi (I : Set η) (H : ∀ i, Subgroup (f i)) :
    (pi I H : Set (∀ i, f i)) = Set.pi I fun i => (H i : Set (f i)) 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] (I : Set η) (H : (i : η) → Subgroup (f i))
Goal: ↑(Subgroup.pi I H) = I.pi fun i => ↑(H i)
-- AddSubgroup.coe_pi
@[to_additive]
theorem coe_pi (I : Set η) (H : ∀ i, Subgroup (f i)) :
    (pi I H : Set (∀ i, f i)) = Set.pi I fun i => (H i : Set (f i)) 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] (I : Set η) (H : (i : η) → AddSubgroup (f i))
Goal: ↑(AddSubgroup.pi I H) = I.pi fun i => ↑(H i)
-- Subgroup.mem_pi
@[to_additive]
theorem mem_pi (I : Set η) {H : ∀ i, Subgroup (f i)} {p : ∀ i, f i} :
    p ∈ pi I H ↔ ∀ i : η, i ∈ I → p i ∈ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] (I : Set η) {H : (i : η) → Subgroup (f i)} {p : (i : η) → f i}
Goal: p ∈ Subgroup.pi I H ↔ ∀ i ∈ I, p i ∈ H i
-- AddSubgroup.mem_pi
@[to_additive]
theorem mem_pi (I : Set η) {H : ∀ i, Subgroup (f i)} {p : ∀ i, f i} :
    p ∈ pi I H ↔ ∀ i : η, i ∈ I → p i ∈ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] (I : Set η) {H : (i : η) → AddSubgroup (f i)} {p : (i : η) → f i}
Goal: p ∈ AddSubgroup.pi I H ↔ ∀ i ∈ I, p i ∈ H i
-- AddSubgroup.pi_top
@[to_additive]
theorem pi_top (I : Set η) : (pi I fun i => (⊤ : Subgroup (f i))) = ⊤ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] (I : Set η)
Goal: (AddSubgroup.pi I fun i => ⊤) = ⊤
-- Subgroup.pi_top
@[to_additive]
theorem pi_top (I : Set η) : (pi I fun i => (⊤ : Subgroup (f i))) = ⊤ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] (I : Set η)
Goal: (Subgroup.pi I fun i => ⊤) = ⊤
-- Subgroup.pi_empty
@[to_additive]
theorem pi_empty (H : ∀ i, Subgroup (f i)) : pi ∅ H = ⊤ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] (H : (i : η) → Subgroup (f i))
Goal: Subgroup.pi ∅ H = ⊤
-- AddSubgroup.pi_empty
@[to_additive]
theorem pi_empty (H : ∀ i, Subgroup (f i)) : pi ∅ H = ⊤ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] (H : (i : η) → AddSubgroup (f i))
Goal: AddSubgroup.pi ∅ H = ⊤
-- Subgroup.pi_bot
@[to_additive]
theorem pi_bot : (pi Set.univ fun i => (⊥ : Subgroup (f i))) = ⊥ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)]
Goal: (Subgroup.pi Set.univ fun i => ⊥) = ⊥
-- AddSubgroup.pi_bot
@[to_additive]
theorem pi_bot : (pi Set.univ fun i => (⊥ : Subgroup (f i))) = ⊥ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)]
Goal: (AddSubgroup.pi Set.univ fun i => ⊥) = ⊥
-- AddSubgroup.le_pi_iff
@[to_additive]
theorem le_pi_iff {I : Set η} {H : ∀ i, Subgroup (f i)} {J : Subgroup (∀ i, f i)} :
    J ≤ pi I H ↔ ∀ i : η, i ∈ I → map (Pi.evalMonoidHom f i) J ≤ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] {I : Set η} {H : (i : η) → AddSubgroup (f i)} {J : AddSubgroup ((i : η) → f i)}
Goal: J ≤ AddSubgroup.pi I H ↔ ∀ i ∈ I, AddSubgroup.map (Pi.evalAddMonoidHom f i) J ≤ H i
-- Subgroup.le_pi_iff
@[to_additive]
theorem le_pi_iff {I : Set η} {H : ∀ i, Subgroup (f i)} {J : Subgroup (∀ i, f i)} :
    J ≤ pi I H ↔ ∀ i : η, i ∈ I → map (Pi.evalMonoidHom f i) J ≤ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] {I : Set η} {H : (i : η) → Subgroup (f i)} {J : Subgroup ((i : η) → f i)}
Goal: J ≤ Subgroup.pi I H ↔ ∀ i ∈ I, Subgroup.map (Pi.evalMonoidHom f i) J ≤ H i
-- Subgroup.mulSingle_mem_pi
@[to_additive (attr := simp)]
theorem mulSingle_mem_pi [DecidableEq η] {I : Set η} {H : ∀ i, Subgroup (f i)} (i : η) (x : f i) :
    Pi.mulSingle i x ∈ pi I H ↔ i ∈ I → x ∈ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] [DecidableEq η] {I : Set η} {H : (i : η) → Subgroup (f i)} (i : η) (x : f i)
Goal: Pi.mulSingle i x ∈ Subgroup.pi I H ↔ i ∈ I → x ∈ H i
-- AddSubgroup.single_mem_pi
@[to_additive (attr := simp)]
theorem mulSingle_mem_pi [DecidableEq η] {I : Set η} {H : ∀ i, Subgroup (f i)} (i : η) (x : f i) :
    Pi.mulSingle i x ∈ pi I H ↔ i ∈ I → x ∈ H i 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] [DecidableEq η] {I : Set η} {H : (i : η) → AddSubgroup (f i)} (i : η) (x : f i)
Goal: Pi.single i x ∈ AddSubgroup.pi I H ↔ i ∈ I → x ∈ H i
-- AddSubgroup.pi_eq_bot_iff
@[to_additive]
theorem pi_eq_bot_iff (H : ∀ i, Subgroup (f i)) : pi Set.univ H = ⊥ ↔ ∀ i, H i = ⊥ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → AddGroup (f i)] (H : (i : η) → AddSubgroup (f i))
Goal: AddSubgroup.pi Set.univ H = ⊥ ↔ ∀ (i : η), H i = ⊥
-- Subgroup.pi_eq_bot_iff
@[to_additive]
theorem pi_eq_bot_iff (H : ∀ i, Subgroup (f i)) : pi Set.univ H = ⊥ ↔ ∀ i, H i = ⊥ 
Arguments: {η : Type u_7} {f : η → Type u_8} [(i : η) → Group (f i)] (H : (i : η) → Subgroup (f i))
Goal: Subgroup.pi Set.univ H = ⊥ ↔ ∀ (i : η), H i = ⊥
-- Subgroup.Normal.conj_mem
structure Normal : Prop where
    conj_mem : ∀ n, n ∈ H → ∀ g : G, g * n * g⁻¹ ∈ H
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (self : H.Normal) (n : G)
Goal: n ∈ H → ∀ (g : G), g * n * g⁻¹ ∈ H
-- AddSubgroup.Normal.conj_mem
structure Normal (H : AddSubgroup A) : Prop where
    conj_mem : ∀ n, n ∈ H → ∀ g : A, g + n + -g ∈ H
Arguments: {A : Type u_4} [AddGroup A] {H : AddSubgroup A} (self : H.Normal) (n : A)
Goal: n ∈ H → ∀ (g : A), g + n + -g ∈ H
-- Subgroup.Normal.conj_mem'
@[to_additive]
theorem conj_mem' (nH : H.Normal) (n : G) (hn : n ∈ H) (g : G) :
    g⁻¹ * n * g ∈ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (nH : H.Normal) (n : G) (hn : n ∈ H) (g : G)
Goal: g⁻¹ * n * g ∈ H
-- AddSubgroup.Normal.conj_mem'
@[to_additive]
theorem conj_mem' (nH : H.Normal) (n : G) (hn : n ∈ H) (g : G) :
    g⁻¹ * n * g ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} (nH : H.Normal) (n : G) (hn : n ∈ H) (g : G)
Goal: -g + n + g ∈ H
-- AddSubgroup.Normal.mem_comm
@[to_additive]
theorem mem_comm (nH : H.Normal) {a b : G} (h : a * b ∈ H) : b * a ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} (nH : H.Normal) {a b : G} (h : a + b ∈ H)
Goal: b + a ∈ H
-- Subgroup.Normal.mem_comm
@[to_additive]
theorem mem_comm (nH : H.Normal) {a b : G} (h : a * b ∈ H) : b * a ∈ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (nH : H.Normal) {a b : G} (h : a * b ∈ H)
Goal: b * a ∈ H
-- Subgroup.Normal.mem_comm_iff
@[to_additive]
theorem mem_comm_iff (nH : H.Normal) {a b : G} : a * b ∈ H ↔ b * a ∈ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (nH : H.Normal) {a b : G}
Goal: a * b ∈ H ↔ b * a ∈ H
-- AddSubgroup.Normal.mem_comm_iff
@[to_additive]
theorem mem_comm_iff (nH : H.Normal) {a b : G} : a * b ∈ H ↔ b * a ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G} (nH : H.Normal) {a b : G}
Goal: a + b ∈ H ↔ b + a ∈ H
-- Subgroup.Characteristic.fixed
structure Characteristic : Prop where
    fixed : ∀ ϕ : G ≃* G, H.comap ϕ.toMonoidHom = H
Arguments: {G : Type u_1} [Group G] {H : Subgroup G} (self : H.Characteristic) (ϕ : G ≃* G)
Goal: Subgroup.comap ϕ.toMonoidHom H = H
-- AddSubgroup.Characteristic.fixed
structure Characteristic : Prop where
    fixed : ∀ ϕ : A ≃+ A, H.comap ϕ.toAddMonoidHom = H
Arguments: {A : Type u_4} [AddGroup A] {H : AddSubgroup A} (self : H.Characteristic) (ϕ : A ≃+ A)
Goal: AddSubgroup.comap ϕ.toAddMonoidHom H = H
-- Subgroup.characteristic_iff_comap_eq
@[to_additive]
theorem characteristic_iff_comap_eq : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.comap ϕ.toMonoidHom = H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), Subgroup.comap ϕ.toMonoidHom H = H
-- AddSubgroup.characteristic_iff_comap_eq
@[to_additive]
theorem characteristic_iff_comap_eq : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.comap ϕ.toMonoidHom = H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), AddSubgroup.comap ϕ.toAddMonoidHom H = H
-- Subgroup.characteristic_iff_comap_le
@[to_additive]
theorem characteristic_iff_comap_le : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.comap ϕ.toMonoidHom ≤ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), Subgroup.comap ϕ.toMonoidHom H ≤ H
-- AddSubgroup.characteristic_iff_comap_le
@[to_additive]
theorem characteristic_iff_comap_le : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.comap ϕ.toMonoidHom ≤ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), AddSubgroup.comap ϕ.toAddMonoidHom H ≤ H
-- AddSubgroup.characteristic_iff_le_comap
@[to_additive]
theorem characteristic_iff_le_comap : H.Characteristic ↔ ∀ ϕ : G ≃* G, H ≤ H.comap ϕ.toMonoidHom 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), H ≤ AddSubgroup.comap ϕ.toAddMonoidHom H
-- Subgroup.characteristic_iff_le_comap
@[to_additive]
theorem characteristic_iff_le_comap : H.Characteristic ↔ ∀ ϕ : G ≃* G, H ≤ H.comap ϕ.toMonoidHom 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), H ≤ Subgroup.comap ϕ.toMonoidHom H
-- AddSubgroup.characteristic_iff_map_eq
@[to_additive]
theorem characteristic_iff_map_eq : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.map ϕ.toMonoidHom = H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), AddSubgroup.map ϕ.toAddMonoidHom H = H
-- Subgroup.characteristic_iff_map_eq
@[to_additive]
theorem characteristic_iff_map_eq : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.map ϕ.toMonoidHom = H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), Subgroup.map ϕ.toMonoidHom H = H
-- AddSubgroup.characteristic_iff_map_le
@[to_additive]
theorem characteristic_iff_map_le : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.map ϕ.toMonoidHom ≤ H 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), AddSubgroup.map ϕ.toAddMonoidHom H ≤ H
-- Subgroup.characteristic_iff_map_le
@[to_additive]
theorem characteristic_iff_map_le : H.Characteristic ↔ ∀ ϕ : G ≃* G, H.map ϕ.toMonoidHom ≤ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), Subgroup.map ϕ.toMonoidHom H ≤ H
-- AddSubgroup.characteristic_iff_le_map
@[to_additive]
theorem characteristic_iff_le_map : H.Characteristic ↔ ∀ ϕ : G ≃* G, H ≤ H.map ϕ.toMonoidHom 
Arguments: {G : Type u_1} [AddGroup G] {H : AddSubgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃+ G), H ≤ AddSubgroup.map ϕ.toAddMonoidHom H
-- Subgroup.characteristic_iff_le_map
@[to_additive]
theorem characteristic_iff_le_map : H.Characteristic ↔ ∀ ϕ : G ≃* G, H ≤ H.map ϕ.toMonoidHom 
Arguments: {G : Type u_1} [Group G] {H : Subgroup G}
Goal: H.Characteristic ↔ ∀ (ϕ : G ≃* G), H ≤ Subgroup.map ϕ.toMonoidHom H
-- Subgroup.mem_normalizer_iff
@[to_additive]
theorem mem_normalizer_iff {g : G} : g ∈ H.normalizer ↔ ∀ h, h ∈ H ↔ g * h * g⁻¹ ∈ H 
Arguments: {G : Type u_1} [Group G] {H : Subgroup 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 ↔ ∀ h, 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
-- Subgroup.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} [Group G] {H : Subgroup G} {g : G}
Goal: g ∈ H.normalizer ↔ ∀ (h : G), h ∈ H ↔ g⁻¹ * h * g ∈ H