ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Submodule.comap_unop_pow
theorem comap_unop_pow (n : ℕ) :
    comap (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ).symm : Aᵐᵒᵖ →ₗ[R] A) (M ^ n) =
      comap (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ).symm : Aᵐᵒᵖ →ₗ[R] A) M ^ n 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [Semiring A] [Algebra R A] (M : Submodule R A) (n : ℕ)
Goal: Submodule.comap (↑(MulOpposite.opLinearEquiv R).symm) (M ^ n) =
  Submodule.comap (↑(MulOpposite.opLinearEquiv R).symm) M ^ n
-- Submodule.comap_op_pow
theorem comap_op_pow (n : ℕ) (M : Submodule R Aᵐᵒᵖ) :
    comap (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ) : A →ₗ[R] Aᵐᵒᵖ) (M ^ n) =
      comap (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ) : A →ₗ[R] Aᵐᵒᵖ) M ^ n 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [Semiring A] [Algebra R A] (n : ℕ) (M : Submodule R Aᵐᵒᵖ)
Goal: Submodule.comap (↑(MulOpposite.opLinearEquiv R)) (M ^ n) = Submodule.comap (↑(MulOpposite.opLinearEquiv R)) M ^ n
-- Submodule.map_op_pow
theorem map_op_pow (n : ℕ) :
    map (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ) : A →ₗ[R] Aᵐᵒᵖ) (M ^ n) =
      map (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ) : A →ₗ[R] Aᵐᵒᵖ) M ^ n 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [Semiring A] [Algebra R A] (M : Submodule R A) (n : ℕ)
Goal: Submodule.map (↑(MulOpposite.opLinearEquiv R)) (M ^ n) = Submodule.map (↑(MulOpposite.opLinearEquiv R)) M ^ n
-- Submodule.map_unop_pow
theorem map_unop_pow (n : ℕ) (M : Submodule R Aᵐᵒᵖ) :
    map (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ).symm : Aᵐᵒᵖ →ₗ[R] A) (M ^ n) =
      map (↑(opLinearEquiv R : A ≃ₗ[R] Aᵐᵒᵖ).symm : Aᵐᵒᵖ →ₗ[R] A) M ^ n 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [Semiring A] [Algebra R A] (n : ℕ) (M : Submodule R Aᵐᵒᵖ)
Goal: Submodule.map (↑(MulOpposite.opLinearEquiv R).symm) (M ^ n) = Submodule.map (↑(MulOpposite.opLinearEquiv R).symm) M ^ n
-- Submodule.span.ringHom_apply
@[simps]
def span.ringHom : SetSemiring A →+* Submodule R A 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [Semiring A] [Algebra R A] (s : SetSemiring A)
Goal: Submodule.span.ringHom s = Submodule.span R (SetSemiring.down s)
-- Submodule.mul_mem_mul_rev
theorem mul_mem_mul_rev (hm : m ∈ M) (hn : n ∈ N) : n * m ∈ M * N 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {M N : Submodule R A} {m n : A} (hm : m ∈ M) (hn : n ∈ N)
Goal: n * m ∈ M * N
-- Submodule.mul_comm
protected theorem mul_comm : M * N = N * M 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] (M N : Submodule R A)
Goal: M * N = N * M
-- Submodule.prod_span
theorem prod_span {ι : Type*} (s : Finset ι) (M : ι → Set A) :
    (∏ i ∈ s, Submodule.span R (M i)) = Submodule.span R (∏ i ∈ s, M i) 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {ι : Type u_1} (s : Finset ι) (M : ι → Set A)
Goal: ∏ i ∈ s, Submodule.span R (M i) = Submodule.span R (∏ i ∈ s, M i)
-- Submodule.prod_span_singleton
theorem prod_span_singleton {ι : Type*} (s : Finset ι) (x : ι → A) :
    (∏ i ∈ s, span R ({x i} : Set A)) = span R {∏ i ∈ s, x i} 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {ι : Type u_1} (s : Finset ι) (x : ι → A)
Goal: ∏ i ∈ s, Submodule.span R {x i} = Submodule.span R {∏ i ∈ s, x i}
-- Submodule.smul_def
theorem smul_def (s : SetSemiring A) (P : Submodule R A) :
    s • P = span R (SetSemiring.down (α := A) s) * P 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] (s : SetSemiring A) (P : Submodule R A)
Goal: s • P = Submodule.span R (SetSemiring.down s) * P
-- Submodule.smul_le_smul
theorem smul_le_smul {s t : SetSemiring A} {M N : Submodule R A}
    (h₁ : SetSemiring.down (α := A) s ⊆ SetSemiring.down (α := A) t)
    (h₂ : M ≤ N) : s • M ≤ t • N 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {s t : SetSemiring A} {M N : Submodule R A} (h₁ : SetSemiring.down s ⊆ SetSemiring.down t) (h₂ : M ≤ N)
Goal: s • M ≤ t • N
-- Submodule.singleton_smul
theorem singleton_smul (a : A) (M : Submodule R A) :
    Set.up ({a} : Set A) • M = M.map (LinearMap.mulLeft R a) 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] (a : A) (M : Submodule R A)
Goal: Set.up {a} • M = Submodule.map (LinearMap.mulLeft R a) M
-- Submodule.mem_div_iff_forall_mul_mem
theorem mem_div_iff_forall_mul_mem {x : A} {I J : Submodule R A} : x ∈ I / J ↔ ∀ y ∈ J, x * y ∈ I 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {x : A} {I J : Submodule R A}
Goal: x ∈ I / J ↔ ∀ y ∈ J, x * y ∈ I
-- Submodule.mem_div_iff_smul_subset
theorem mem_div_iff_smul_subset {x : A} {I J : Submodule R A} : x ∈ I / J ↔ x • (J : Set A) ⊆ I 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {x : A} {I J : Submodule R A}
Goal: x ∈ I / J ↔ x • ↑J ⊆ ↑I
-- Submodule.le_div_iff
theorem le_div_iff {I J K : Submodule R A} : I ≤ J / K ↔ ∀ x ∈ I, ∀ z ∈ K, x * z ∈ J 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {I J K : Submodule R A}
Goal: I ≤ J / K ↔ ∀ x ∈ I, ∀ z ∈ K, x * z ∈ J
-- Submodule.le_div_iff_mul_le
theorem le_div_iff_mul_le {I J K : Submodule R A} : I ≤ J / K ↔ I * K ≤ J 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {I J K : Submodule R A}
Goal: I ≤ J / K ↔ I * K ≤ J
-- Submodule.one_le_one_div
@[simp]
theorem one_le_one_div {I : Submodule R A} : 1 ≤ 1 / I ↔ I ≤ 1 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {I : Submodule R A}
Goal: 1 ≤ 1 / I ↔ I ≤ 1
-- Submodule.le_self_mul_one_div
theorem le_self_mul_one_div {I : Submodule R A} (hI : I ≤ 1) : I ≤ I * (1 / I) 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {I : Submodule R A} (hI : I ≤ 1)
Goal: I ≤ I * (1 / I)
-- Submodule.mul_one_div_le_one
theorem mul_one_div_le_one {I : Submodule R A} : I * (1 / I) ≤ 1 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {I : Submodule R A}
Goal: I * (1 / I) ≤ 1
-- Submodule.map_div
@[simp]
protected theorem map_div {B : Type*} [CommSemiring B] [Algebra R B] (I J : Submodule R A)
    (h : A ≃ₐ[R] B) : (I / J).map h.toLinearMap = I.map h.toLinearMap / J.map h.toLinearMap 
Arguments: {R : Type u} [CommSemiring R] {A : Type v} [CommSemiring A] [Algebra R A] {B : Type u_1} [CommSemiring B] [Algebra R B] (I J : Submodule R A) (h : A ≃ₐ[R] B)
Goal: Submodule.map h.toLinearMap (I / J) = Submodule.map h.toLinearMap I / Submodule.map h.toLinearMap J
-- AddAut.mulLeft_apply_apply
@[simps! (config := { simpRhs := true })]
def mulLeft : Rˣ →* AddAut R 
Arguments: {R : Type u_1} [Semiring R] (x : Rˣ)
Goal: ∀ (a : R), (AddAut.mulLeft x) a = x • a
-- AddAut.mulLeft_apply_symm_apply
@[simps! (config := { simpRhs := true })]
def mulLeft : Rˣ →* AddAut R 
Arguments: {R : Type u_1} [Semiring R] (x : Rˣ)
Goal: ∀ (a : R), (AddEquiv.symm (AddAut.mulLeft x)) a = x⁻¹ • a
-- AddAut.mulRight_apply
@[simp]
theorem mulRight_apply (u : Rˣ) (x : R) : mulRight u x = x * u 
Arguments: {R : Type u_1} [Semiring R] (u : Rˣ) (x : R)
Goal: (AddAut.mulRight u) x = x * ↑u
-- AddAut.mulRight_symm_apply
@[simp]
theorem mulRight_symm_apply (u : Rˣ) (x : R) : (mulRight u).symm x = x * u⁻¹ 
Arguments: {R : Type u_1} [Semiring R] (u : Rˣ) (x : R)
Goal: (AddEquiv.symm (AddAut.mulRight u)) x = x * ↑u⁻¹
-- isSumSq_iff
@[mk_iff]
inductive isSumSq [Add R] [Zero R] : R → Prop
  | zero                              : isSumSq 0
  | sq_add (a S : R) (pS : isSumSq S) : isSumSq (a * a + S)
Arguments: {R : Type u_1} [Mul R] [Add R] [Zero R]
Goal: ∀ (a : R), isSumSq a ↔ a = 0 ∨ ∃ a_1 S, isSumSq S ∧ a = a_1 * a_1 + S
-- isSumSq.add
theorem isSumSq.add [AddMonoid R] {S1 S2 : R} (p1 : isSumSq S1)
    (p2 : isSumSq S2) : isSumSq (S1 + S2) 
Arguments: {R : Type u_1} [Mul R] [AddMonoid R] {S1 S2 : R} (p1 : isSumSq S1) (p2 : isSumSq S2)
Goal: isSumSq (S1 + S2)
-- SquaresInSumSq
theorem SquaresInSumSq [AddMonoid R] {x : R} (px : IsSquare x) : x ∈ SumSqIn R 
Arguments: {R : Type u_1} [Mul R] [AddMonoid R] {x : R} (px : IsSquare x)
Goal: x ∈ SumSqIn R
-- SquaresAddClosure
theorem SquaresAddClosure [AddMonoid R] : closure IsSquare = SumSqIn R 
Arguments: {R : Type u_1} [Mul R] [AddMonoid R]
Goal: AddSubmonoid.closure IsSquare = SumSqIn R
-- isSumSq.nonneg
theorem isSumSq.nonneg {R : Type*} [LinearOrderedSemiring R] [ExistsAddOfLE R] {S : R}
    (pS : isSumSq S) : 0 ≤ S 
Arguments: {R : Type u_2} [LinearOrderedSemiring R] [ExistsAddOfLE R] {S : R} (pS : isSumSq S)
Goal: 0 ≤ S
-- InvMemClass.inv_mem
class InvMemClass (S G : Type*) [Inv G] [SetLike S G] : Prop where
    inv_mem : ∀ {s : S} {x}, x ∈ s → x⁻¹ ∈ s
Arguments: {S : Type u_5} {G : Type u_6} [Inv G] [SetLike S G] [self : InvMemClass S G] {s : S} {x : G}
Goal: x ∈ s → x⁻¹ ∈ s
-- NegMemClass.neg_mem
class NegMemClass (S G : Type*) [Neg G] [SetLike S G] : Prop where
    neg_mem : ∀ {s : S} {x}, x ∈ s → -x ∈ s
Arguments: {S : Type u_5} {G : Type u_6} [Neg G] [SetLike S G] [self : NegMemClass S G] {s : S} {x : G}
Goal: x ∈ s → -x ∈ s
-- inv_mem_iff
@[to_additive (attr := simp)]
theorem inv_mem_iff {S G} [InvolutiveInv G] {_ : SetLike S G} [InvMemClass S G] {H : S}
    {x : G} : x⁻¹ ∈ H ↔ x ∈ H 
Arguments: {S : Type u_5} {G : Type u_6} [InvolutiveInv G]
Goal: ∀ {x : SetLike S G} [inst : InvMemClass S G] {H : S} {x_1 : G}, x_1⁻¹ ∈ H ↔ x_1 ∈ H
-- neg_mem_iff
@[to_additive (attr := simp)]
theorem inv_mem_iff {S G} [InvolutiveInv G] {_ : SetLike S G} [InvMemClass S G] {H : S}
    {x : G} : x⁻¹ ∈ H ↔ x ∈ H 
Arguments: {S : Type u_5} {G : Type u_6} [InvolutiveNeg G]
Goal: ∀ {x : SetLike S G} [inst : NegMemClass S G] {H : S} {x_1 : G}, -x_1 ∈ H ↔ x_1 ∈ H
-- div_mem
@[to_additive (attr := aesop safe apply (rule_sets := [SetLike]))
  "An additive subgroup is closed under subtraction."]
theorem div_mem {x y : M} (hx : x ∈ H) (hy : y ∈ H) : x / y ∈ H 
Arguments: {M : Type u_5} {S : Type u_6} [DivInvMonoid M] [SetLike S M] [hSM : SubgroupClass S M] {H : S} {x y : M} (hx : x ∈ H) (hy : y ∈ H)
Goal: x / y ∈ H
-- sub_mem
@[to_additive (attr := aesop safe apply (rule_sets := [SetLike]))
  "An additive subgroup is closed under subtraction."]
theorem div_mem {x y : M} (hx : x ∈ H) (hy : y ∈ H) : x / y ∈ H 
Arguments: {M : Type u_5} {S : Type u_6} [SubNegMonoid M] [SetLike S M] [hSM : AddSubgroupClass S M] {H : S} {x y : M} (hx : x ∈ H) (hy : y ∈ H)
Goal: x - y ∈ H
-- zsmul_mem
@[to_additive (attr := aesop safe apply (rule_sets := [SetLike]))]
theorem zpow_mem {x : M} (hx : x ∈ K) : ∀ n : ℤ, x ^ n ∈ K
  
Arguments: {M : Type u_5} {S : Type u_6} [SubNegMonoid M] [SetLike S M] [hSM : AddSubgroupClass S M] {K : S} {x : M} (hx : x ∈ K) (n : ℤ)
Goal: n • x ∈ K
-- zpow_mem
@[to_additive (attr := aesop safe apply (rule_sets := [SetLike]))]
theorem zpow_mem {x : M} (hx : x ∈ K) : ∀ n : ℤ, x ^ n ∈ K
  
Arguments: {M : Type u_5} {S : Type u_6} [DivInvMonoid M] [SetLike S M] [hSM : SubgroupClass S M] {K : S} {x : M} (hx : x ∈ K) (n : ℤ)
Goal: x ^ n ∈ K
-- sub_mem_comm_iff
@[to_additive]
theorem div_mem_comm_iff {a b : G} : a / b ∈ H ↔ b / a ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] {a b : G}
Goal: a - b ∈ H ↔ b - a ∈ H
-- div_mem_comm_iff
@[to_additive]
theorem div_mem_comm_iff {a b : G} : a / b ∈ H ↔ b / a ∈ H 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] {a b : G}
Goal: a / b ∈ H ↔ b / a ∈ H
-- exists_neg_mem_iff_exists_mem
@[to_additive /-(attr := simp)-/] -- Porting note: `simp` cannot simplify LHS
theorem exists_inv_mem_iff_exists_mem {P : G → Prop} :
    (∃ x : G, x ∈ H ∧ P x⁻¹) ↔ ∃ x ∈ H, P x 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] {P : G → Prop}
Goal: (∃ x ∈ H, P (-x)) ↔ ∃ x ∈ H, P x
-- exists_inv_mem_iff_exists_mem
@[to_additive /-(attr := simp)-/] -- Porting note: `simp` cannot simplify LHS
theorem exists_inv_mem_iff_exists_mem {P : G → Prop} :
    (∃ x : G, x ∈ H ∧ P x⁻¹) ↔ ∃ x ∈ H, P x 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] {P : G → Prop}
Goal: (∃ x ∈ H, P x⁻¹) ↔ ∃ x ∈ H, P x
-- add_mem_cancel_right
@[to_additive]
theorem mul_mem_cancel_right {x y : G} (h : x ∈ H) : y * x ∈ H ↔ y ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] {x y : G} (h : x ∈ H)
Goal: y + x ∈ H ↔ y ∈ H
-- mul_mem_cancel_right
@[to_additive]
theorem mul_mem_cancel_right {x y : G} (h : x ∈ H) : y * x ∈ H ↔ y ∈ H 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] {x y : G} (h : x ∈ H)
Goal: y * x ∈ H ↔ y ∈ H
-- add_mem_cancel_left
@[to_additive]
theorem mul_mem_cancel_left {x y : G} (h : x ∈ H) : x * y ∈ H ↔ y ∈ H 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] {x y : G} (h : x ∈ H)
Goal: x + y ∈ H ↔ y ∈ H
-- mul_mem_cancel_left
@[to_additive]
theorem mul_mem_cancel_left {x y : G} (h : x ∈ H) : x * y ∈ H ↔ y ∈ H 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] {x y : G} (h : x ∈ H)
Goal: x * y ∈ H ↔ y ∈ H
-- InvMemClass.coe_inv
@[to_additive (attr := simp, norm_cast)]
theorem coe_inv (x : H) : (x⁻¹).1 = x.1⁻¹ 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] (x : ↥H)
Goal: ↑x⁻¹ = (↑x)⁻¹
-- NegMemClass.coe_neg
@[to_additive (attr := simp, norm_cast)]
theorem coe_inv (x : H) : (x⁻¹).1 = x.1⁻¹ 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] (x : ↥H)
Goal: ↑(-x) = -↑x
-- SubgroupClass.subset_union
@[to_additive]
theorem subset_union {H K L : S} : (H : Set G) ⊆ K ∪ L ↔ H ≤ K ∨ H ≤ L 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} [SetLike S G] [SubgroupClass S G] {H K L : S}
Goal: ↑H ⊆ ↑K ∪ ↑L ↔ H ≤ K ∨ H ≤ L
-- AddSubgroupClass.subset_union
@[to_additive]
theorem subset_union {H K L : S} : (H : Set G) ⊆ K ∪ L ↔ H ≤ K ∨ H ≤ L 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} [SetLike S G] [AddSubgroupClass S G] {H K L : S}
Goal: ↑H ⊆ ↑K ∪ ↑L ↔ H ≤ K ∨ H ≤ L
-- AddSubgroupClass.coe_sub
@[to_additive (attr := simp, norm_cast)]
theorem coe_div (x y : H) : (x / y).1 = x.1 / y.1 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] (x y : ↥H)
Goal: ↑(x - y) = ↑x - ↑y
-- SubgroupClass.coe_div
@[to_additive (attr := simp, norm_cast)]
theorem coe_div (x y : H) : (x / y).1 = x.1 / y.1 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] (x y : ↥H)
Goal: ↑(x / y) = ↑x / ↑y
-- SubgroupClass.coeSubtype
@[to_additive (attr := simp)]
theorem coeSubtype : (SubgroupClass.subtype H : H → G) = ((↑) : H → G) 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} (H : S) [SetLike S G] [SubgroupClass S G]
Goal: ⇑↑H = Subtype.val
-- AddSubgroupClass.coeSubtype
@[to_additive (attr := simp)]
theorem coeSubtype : (SubgroupClass.subtype H : H → G) = ((↑) : H → G) 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} (H : S) [SetLike S G] [AddSubgroupClass S G]
Goal: ⇑↑H = Subtype.val
-- SubgroupClass.coe_pow
@[to_additive (attr := simp, norm_cast)]
theorem coe_pow (x : H) (n : ℕ) : ((x ^ n : H) : G) = (x : G) ^ n 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] (x : ↥H) (n : ℕ)
Goal: ↑(x ^ n) = ↑x ^ n
-- AddSubgroupClass.coe_nsmul
@[to_additive (attr := simp, norm_cast)]
theorem coe_pow (x : H) (n : ℕ) : ((x ^ n : H) : G) = (x : G) ^ n 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] (x : ↥H) (n : ℕ)
Goal: ↑(n • x) = n • ↑x
-- AddSubgroupClass.coe_zsmul
@[to_additive (attr := simp, norm_cast)]
theorem coe_zpow (x : H) (n : ℤ) : ((x ^ n : H) : G) = (x : G) ^ n 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] (x : ↥H) (n : ℤ)
Goal: ↑(n • x) = n • ↑x
-- SubgroupClass.coe_zpow
@[to_additive (attr := simp, norm_cast)]
theorem coe_zpow (x : H) (n : ℤ) : ((x ^ n : H) : G) = (x : G) ^ n 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] (x : ↥H) (n : ℤ)
Goal: ↑(x ^ n) = ↑x ^ n
-- AddSubgroupClass.inclusion_self
@[to_additive (attr := simp)]
theorem inclusion_self (x : H) : inclusion le_rfl x = x 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H : S} [SetLike S G] [AddSubgroupClass S G] (x : ↥H)
Goal: (AddSubgroupClass.inclusion ⋯) x = x
-- SubgroupClass.inclusion_self
@[to_additive (attr := simp)]
theorem inclusion_self (x : H) : inclusion le_rfl x = x 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H : S} [SetLike S G] [SubgroupClass S G] (x : ↥H)
Goal: (SubgroupClass.inclusion ⋯) x = x
-- SubgroupClass.inclusion_mk
@[to_additive (attr := simp)]
theorem inclusion_mk {h : H ≤ K} (x : G) (hx : x ∈ H) : inclusion h ⟨x, hx⟩ = ⟨x, h hx⟩ 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H K : S} [SetLike S G] [SubgroupClass S G] {h : H ≤ K} (x : G) (hx : x ∈ H)
Goal: (SubgroupClass.inclusion h) ⟨x, hx⟩ = ⟨x, ⋯⟩
-- AddSubgroupClass.inclusion_mk
@[to_additive (attr := simp)]
theorem inclusion_mk {h : H ≤ K} (x : G) (hx : x ∈ H) : inclusion h ⟨x, hx⟩ = ⟨x, h hx⟩ 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H K : S} [SetLike S G] [AddSubgroupClass S G] {h : H ≤ K} (x : G) (hx : x ∈ H)
Goal: (AddSubgroupClass.inclusion h) ⟨x, hx⟩ = ⟨x, ⋯⟩
-- SubgroupClass.inclusion_right
@[to_additive]
theorem inclusion_right (h : H ≤ K) (x : K) (hx : (x : G) ∈ H) : inclusion h ⟨x, hx⟩ = x 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H K : S} [SetLike S G] [SubgroupClass S G] (h : H ≤ K) (x : ↥K) (hx : ↑x ∈ H)
Goal: (SubgroupClass.inclusion h) ⟨↑x, hx⟩ = x
-- AddSubgroupClass.inclusion_right
@[to_additive]
theorem inclusion_right (h : H ≤ K) (x : K) (hx : (x : G) ∈ H) : inclusion h ⟨x, hx⟩ = x 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} {H K : S} [SetLike S G] [AddSubgroupClass S G] (h : H ≤ K) (x : ↥K) (hx : ↑x ∈ H)
Goal: (AddSubgroupClass.inclusion h) ⟨↑x, hx⟩ = x
-- SubgroupClass.inclusion_inclusion
@[simp]
theorem inclusion_inclusion {L : S} (hHK : H ≤ K) (hKL : K ≤ L) (x : H) :
    inclusion hKL (inclusion hHK x) = inclusion (hHK.trans hKL) x 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} {H K : S} [SetLike S G] [SubgroupClass S G] {L : S} (hHK : H ≤ K) (hKL : K ≤ L) (x : ↥H)
Goal: (SubgroupClass.inclusion hKL) ((SubgroupClass.inclusion hHK) x) = (SubgroupClass.inclusion ⋯) x
-- SubgroupClass.coe_inclusion
@[to_additive (attr := simp)]
theorem coe_inclusion {H K : S} {h : H ≤ K} (a : H) : (inclusion h a : G) = a 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} [SetLike S G] [SubgroupClass S G] {H K : S} {h : H ≤ K} (a : ↥H)
Goal: ↑((SubgroupClass.inclusion h) a) = ↑a
-- AddSubgroupClass.coe_inclusion
@[to_additive (attr := simp)]
theorem coe_inclusion {H K : S} {h : H ≤ K} (a : H) : (inclusion h a : G) = a 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} [SetLike S G] [AddSubgroupClass S G] {H K : S} {h : H ≤ K} (a : ↥H)
Goal: ↑((AddSubgroupClass.inclusion h) a) = ↑a
-- SubgroupClass.subtype_comp_inclusion
@[to_additive (attr := simp)]
theorem subtype_comp_inclusion {H K : S} (hH : H ≤ K) :
    (SubgroupClass.subtype K).comp (inclusion hH) = SubgroupClass.subtype H 
Arguments: {G : Type u_1} [Group G] {S : Type u_6} [SetLike S G] [SubgroupClass S G] {H K : S} (hH : H ≤ K)
Goal: (↑K).comp (SubgroupClass.inclusion hH) = ↑H
-- AddSubgroupClass.subtype_comp_inclusion
@[to_additive (attr := simp)]
theorem subtype_comp_inclusion {H K : S} (hH : H ≤ K) :
    (SubgroupClass.subtype K).comp (inclusion hH) = SubgroupClass.subtype H 
Arguments: {G : Type u_1} [AddGroup G] {S : Type u_6} [SetLike S G] [AddSubgroupClass S G] {H K : S} (hH : H ≤ K)
Goal: (↑K).comp (AddSubgroupClass.inclusion hH) = ↑H
-- Subgroup.inv_mem'
structure Subgroup (G : Type*) [Group G] extends Submonoid G where
    inv_mem' {x} : x ∈ carrier → x⁻¹ ∈ carrier
Arguments: {G : Type u_5} [Group G] (self : Subgroup G) {x : G}
Goal: x ∈ self.carrier → x⁻¹ ∈ self.carrier
-- AddSubgroup.neg_mem'
structure AddSubgroup (G : Type*) [AddGroup G] extends AddSubmonoid G where
    neg_mem' {x} : x ∈ carrier → -x ∈ carrier
Arguments: {G : Type u_5} [AddGroup G] (self : AddSubgroup G) {x : G}
Goal: x ∈ self.carrier → -x ∈ self.carrier
-- Subgroup.mem_carrier
@[to_additive (attr := simp, nolint simpNF)] -- Porting note (#10675): dsimp can not prove this
theorem mem_carrier {s : Subgroup G} {x : G} : x ∈ s.carrier ↔ x ∈ s 
Arguments: {G : Type u_1} [Group G] {s : Subgroup G} {x : G}
Goal: x ∈ s.carrier ↔ x ∈ s
-- AddSubgroup.mem_carrier
@[to_additive (attr := simp, nolint simpNF)] -- Porting note (#10675): dsimp can not prove this
theorem mem_carrier {s : Subgroup G} {x : G} : x ∈ s.carrier ↔ x ∈ s 
Arguments: {G : Type u_1} [AddGroup G] {s : AddSubgroup G} {x : G}
Goal: x ∈ s.carrier ↔ x ∈ s
-- Subgroup.mem_mk
@[to_additive (attr := simp)]
theorem mem_mk {s : Set G} {x : G} (h_one) (h_mul) (h_inv) :
    x ∈ mk ⟨⟨s, h_one⟩, h_mul⟩ h_inv ↔ x ∈ s 
Arguments: {G : Type u_1} [Group G] {s : Set G} {x : G} (h_one : ∀ {a b : G}, a ∈ s → b ∈ s → a * b ∈ s) (h_mul : s 1) (h_inv :
  ∀ {x : G},
    x ∈ { carrier := s, mul_mem' := h_one, one_mem' := h_mul }.carrier →
      x⁻¹ ∈ { carrier := s, mul_mem' := h_one, one_mem' := h_mul }.carrier)
Goal: x ∈ { carrier := s, mul_mem' := h_one, one_mem' := h_mul, inv_mem' := h_inv } ↔ x ∈ s
-- AddSubgroup.mem_mk
@[to_additive (attr := simp)]
theorem mem_mk {s : Set G} {x : G} (h_one) (h_mul) (h_inv) :
    x ∈ mk ⟨⟨s, h_one⟩, h_mul⟩ h_inv ↔ x ∈ s 
Arguments: {G : Type u_1} [AddGroup G] {s : Set G} {x : G} (h_one : ∀ {a b : G}, a ∈ s → b ∈ s → a + b ∈ s) (h_mul : s 0) (h_inv :
  ∀ {x : G},
    x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier →
      -x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier)
Goal: x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul, neg_mem' := h_inv } ↔ x ∈ s
-- AddSubgroup.coe_set_mk
@[to_additive (attr := simp, norm_cast)]
theorem coe_set_mk {s : Set G} (h_one) (h_mul) (h_inv) :
    (mk ⟨⟨s, h_one⟩, h_mul⟩ h_inv : Set G) = s 
Arguments: {G : Type u_1} [AddGroup G] {s : Set G} (h_one : ∀ {a b : G}, a ∈ s → b ∈ s → a + b ∈ s) (h_mul : s 0) (h_inv :
  ∀ {x : G},
    x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier →
      -x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier)
Goal: ↑{ carrier := s, add_mem' := h_one, zero_mem' := h_mul, neg_mem' := h_inv } = s
-- Subgroup.coe_set_mk
@[to_additive (attr := simp, norm_cast)]
theorem coe_set_mk {s : Set G} (h_one) (h_mul) (h_inv) :
    (mk ⟨⟨s, h_one⟩, h_mul⟩ h_inv : Set G) = s 
Arguments: {G : Type u_1} [Group G] {s : Set G} (h_one : ∀ {a b : G}, a ∈ s → b ∈ s → a * b ∈ s) (h_mul : s 1) (h_inv :
  ∀ {x : G},
    x ∈ { carrier := s, mul_mem' := h_one, one_mem' := h_mul }.carrier →
      x⁻¹ ∈ { carrier := s, mul_mem' := h_one, one_mem' := h_mul }.carrier)
Goal: ↑{ carrier := s, mul_mem' := h_one, one_mem' := h_mul, inv_mem' := h_inv } = s
-- AddSubgroup.mk_le_mk
@[to_additive (attr := simp)]
theorem mk_le_mk {s t : Set G} (h_one) (h_mul) (h_inv) (h_one') (h_mul') (h_inv') :
    mk ⟨⟨s, h_one⟩, h_mul⟩ h_inv ≤ mk ⟨⟨t, h_one'⟩, h_mul'⟩ h_inv' ↔ s ⊆ t 
Arguments: {G : Type u_1} [AddGroup G] {s t : Set G} (h_one : ∀ {a b : G}, a ∈ s → b ∈ s → a + b ∈ s) (h_mul : s 0) (h_inv :
  ∀ {x : G},
    x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier →
      -x ∈ { carrier := s, add_mem' := h_one, zero_mem' := h_mul }.carrier) (h_one' : ∀ {a b : G}, a ∈ t → b ∈ t → a + b ∈ t) (h_mul' : t 0) (h_inv' :
  ∀ {x : G},
    x ∈ { carrier := t, add_mem' := h_one', zero_mem' := h_mul' }.carrier →
      -x ∈ { carrier := t, add_mem' := h_one', zero_mem' := h_mul' }.carrier)
Goal: { carrier := s, add_mem' := h_one, zero_mem' := h_mul, neg_mem' := h_inv } ≤
    { carrier := t, add_mem' := h_one', zero_mem' := h_mul', neg_mem' := h_inv' } ↔
  s ⊆ t