ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MulAction.toPerm_injective
@[to_additive "`AddAction.toPerm` is injective on faithful actions."]
lemma MulAction.toPerm_injective [FaithfulSMul α β] :
    Function.Injective (MulAction.toPerm : α → Equiv.Perm β) 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] [FaithfulSMul α β]
Goal: Function.Injective MulAction.toPerm
-- AddAction.toPerm_injective
@[to_additive "`AddAction.toPerm` is injective on faithful actions."]
lemma MulAction.toPerm_injective [FaithfulSMul α β] :
    Function.Injective (MulAction.toPerm : α → Equiv.Perm β) 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] [FaithfulVAdd α β]
Goal: Function.Injective AddAction.toPerm
-- MulAction.toPermHom_apply
@[simps]
def MulAction.toPermHom : α →* Equiv.Perm β 
Arguments: (α : Type u_1) (β : Type u_2) [Group α] [MulAction α β] (a : α)
Goal: (MulAction.toPermHom α β) a = MulAction.toPerm a
-- AddAction.toPermHom_apply_symm_apply
@[simps!]
def AddAction.toPermHom (α : Type*) [AddGroup α] [AddAction α β] :
    α →+ Additive (Equiv.Perm β) 
Arguments: (β : Type u_2) (α : Type u_4) [AddGroup α] [AddAction α β] (a : α) (x : β)
Goal: (Equiv.symm ((AddAction.toPermHom β α) a)) x = (Multiplicative.ofAdd a)⁻¹ • x
-- AddAction.toPermHom_apply_apply
@[simps!]
def AddAction.toPermHom (α : Type*) [AddGroup α] [AddAction α β] :
    α →+ Additive (Equiv.Perm β) 
Arguments: (β : Type u_2) (α : Type u_4) [AddGroup α] [AddAction α β] (a : α) (x : β)
Goal: ((AddAction.toPermHom β α) a) x = a +ᵥ x
-- Equiv.Perm.smul_def
@[simp]
protected lemma Equiv.Perm.smul_def {α : Type*} (f : Equiv.Perm α) (a : α) : f • a = f a 
Arguments: {α : Type u_4} (f : Equiv.Perm α) (a : α)
Goal: f • a = f a
-- MulAction.bijective
@[to_additive]
protected lemma MulAction.bijective (g : α) : Function.Bijective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α)
Goal: Function.Bijective fun x => g • x
-- AddAction.bijective
@[to_additive]
protected lemma MulAction.bijective (g : α) : Function.Bijective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α)
Goal: Function.Bijective fun x => g +ᵥ x
-- AddAction.injective
@[to_additive]
protected lemma MulAction.injective (g : α) : Function.Injective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α)
Goal: Function.Injective fun x => g +ᵥ x
-- MulAction.injective
@[to_additive]
protected lemma MulAction.injective (g : α) : Function.Injective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α)
Goal: Function.Injective fun x => g • x
-- MulAction.surjective
@[to_additive]
protected lemma MulAction.surjective (g : α) : Function.Surjective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α)
Goal: Function.Surjective fun x => g • x
-- AddAction.surjective
@[to_additive]
protected lemma MulAction.surjective (g : α) : Function.Surjective (g • · : β → β) 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α)
Goal: Function.Surjective fun x => g +ᵥ x
-- vadd_left_cancel
@[to_additive]
lemma smul_left_cancel (g : α) {x y : β} (h : g • x = g • y) : x = y 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α) {x y : β} (h : g +ᵥ x = g +ᵥ y)
Goal: x = y
-- smul_left_cancel
@[to_additive]
lemma smul_left_cancel (g : α) {x y : β} (h : g • x = g • y) : x = y 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α) {x y : β} (h : g • x = g • y)
Goal: x = y
-- smul_left_cancel_iff
@[to_additive (attr := simp)]
lemma smul_left_cancel_iff (g : α) {x y : β} : g • x = g • y ↔ x = y 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α) {x y : β}
Goal: g • x = g • y ↔ x = y
-- vadd_left_cancel_iff
@[to_additive (attr := simp)]
lemma smul_left_cancel_iff (g : α) {x y : β} : g • x = g • y ↔ x = y 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α) {x y : β}
Goal: g +ᵥ x = g +ᵥ y ↔ x = y
-- vadd_eq_iff_eq_neg_vadd
@[to_additive]
lemma smul_eq_iff_eq_inv_smul (g : α) {x y : β} : g • x = y ↔ x = g⁻¹ • y 
Arguments: {α : Type u_1} {β : Type u_2} [AddGroup α] [AddAction α β] (g : α) {x y : β}
Goal: g +ᵥ x = y ↔ x = -g +ᵥ y
-- smul_eq_iff_eq_inv_smul
@[to_additive]
lemma smul_eq_iff_eq_inv_smul (g : α) {x y : β} : g • x = y ↔ x = g⁻¹ • y 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [MulAction α β] (g : α) {x y : β}
Goal: g • x = y ↔ x = g⁻¹ • y
-- invOf_smul_smul
@[simp] lemma invOf_smul_smul : ⅟c • c • x = x 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [MulAction α β] (c : α) (x : β) [Invertible c]
Goal: ⅟c • c • x = x
-- smul_invOf_smul
@[simp] lemma smul_invOf_smul : c • (⅟ c • x) = x 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [MulAction α β] (c : α) (x : β) [Invertible c]
Goal: c • ⅟c • x = x
-- invOf_smul_eq_iff
lemma invOf_smul_eq_iff : ⅟c • x = y ↔ x = c • y 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [MulAction α β] {c : α} {x y : β} [Invertible c]
Goal: ⅟c • x = y ↔ x = c • y
-- smul_eq_iff_eq_invOf_smul
lemma smul_eq_iff_eq_invOf_smul : c • x = y ↔ x = ⅟c • y 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [MulAction α β] {c : α} {x y : β} [Invertible c]
Goal: c • x = y ↔ x = ⅟c • y
-- arrowAddAction_vadd
@[to_additive (attr := simps) arrowAddAction
      "If `G` acts on `A`, then it acts also on `A → B`, by `(g +ᵥ F) a = F (g⁻¹ +ᵥ a)`"]
def arrowAction {G A B : Type*} [DivisionMonoid G] [MulAction G A] : MulAction G (A → B) 
Arguments: {G : Type u_4} {A : Type u_5} {B : Type u_6} [SubtractionMonoid G] [AddAction G A] (g : G) (F : A → B) (a : A)
Goal: VAdd.vadd g F a = F (-g +ᵥ a)
-- arrowAction_smul
@[to_additive (attr := simps) arrowAddAction
      "If `G` acts on `A`, then it acts also on `A → B`, by `(g +ᵥ F) a = F (g⁻¹ +ᵥ a)`"]
def arrowAction {G A B : Type*} [DivisionMonoid G] [MulAction G A] : MulAction G (A → B) 
Arguments: {G : Type u_4} {A : Type u_5} {B : Type u_6} [DivisionMonoid G] [MulAction G A] (g : G) (F : A → B) (a : A)
Goal: SMul.smul g F a = F (g⁻¹ • a)
-- IsAddUnit.vadd_left_cancel
@[to_additive]
lemma smul_left_cancel {a : α} (ha : IsUnit a) {x y : β} : a • x = a • y ↔ x = y 
Arguments: {α : Type u_1} {β : Type u_2} [AddMonoid α] [AddAction α β] {a : α} (ha : IsAddUnit a) {x y : β}
Goal: a +ᵥ x = a +ᵥ y ↔ x = y
-- IsUnit.smul_left_cancel
@[to_additive]
lemma smul_left_cancel {a : α} (ha : IsUnit a) {x y : β} : a • x = a • y ↔ x = y 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [MulAction α β] {a : α} (ha : IsUnit a) {x y : β}
Goal: a • x = a • y ↔ x = y
-- isUnit_smul_iff
@[simp] lemma isUnit_smul_iff (g : α) (m : β) : IsUnit (g • m) ↔ IsUnit m 
Arguments: {α : Type u_1} {β : Type u_2} [Group α] [Monoid β] [MulAction α β] [SMulCommClass α β β] [IsScalarTower α β β] (g : α) (m : β)
Goal: IsUnit (g • m) ↔ IsUnit m
-- MulOpposite.op_smul_eq_op_smul_op
@[to_additive]
lemma op_smul_eq_op_smul_op [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : M) (a : α) :
    op (r • a) = op r • op a 
Arguments: {M : Type u_2} {α : Type u_4} [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : M) (a : α)
Goal: MulOpposite.op (r • a) = MulOpposite.op r • MulOpposite.op a
-- AddOpposite.op_vadd_eq_op_vadd_op
@[to_additive]
lemma op_smul_eq_op_smul_op [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : M) (a : α) :
    op (r • a) = op r • op a 
Arguments: {M : Type u_2} {α : Type u_4} [VAdd M α] [VAdd Mᵃᵒᵖ α] [IsCentralVAdd M α] (r : M) (a : α)
Goal: AddOpposite.op (r +ᵥ a) = AddOpposite.op r +ᵥ AddOpposite.op a
-- MulOpposite.unop_smul_eq_unop_smul_unop
@[to_additive]
lemma unop_smul_eq_unop_smul_unop [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : Mᵐᵒᵖ)
    (a : αᵐᵒᵖ) : unop (r • a) = unop r • unop a 
Arguments: {M : Type u_2} {α : Type u_4} [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : Mᵐᵒᵖ) (a : αᵐᵒᵖ)
Goal: MulOpposite.unop (r • a) = MulOpposite.unop r • MulOpposite.unop a
-- AddOpposite.unop_vadd_eq_unop_vadd_unop
@[to_additive]
lemma unop_smul_eq_unop_smul_unop [SMul M α] [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] (r : Mᵐᵒᵖ)
    (a : αᵐᵒᵖ) : unop (r • a) = unop r • unop a 
Arguments: {M : Type u_2} {α : Type u_4} [VAdd M α] [VAdd Mᵃᵒᵖ α] [IsCentralVAdd M α] (r : Mᵃᵒᵖ) (a : αᵃᵒᵖ)
Goal: AddOpposite.unop (r +ᵥ a) = AddOpposite.unop r +ᵥ AddOpposite.unop a
-- op_smul_op_smul
@[to_additive]
lemma op_smul_op_smul (b : β) (a₁ a₂ : α) : b <• a₁ <• a₂ = b <• (a₁ * a₂) 
Arguments: {α : Type u_5} {β : Type u_6} [Monoid α] [MulAction αᵐᵒᵖ β] (b : β) (a₁ a₂ : α)
Goal: MulOpposite.op a₂ • MulOpposite.op a₁ • b = MulOpposite.op (a₁ * a₂) • b
-- op_vadd_op_vadd
@[to_additive]
lemma op_smul_op_smul (b : β) (a₁ a₂ : α) : b <• a₁ <• a₂ = b <• (a₁ * a₂) 
Arguments: {α : Type u_5} {β : Type u_6} [AddMonoid α] [AddAction αᵃᵒᵖ β] (b : β) (a₁ a₂ : α)
Goal: AddOpposite.op a₂ +ᵥ (AddOpposite.op a₁ +ᵥ b) = AddOpposite.op (a₁ + a₂) +ᵥ b
-- op_vadd_add
@[to_additive]
lemma op_smul_mul (b : β) (a₁ a₂ : α) : b <• (a₁ * a₂) = b <• a₁ <• a₂ 
Arguments: {α : Type u_5} {β : Type u_6} [AddMonoid α] [AddAction αᵃᵒᵖ β] (b : β) (a₁ a₂ : α)
Goal: AddOpposite.op (a₁ + a₂) +ᵥ b = AddOpposite.op a₂ +ᵥ (AddOpposite.op a₁ +ᵥ b)
-- op_smul_mul
@[to_additive]
lemma op_smul_mul (b : β) (a₁ a₂ : α) : b <• (a₁ * a₂) = b <• a₁ <• a₂ 
Arguments: {α : Type u_5} {β : Type u_6} [Monoid α] [MulAction αᵐᵒᵖ β] (b : β) (a₁ a₂ : α)
Goal: MulOpposite.op (a₁ * a₂) • b = MulOpposite.op a₂ • MulOpposite.op a₁ • b
-- op_smul_eq_mul
@[to_additive] lemma op_smul_eq_mul [Mul α] {a a' : α} : op a • a' = a' * a 
Arguments: {α : Type u_4} [Mul α] {a a' : α}
Goal: MulOpposite.op a • a' = a' * a
-- op_vadd_eq_add
@[to_additive] lemma op_smul_eq_mul [Mul α] {a a' : α} : op a • a' = a' * a 
Arguments: {α : Type u_4} [Add α] {a a' : α}
Goal: AddOpposite.op a +ᵥ a' = a' + a
-- MulOpposite.smul_eq_mul_unop
@[to_additive (attr := simp)]
lemma MulOpposite.smul_eq_mul_unop [Mul α] {a : αᵐᵒᵖ} {a' : α} : a • a' = a' * a.unop 
Arguments: {α : Type u_4} [Mul α] {a : αᵐᵒᵖ} {a' : α}
Goal: a • a' = a' * MulOpposite.unop a
-- AddOpposite.vadd_eq_add_unop
@[to_additive (attr := simp)]
lemma MulOpposite.smul_eq_mul_unop [Mul α] {a : αᵐᵒᵖ} {a' : α} : a • a' = a' * a.unop 
Arguments: {α : Type u_4} [Add α] {a : αᵃᵒᵖ} {a' : α}
Goal: a +ᵥ a' = a' + AddOpposite.unop a
-- Pi.smul_apply'
@[to_additive (attr := simp)]
lemma smul_apply' [∀ i, SMul (α i) (β i)] (s : ∀ i, α i) (x : ∀ i, β i) : (s • x) i = s i • x i 
Arguments: {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} (i : ι) [(i : ι) → SMul (α i) (β i)] (s : (i : ι) → α i) (x : (i : ι) → β i)
Goal: (s • x) i = s i • x i
-- Pi.vadd_apply'
@[to_additive (attr := simp)]
lemma smul_apply' [∀ i, SMul (α i) (β i)] (s : ∀ i, α i) (x : ∀ i, β i) : (s • x) i = s i • x i 
Arguments: {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} (i : ι) [(i : ι) → VAdd (α i) (β i)] (s : (i : ι) → α i) (x : (i : ι) → β i)
Goal: (s +ᵥ x) i = s i +ᵥ x i
-- Pi.faithfulSMul_at
@[to_additive
"If `α i` has a faithful additive action for a given `i`, then
so does `Π i, α i`. This is not an instance as `i` cannot be inferred"]
lemma faithfulSMul_at [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)] :
    FaithfulSMul M (∀ i, α i) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] [∀ (i : ι), Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)]
Goal: FaithfulSMul M ((i : ι) → α i)
-- Pi.faithfulVAdd_at
@[to_additive
"If `α i` has a faithful additive action for a given `i`, then
so does `Π i, α i`. This is not an instance as `i` cannot be inferred"]
lemma faithfulSMul_at [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)] :
    FaithfulSMul M (∀ i, α i) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] [∀ (i : ι), Nonempty (α i)] (i : ι) [FaithfulVAdd M (α i)]
Goal: FaithfulVAdd M ((i : ι) → α i)
-- Function.update_smul
@[to_additive]
lemma update_smul [∀ i, SMul M (α i)] [DecidableEq ι] (c : M) (f₁ : ∀ i, α i)
    (i : ι) (x₁ : α i) : update (c • f₁) i (c • x₁) = c • update f₁ i x₁ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] [DecidableEq ι] (c : M) (f₁ : (i : ι) → α i) (i : ι) (x₁ : α i)
Goal: Function.update (c • f₁) i (c • x₁) = c • Function.update f₁ i x₁
-- Function.update_vadd
@[to_additive]
lemma update_smul [∀ i, SMul M (α i)] [DecidableEq ι] (c : M) (f₁ : ∀ i, α i)
    (i : ι) (x₁ : α i) : update (c • f₁) i (c • x₁) = c • update f₁ i x₁ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] [DecidableEq ι] (c : M) (f₁ : (i : ι) → α i) (i : ι) (x₁ : α i)
Goal: Function.update (c +ᵥ f₁) i (c +ᵥ x₁) = c +ᵥ Function.update f₁ i x₁
-- Function.extend_vadd
@[to_additive]
lemma extend_smul {M α β : Type*} [SMul M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β) :
    extend f (r • g) (r • e) = r • extend f g e 
Arguments: {ι : Type u_1} {M : Type u_7} {α : Type u_8} {β : Type u_9} [VAdd M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β)
Goal: Function.extend f (r +ᵥ g) (r +ᵥ e) = r +ᵥ Function.extend f g e
-- Function.extend_smul
@[to_additive]
lemma extend_smul {M α β : Type*} [SMul M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β) :
    extend f (r • g) (r • e) = r • extend f g e 
Arguments: {ι : Type u_1} {M : Type u_7} {α : Type u_8} {β : Type u_9} [SMul M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β)
Goal: Function.extend f (r • g) (r • e) = r • Function.extend f g e
-- Set.piecewise_smul
@[to_additive]
lemma piecewise_smul [∀ i, SMul M (α i)] (s : Set ι) [∀ i, Decidable (i ∈ s)]
    (c : M) (f₁ g₁ : ∀ i, α i) : s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] (s : Set ι) [(i : ι) → Decidable (i ∈ s)] (c : M) (f₁ g₁ : (i : ι) → α i)
Goal: s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁
-- Set.piecewise_vadd
@[to_additive]
lemma piecewise_smul [∀ i, SMul M (α i)] (s : Set ι) [∀ i, Decidable (i ∈ s)]
    (c : M) (f₁ g₁ : ∀ i, α i) : s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] (s : Set ι) [(i : ι) → Decidable (i ∈ s)] (c : M) (f₁ g₁ : (i : ι) → α i)
Goal: s.piecewise (c +ᵥ f₁) (c +ᵥ g₁) = c +ᵥ s.piecewise f₁ g₁
-- Option.smul_def
@[to_additive]
theorem smul_def : a • x = x.map (a • ·) 
Arguments: {M : Type u_1} {α : Type u_3} [SMul M α] (a : M) (x : Option α)
Goal: a • x = Option.map (fun x => a • x) x
-- Option.vadd_def
@[to_additive]
theorem smul_def : a • x = x.map (a • ·) 
Arguments: {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M) (x : Option α)
Goal: a +ᵥ x = Option.map (fun x => a +ᵥ x) x
-- Option.smul_none
@[to_additive (attr := simp)]
theorem smul_none : a • (none : Option α) = none 
Arguments: {M : Type u_1} {α : Type u_3} [SMul M α] (a : M)
Goal: a • none = none
-- Option.vadd_none
@[to_additive (attr := simp)]
theorem smul_none : a • (none : Option α) = none 
Arguments: {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M)
Goal: a +ᵥ none = none
-- Option.vadd_some
@[to_additive (attr := simp)]
theorem smul_some : a • some b = some (a • b) 
Arguments: {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M) (b : α)
Goal: a +ᵥ some b = some (a +ᵥ b)
-- Option.smul_some
@[to_additive (attr := simp)]
theorem smul_some : a • some b = some (a • b) 
Arguments: {M : Type u_1} {α : Type u_3} [SMul M α] (a : M) (b : α)
Goal: a • some b = some (a • b)
-- AddSubgroup.list_sum_mem
@[to_additive "Sum of a list of elements in an `AddSubgroup` is in the `AddSubgroup`."]
protected theorem list_prod_mem {l : List G} : (∀ x ∈ l, x ∈ K) → l.prod ∈ K 
Arguments: {G : Type u_1} [AddGroup G] (K : AddSubgroup G) {l : List G}
Goal: (∀ x ∈ l, x ∈ K) → l.sum ∈ K
-- Subgroup.list_prod_mem
@[to_additive "Sum of a list of elements in an `AddSubgroup` is in the `AddSubgroup`."]
protected theorem list_prod_mem {l : List G} : (∀ x ∈ l, x ∈ K) → l.prod ∈ K 
Arguments: {G : Type u_1} [Group G] (K : Subgroup G) {l : List G}
Goal: (∀ x ∈ l, x ∈ K) → l.prod ∈ K
-- AddSubgroup.multiset_sum_mem
@[to_additive "Sum of a multiset of elements in an `AddSubgroup` of an `AddCommGroup` is in
 the `AddSubgroup`."]
protected theorem multiset_prod_mem {G} [CommGroup G] (K : Subgroup G) (g : Multiset G) :
    (∀ a ∈ g, a ∈ K) → g.prod ∈ K 
Arguments: {G : Type u_3} [AddCommGroup G] (K : AddSubgroup G) (g : Multiset G)
Goal: (∀ a ∈ g, a ∈ K) → g.sum ∈ K
-- Subgroup.multiset_prod_mem
@[to_additive "Sum of a multiset of elements in an `AddSubgroup` of an `AddCommGroup` is in
 the `AddSubgroup`."]
protected theorem multiset_prod_mem {G} [CommGroup G] (K : Subgroup G) (g : Multiset G) :
    (∀ a ∈ g, a ∈ K) → g.prod ∈ K 
Arguments: {G : Type u_3} [CommGroup G] (K : Subgroup G) (g : Multiset G)
Goal: (∀ a ∈ g, a ∈ K) → g.prod ∈ K
-- Subgroup.multiset_noncommProd_mem
@[to_additive]
theorem multiset_noncommProd_mem (K : Subgroup G) (g : Multiset G) (comm) :
    (∀ a ∈ g, a ∈ K) → g.noncommProd comm ∈ K 
Arguments: {G : Type u_1} [Group G] (K : Subgroup G) (g : Multiset G) (comm : {x | x ∈ g}.Pairwise Commute)
Goal: (∀ a ∈ g, a ∈ K) → g.noncommProd comm ∈ K
-- AddSubgroup.multiset_noncommSum_mem
@[to_additive]
theorem multiset_noncommProd_mem (K : Subgroup G) (g : Multiset G) (comm) :
    (∀ a ∈ g, a ∈ K) → g.noncommProd comm ∈ K 
Arguments: {G : Type u_1} [AddGroup G] (K : AddSubgroup G) (g : Multiset G) (comm : {x | x ∈ g}.Pairwise AddCommute)
Goal: (∀ a ∈ g, a ∈ K) → g.noncommSum comm ∈ K
-- AddSubgroup.sum_mem
@[to_additive "Sum of elements in an `AddSubgroup` of an `AddCommGroup` indexed by a `Finset`
 is in the `AddSubgroup`."]
protected theorem prod_mem {G : Type*} [CommGroup G] (K : Subgroup G) {ι : Type*} {t : Finset ι}
    {f : ι → G} (h : ∀ c ∈ t, f c ∈ K) : (∏ c ∈ t, f c) ∈ K 
Arguments: {G : Type u_3} [AddCommGroup G] (K : AddSubgroup G) {ι : Type u_4} {t : Finset ι} {f : ι → G} (h : ∀ c ∈ t, f c ∈ K)
Goal: ∑ c ∈ t, f c ∈ K
-- Subgroup.prod_mem
@[to_additive "Sum of elements in an `AddSubgroup` of an `AddCommGroup` indexed by a `Finset`
 is in the `AddSubgroup`."]
protected theorem prod_mem {G : Type*} [CommGroup G] (K : Subgroup G) {ι : Type*} {t : Finset ι}
    {f : ι → G} (h : ∀ c ∈ t, f c ∈ K) : (∏ c ∈ t, f c) ∈ K 
Arguments: {G : Type u_3} [CommGroup G] (K : Subgroup G) {ι : Type u_4} {t : Finset ι} {f : ι → G} (h : ∀ c ∈ t, f c ∈ K)
Goal: ∏ c ∈ t, f c ∈ K
-- AddSubgroup.noncommSum_mem
@[to_additive]
theorem noncommProd_mem (K : Subgroup G) {ι : Type*} {t : Finset ι} {f : ι → G} (comm) :
    (∀ c ∈ t, f c ∈ K) → t.noncommProd f comm ∈ K 
Arguments: {G : Type u_1} [AddGroup G] (K : AddSubgroup G) {ι : Type u_3} {t : Finset ι} {f : ι → G} (comm : (↑t).Pairwise fun a b => AddCommute (f a) (f b))
Goal: (∀ c ∈ t, f c ∈ K) → t.noncommSum f comm ∈ K
-- Subgroup.noncommProd_mem
@[to_additive]
theorem noncommProd_mem (K : Subgroup G) {ι : Type*} {t : Finset ι} {f : ι → G} (comm) :
    (∀ c ∈ t, f c ∈ K) → t.noncommProd f comm ∈ K 
Arguments: {G : Type u_1} [Group G] (K : Subgroup G) {ι : Type u_3} {t : Finset ι} {f : ι → G} (comm : (↑t).Pairwise fun a b => Commute (f a) (f b))
Goal: (∀ c ∈ t, f c ∈ K) → t.noncommProd f comm ∈ K
-- AddSubgroup.val_list_sum
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_list_prod (l : List H) : (l.prod : G) = (l.map Subtype.val).prod 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) (l : List ↥H)
Goal: ↑l.sum = (List.map Subtype.val l).sum
-- Subgroup.val_list_prod
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_list_prod (l : List H) : (l.prod : G) = (l.map Subtype.val).prod 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) (l : List ↥H)
Goal: ↑l.prod = (List.map Subtype.val l).prod
-- Subgroup.val_multiset_prod
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_multiset_prod {G} [CommGroup G] (H : Subgroup G) (m : Multiset H) :
    (m.prod : G) = (m.map Subtype.val).prod 
Arguments: {G : Type u_3} [CommGroup G] (H : Subgroup G) (m : Multiset ↥H)
Goal: ↑m.prod = (Multiset.map Subtype.val m).prod
-- AddSubgroup.val_multiset_sum
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_multiset_prod {G} [CommGroup G] (H : Subgroup G) (m : Multiset H) :
    (m.prod : G) = (m.map Subtype.val).prod 
Arguments: {G : Type u_3} [AddCommGroup G] (H : AddSubgroup G) (m : Multiset ↥H)
Goal: ↑m.sum = (Multiset.map Subtype.val m).sum
-- AddSubgroup.val_finset_sum
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_finset_prod {ι G} [CommGroup G] (H : Subgroup G) (f : ι → H) (s : Finset ι) :
    ↑(∏ i ∈ s, f i) = (∏ i ∈ s, f i : G) 
Arguments: {ι : Type u_3} {G : Type u_4} [AddCommGroup G] (H : AddSubgroup G) (f : ι → ↥H) (s : Finset ι)
Goal: ↑(∑ i ∈ s, f i) = ∑ i ∈ s, ↑(f i)
-- Subgroup.val_finset_prod
@[to_additive (attr := simp 1100, norm_cast)]
theorem val_finset_prod {ι G} [CommGroup G] (H : Subgroup G) (f : ι → H) (s : Finset ι) :
    ↑(∏ i ∈ s, f i) = (∏ i ∈ s, f i : G) 
Arguments: {ι : Type u_3} {G : Type u_4} [CommGroup G] (H : Subgroup G) (f : ι → ↥H) (s : Finset ι)
Goal: ↑(∏ i ∈ s, f i) = ∏ i ∈ s, ↑(f i)
-- AddSubgroup.card_bot
@[to_additive] -- Porting note: removed `simp` because `simpNF` says it can prove it.
theorem card_bot : Nat.card (⊥ : Subgroup G) = 1 
Arguments: {G : Type u_1} [AddGroup G]
Goal: Nat.card ↥⊥ = 1
-- Subgroup.card_bot
@[to_additive] -- Porting note: removed `simp` because `simpNF` says it can prove it.
theorem card_bot : Nat.card (⊥ : Subgroup G) = 1 
Arguments: {G : Type u_1} [Group G]
Goal: Nat.card ↥⊥ = 1
-- Subgroup.card_top
@[to_additive]
theorem card_top : Nat.card (⊤ : Subgroup G) = Nat.card G 
Arguments: {G : Type u_1} [Group G]
Goal: Nat.card ↥⊤ = Nat.card G
-- AddSubgroup.card_top
@[to_additive]
theorem card_top : Nat.card (⊤ : Subgroup G) = Nat.card G 
Arguments: {G : Type u_1} [AddGroup G]
Goal: Nat.card ↥⊤ = Nat.card G
-- AddSubgroup.eq_top_of_card_eq
@[to_additive]
theorem eq_top_of_card_eq [Finite H] (h : Nat.card H = Nat.card G) :
    H = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [Finite ↥H] (h : Nat.card ↥H = Nat.card G)
Goal: H = ⊤
-- Subgroup.eq_top_of_card_eq
@[to_additive]
theorem eq_top_of_card_eq [Finite H] (h : Nat.card H = Nat.card G) :
    H = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [Finite ↥H] (h : Nat.card ↥H = Nat.card G)
Goal: H = ⊤
-- Subgroup.card_eq_iff_eq_top
@[to_additive (attr := simp)]
theorem card_eq_iff_eq_top [Finite H] : Nat.card H = Nat.card G ↔ H = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [Finite ↥H]
Goal: Nat.card ↥H = Nat.card G ↔ H = ⊤
-- AddSubgroup.card_eq_iff_eq_top
@[to_additive (attr := simp)]
theorem card_eq_iff_eq_top [Finite H] : Nat.card H = Nat.card G ↔ H = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [Finite ↥H]
Goal: Nat.card ↥H = Nat.card G ↔ H = ⊤
-- AddSubgroup.eq_top_of_le_card
@[to_additive]
theorem eq_top_of_le_card [Finite G] (h : Nat.card G ≤ Nat.card H) : H = ⊤ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [Finite G] (h : Nat.card G ≤ Nat.card ↥H)
Goal: H = ⊤
-- Subgroup.eq_top_of_le_card
@[to_additive]
theorem eq_top_of_le_card [Finite G] (h : Nat.card G ≤ Nat.card H) : H = ⊤ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [Finite G] (h : Nat.card G ≤ Nat.card ↥H)
Goal: H = ⊤
-- Subgroup.eq_bot_of_card_le
@[to_additive]
theorem eq_bot_of_card_le [Finite H] (h : Nat.card H ≤ 1) : H = ⊥ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) [Finite ↥H] (h : Nat.card ↥H ≤ 1)
Goal: H = ⊥
-- AddSubgroup.eq_bot_of_card_le
@[to_additive]
theorem eq_bot_of_card_le [Finite H] (h : Nat.card H ≤ 1) : H = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [Finite ↥H] (h : Nat.card ↥H ≤ 1)
Goal: H = ⊥
-- Subgroup.eq_bot_of_card_eq
@[to_additive]
theorem eq_bot_of_card_eq (h : Nat.card H = 1) : H = ⊥ 
Arguments: {G : Type u_1} [Group G] (H : Subgroup G) (h : Nat.card ↥H = 1)
Goal: H = ⊥
-- AddSubgroup.eq_bot_of_card_eq
@[to_additive]
theorem eq_bot_of_card_eq (h : Nat.card H = 1) : H = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) (h : Nat.card ↥H = 1)
Goal: H = ⊥
-- AddSubgroup.card_le_one_iff_eq_bot
@[to_additive card_le_one_iff_eq_bot]
theorem card_le_one_iff_eq_bot [Finite H] : Nat.card H ≤ 1 ↔ H = ⊥ 
Arguments: {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [Finite ↥H]
Goal: Nat.card ↥H ≤ 1 ↔ H = ⊥