ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Function.Surjective.lieAlgebra_isNilpotent
theorem Function.Surjective.lieAlgebra_isNilpotent [h₁ : IsNilpotent R L] {f : L →ₗ⁅R⁆ L'}
    (h₂ : Function.Surjective f) : IsNilpotent R L' 
Arguments: {R : Type u} {L : Type v} {L' : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing L'] [LieAlgebra R L'] [h₁ : LieAlgebra.IsNilpotent R L] {f : L →ₗ⁅R⁆ L'} (h₂ : Function.Surjective ⇑f)
Goal: LieAlgebra.IsNilpotent R L'
-- LieEquiv.nilpotent_iff_equiv_nilpotent
theorem LieEquiv.nilpotent_iff_equiv_nilpotent (e : L ≃ₗ⁅R⁆ L') :
    IsNilpotent R L ↔ IsNilpotent R L' 
Arguments: {R : Type u} {L : Type v} {L' : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing L'] [LieAlgebra R L'] (e : L ≃ₗ⁅R⁆ L')
Goal: LieAlgebra.IsNilpotent R L ↔ LieAlgebra.IsNilpotent R L'
-- LieHom.isNilpotent_range
theorem LieHom.isNilpotent_range [IsNilpotent R L] (f : L →ₗ⁅R⁆ L') : IsNilpotent R f.range 
Arguments: {R : Type u} {L : Type v} {L' : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing L'] [LieAlgebra R L'] [LieAlgebra.IsNilpotent R L] (f : L →ₗ⁅R⁆ L')
Goal: LieAlgebra.IsNilpotent R ↥f.range
-- LieAlgebra.isNilpotent_range_ad_iff
@[simp]
theorem LieAlgebra.isNilpotent_range_ad_iff : IsNilpotent R (ad R L).range ↔ IsNilpotent R L 
Arguments: {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L]
Goal: LieAlgebra.IsNilpotent R ↥(LieAlgebra.ad R L).range ↔ LieAlgebra.IsNilpotent R L
-- LieIdeal.lcs_zero
@[simp]
theorem lcs_zero : I.lcs M 0 = ⊤ 
Arguments: {R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (I : LieIdeal R L) (M : Type u_3) [AddCommGroup M] [Module R M] [LieRingModule L M]
Goal: I.lcs M 0 = ⊤
-- LieIdeal.lcs_succ
@[simp]
theorem lcs_succ : I.lcs M (k + 1) = ⁅I, I.lcs M k⁆ 
Arguments: {R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (I : LieIdeal R L) (M : Type u_3) [AddCommGroup M] [Module R M] [LieRingModule L M] (k : ℕ)
Goal: I.lcs M (k + 1) = ⁅I, I.lcs M k⁆
-- LieIdeal.lcs_top
theorem lcs_top : (⊤ : LieIdeal R L).lcs M k = lowerCentralSeries R L M k 
Arguments: {R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (M : Type u_3) [AddCommGroup M] [Module R M] [LieRingModule L M] (k : ℕ)
Goal: ⊤.lcs M k = LieModule.lowerCentralSeries R L M k
-- LieIdeal.coe_lcs_eq
theorem coe_lcs_eq : LieSubmodule.toSubmodule (I.lcs M k) = lowerCentralSeries R I M k 
Arguments: {R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (I : LieIdeal R L) (M : Type u_3) [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (k : ℕ)
Goal: ↑(I.lcs M k) = ↑(LieModule.lowerCentralSeries R (↥↑I) M k)
-- LieAlgebra.ad_nilpotent_of_nilpotent
theorem _root_.LieAlgebra.ad_nilpotent_of_nilpotent {a : A} (h : IsNilpotent a) :
    IsNilpotent (LieAlgebra.ad R A a) 
Arguments: (R : Type u) {A : Type v} [CommRing R] [Ring A] [Algebra R A] {a : A} (h : IsNilpotent a)
Goal: IsNilpotent ((LieAlgebra.ad R A) a)
-- LieSubalgebra.isNilpotent_ad_of_isNilpotent_ad
theorem _root_.LieSubalgebra.isNilpotent_ad_of_isNilpotent_ad {L : Type v} [LieRing L]
    [LieAlgebra R L] (K : LieSubalgebra R L) {x : K} (h : IsNilpotent (LieAlgebra.ad R L ↑x)) :
    IsNilpotent (LieAlgebra.ad R K x) 
Arguments: {R : Type u} [CommRing R] {L : Type v} [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) {x : ↥K} (h : IsNilpotent ((LieAlgebra.ad R L) ↑x))
Goal: IsNilpotent ((LieAlgebra.ad R ↥K) x)
-- LieAlgebra.isNilpotent_ad_of_isNilpotent
theorem _root_.LieAlgebra.isNilpotent_ad_of_isNilpotent {L : LieSubalgebra R A} {x : L}
    (h : IsNilpotent (x : A)) : IsNilpotent (LieAlgebra.ad R L x) 
Arguments: {R : Type u} {A : Type v} [CommRing R] [Ring A] [Algebra R A] {L : LieSubalgebra R A} {x : ↥L} (h : IsNilpotent ↑x)
Goal: IsNilpotent ((LieAlgebra.ad R ↥L) x)
-- LieSubmodule.lowerCentralSeries_tensor_eq_baseChange
@[simp]
lemma LieSubmodule.lowerCentralSeries_tensor_eq_baseChange (k : ℕ) :
    lowerCentralSeries A (A ⊗[R] L) (A ⊗[R] M) k =
    (lowerCentralSeries R L M k).baseChange A 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] (k : ℕ)
Goal: LieModule.lowerCentralSeries A (TensorProduct R A L) (TensorProduct R A M) k =
  LieSubmodule.baseChange A (LieModule.lowerCentralSeries R L M k)
-- LieAlgebra.engel_isBot_of_isMin.lieCharpoly_monic
lemma lieCharpoly_monic : (lieCharpoly R M x y).Monic 
Arguments: (R : Type u_2) {L : Type u_3} (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [Module.Finite R L] [Module.Free R L] [Module.Finite R M] [Module.Free R M] (x y : L)
Goal: (LieAlgebra.engel_isBot_of_isMin.lieCharpoly R M x y).Monic
-- LieAlgebra.engel_isBot_of_isMin.lieCharpoly_natDegree
lemma lieCharpoly_natDegree : (lieCharpoly R M x y).natDegree = finrank R M 
Arguments: (R : Type u_2) {L : Type u_3} (M : Type u_4) [CommRing R] [Nontrivial R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [Module.Finite R L] [Module.Free R L] [Module.Finite R M] [Module.Free R M] (x y : L)
Goal: (LieAlgebra.engel_isBot_of_isMin.lieCharpoly R M x y).natDegree = FiniteDimensional.finrank R M
-- LieAlgebra.engel_isBot_of_isMin.lieCharpoly_map_eval
lemma lieCharpoly_map_eval (r : R) :
    (lieCharpoly R M x y).map (evalRingHom r) = (φ (r • y + x)).charpoly 
Arguments: {R : Type u_2} {L : Type u_3} (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [Module.Finite R L] [Module.Free R L] [Module.Finite R M] [Module.Free R M] (x y : L) (r : R)
Goal: Polynomial.map (Polynomial.evalRingHom r) (LieAlgebra.engel_isBot_of_isMin.lieCharpoly R M x y) =
  LinearMap.charpoly ((LieModule.toEnd R L M) (r • y + x))
-- LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree
lemma lieCharpoly_coeff_natDegree (i j : ℕ) (hij : i + j = finrank R M) :
    ((lieCharpoly R M x y).coeff i).natDegree ≤ j 
Arguments: (R : Type u_2) {L : Type u_3} (M : Type u_4) [CommRing R] [Nontrivial R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [Module.Finite R L] [Module.Free R L] [Module.Finite R M] [Module.Free R M] (x y : L) (i j : ℕ) (hij : i + j = FiniteDimensional.finrank R M)
Goal: ((LieAlgebra.engel_isBot_of_isMin.lieCharpoly R M x y).coeff i).natDegree ≤ j
-- LieAlgebra.engel_isBot_of_isMin
lemma engel_isBot_of_isMin (hLK : finrank K L ≤ #K) (U : LieSubalgebra K L)
    (E : {engel K x | x ∈ U}) (hUle : U ≤ E) (hmin : IsMin E) :
    IsBot E 
Arguments: {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [Module.Finite K L] (hLK : ↑(FiniteDimensional.finrank K L) ≤ Cardinal.mk K) (U : LieSubalgebra K L) (E : ↑{x | ∃ x_1 ∈ U, LieSubalgebra.engel K x_1 = x}) (hUle : U ≤ ↑E) (hmin : IsMin E)
Goal: IsBot E
-- LieAlgebra.exists_isCartanSubalgebra_engel_of_finrank_le_card
lemma exists_isCartanSubalgebra_engel_of_finrank_le_card (h : finrank K L ≤ #K) :
    ∃ x : L, IsCartanSubalgebra (engel K x) 
Arguments: (K : Type u_1) (L : Type u_2) [Field K] [LieRing L] [LieAlgebra K L] [Module.Finite K L] (h : ↑(FiniteDimensional.finrank K L) ≤ Cardinal.mk K)
Goal: ∃ x, (LieSubalgebra.engel K x).IsCartanSubalgebra
-- LieAlgebra.exists_isCartanSubalgebra_engel
lemma exists_isCartanSubalgebra_engel [Infinite K] :
    ∃ x : L, IsCartanSubalgebra (engel K x) 
Arguments: (K : Type u_1) (L : Type u_2) [Field K] [LieRing L] [LieAlgebra K L] [Module.Finite K L] [Infinite K]
Goal: ∃ x, (LieSubalgebra.engel K x).IsCartanSubalgebra
-- _private.Mathlib.Algebra.Lie.BaseChange.0.LieAlgebra.ExtendScalars.bracket'_tmul
@[simp]
private theorem bracket'_tmul (s t : A) (x : L) (m : M) :
    bracket' R A L M (s ⊗ₜ[R] x) (t ⊗ₜ[R] m) = (s * t) ⊗ₜ ⁅x, m⁆ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [CommRing A] [Algebra R A] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (s t : A) (x : L) (m : M)
Goal: ((LieAlgebra.ExtendScalars.bracket' R A L M) (s ⊗ₜ[R] x)) (t ⊗ₜ[R] m) = (s * t) ⊗ₜ[R] ⁅x, m⁆
-- _private.Mathlib.Algebra.Lie.BaseChange.0.LieAlgebra.ExtendScalars.bracket_def
private theorem bracket_def (x : A ⊗[R] L) (m : A ⊗[R] M) : ⁅x, m⁆ = bracket' R A L M x m 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [CommRing A] [Algebra R A] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x : A ⊗[R] L) (m : A ⊗[R] M)
Goal: ⁅x, m⁆ = ((LieAlgebra.ExtendScalars.bracket' R A L M) x) m
-- LieAlgebra.ExtendScalars.bracket_tmul
@[simp]
theorem bracket_tmul (s t : A) (x : L) (y : M) : ⁅s ⊗ₜ[R] x, t ⊗ₜ[R] y⁆ = (s * t) ⊗ₜ ⁅x, y⁆ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [CommRing A] [Algebra R A] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (s t : A) (x : L) (y : M)
Goal: ⁅s ⊗ₜ[R] x, t ⊗ₜ[R] y⁆ = (s * t) ⊗ₜ[R] ⁅x, y⁆
-- _private.Mathlib.Algebra.Lie.BaseChange.0.LieAlgebra.ExtendScalars.bracket_lie_self
private theorem bracket_lie_self (x : A ⊗[R] L) : ⁅x, x⁆ = 0 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) [CommRing R] [CommRing A] [Algebra R A] [LieRing L] [LieAlgebra R L] (x : A ⊗[R] L)
Goal: ⁅x, x⁆ = 0
-- _private.Mathlib.Algebra.Lie.BaseChange.0.LieAlgebra.ExtendScalars.bracket_leibniz_lie
private theorem bracket_leibniz_lie (x y : A ⊗[R] L) (z : A ⊗[R] M) :
    ⁅x, ⁅y, z⁆⁆ = ⁅⁅x, y⁆, z⁆ + ⁅y, ⁅x, z⁆⁆ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [CommRing A] [Algebra R A] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x y : A ⊗[R] L) (z : A ⊗[R] M)
Goal: ⁅x, ⁅y, z⁆⁆ = ⁅⁅x, y⁆, z⁆ + ⁅y, ⁅x, z⁆⁆
-- LieModule.toEnd_baseChange
@[simp]
lemma LieModule.toEnd_baseChange (x : L) :
    toEnd A (A ⊗[R] L) (A ⊗[R] M) (1 ⊗ₜ x) = (toEnd R L M x).baseChange A 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] (x : L)
Goal: (LieModule.toEnd A (A ⊗[R] L) (A ⊗[R] M)) (1 ⊗ₜ[R] x) = LinearMap.baseChange A ((LieModule.toEnd R L M) x)
-- LieSubmodule.coe_baseChange
@[simp]
lemma coe_baseChange :
    (N.baseChange A : Submodule A (A ⊗[R] M)) = (N : Submodule R M).baseChange A 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] (N : LieSubmodule R L M)
Goal: ↑(LieSubmodule.baseChange A N) = Submodule.baseChange A ↑N
-- LieSubmodule.tmul_mem_baseChange_of_mem
lemma tmul_mem_baseChange_of_mem (a : A) {m : M} (hm : m ∈ N) :
    a ⊗ₜ[R] m ∈ N.baseChange A 
Arguments: {R : Type u_1} {A : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] {N : LieSubmodule R L M} (a : A) {m : M} (hm : m ∈ N)
Goal: a ⊗ₜ[R] m ∈ LieSubmodule.baseChange A N
-- LieSubmodule.mem_baseChange_iff
lemma mem_baseChange_iff {m : A ⊗[R] M} :
    m ∈ N.baseChange A ↔
    m ∈ Submodule.span A ((N : Submodule R M).map (TensorProduct.mk R A M 1)) 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] {N : LieSubmodule R L M} {m : A ⊗[R] M}
Goal: m ∈ LieSubmodule.baseChange A N ↔ m ∈ Submodule.span A ↑(Submodule.map ((TensorProduct.mk R A M) 1) ↑N)
-- LieSubmodule.baseChange_bot
@[simp]
lemma baseChange_bot : (⊥ : LieSubmodule R L M).baseChange A = ⊥ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A]
Goal: LieSubmodule.baseChange A ⊥ = ⊥
-- LieSubmodule.baseChange_top
@[simp]
lemma baseChange_top : (⊤ : LieSubmodule R L M).baseChange A = ⊤ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A]
Goal: LieSubmodule.baseChange A ⊤ = ⊤
-- LieSubmodule.lie_baseChange
lemma lie_baseChange {I : LieIdeal R L} {N : LieSubmodule R L M} :
    ⁅I, N⁆.baseChange A = ⁅I.baseChange A, N.baseChange A⁆ 
Arguments: (R : Type u_1) (A : Type u_2) (L : Type u_3) (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [CommRing A] [Algebra R A] {I : LieIdeal R L} {N : LieSubmodule R L M}
Goal: LieSubmodule.baseChange A ⁅I, N⁆ = ⁅LieSubmodule.baseChange A I, LieSubmodule.baseChange A N⁆
-- prod_dvd_iff
theorem prod_dvd_iff {x y : G₁ × G₂} :
    x ∣ y ↔ x.1 ∣ y.1 ∧ x.2 ∣ y.2 
Arguments: {G₁ : Type u_2} {G₂ : Type u_3} [Semigroup G₁] [Semigroup G₂] {x y : G₁ × G₂}
Goal: x ∣ y ↔ x.1 ∣ y.1 ∧ x.2 ∣ y.2
-- Prod.mk_dvd_mk
@[simp]
theorem Prod.mk_dvd_mk {x₁ y₁ : G₁} {x₂ y₂ : G₂} :
    (x₁, x₂) ∣ (y₁, y₂) ↔ x₁ ∣ y₁ ∧ x₂ ∣ y₂ 
Arguments: {G₁ : Type u_2} {G₂ : Type u_3} [Semigroup G₁] [Semigroup G₂] {x₁ y₁ : G₁} {x₂ y₂ : G₂}
Goal: (x₁, x₂) ∣ (y₁, y₂) ↔ x₁ ∣ y₁ ∧ x₂ ∣ y₂
-- pi_dvd_iff
theorem pi_dvd_iff {x y : ∀ i, G i} : x ∣ y ↔ ∀ i, x i ∣ y i 
Arguments: {ι : Type u_1} {G : ι → Type u_4} [(i : ι) → Semigroup (G i)] {x y : (i : ι) → G i}
Goal: x ∣ y ↔ ∀ (i : ι), x i ∣ y i
-- AddConstEquiv.toEquiv_injective
lemma toEquiv_injective : Injective (toEquiv : (G ≃+c[a, b] H) → G ≃ H)
  
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H}
Goal: Function.Injective AddConstEquiv.toEquiv
-- AddConstEquiv.ext
@[ext] lemma ext {e₁ e₂ : G ≃+c[a, b] H} (h : ∀ x, e₁ x = e₂ x) : e₁ = e₂ 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} {e₁ e₂ : G ≃+c[a, b] H} (h : ∀ (x : G), e₁ x = e₂ x)
Goal: e₁ = e₂
-- AddConstEquiv.toEquiv_inj
@[simp]
lemma toEquiv_inj {e₁ e₂ : G ≃+c[a, b] H} : e₁.toEquiv = e₂.toEquiv ↔ e₁ = e₂ 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} {e₁ e₂ : G ≃+c[a, b] H}
Goal: e₁.toEquiv = e₂.toEquiv ↔ e₁ = e₂
-- AddConstEquiv.coe_toEquiv
@[simp] lemma coe_toEquiv (e : G ≃+c[a, b] H) : ⇑e.toEquiv = e 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: ⇑e.toEquiv = ⇑e
-- AddConstEquiv.symm_symm
@[simp] lemma symm_symm (e : G ≃+c[a, b] H) : e.symm.symm = e 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: e.symm.symm = e
-- AddConstEquiv.refl_toEquiv
@[simps! toEquiv apply]
def refl (a : G) : G ≃+c[a, a] G 
Arguments: {G : Type u_1} [Add G] (a : G)
Goal: (AddConstEquiv.refl a).toEquiv = Equiv.refl G
-- AddConstEquiv.refl_apply
@[simps! toEquiv apply]
def refl (a : G) : G ≃+c[a, a] G 
Arguments: {G : Type u_1} [Add G] (a : G)
Goal: ∀ (a_1 : G), (AddConstEquiv.refl a) a_1 = a_1
-- AddConstEquiv.symm_refl
@[simp] lemma symm_refl (a : G) : (refl a).symm = refl a 
Arguments: {G : Type u_1} [Add G] (a : G)
Goal: (AddConstEquiv.refl a).symm = AddConstEquiv.refl a
-- AddConstEquiv.trans_toEquiv
@[simps! (config := { simpRhs := true }) toEquiv apply]
def trans (e₁ : G ≃+c[a, b] H) (e₂ : H ≃+c[b, c] K) : G ≃+c[a, c] K 
Arguments: {G : Type u_1} {H : Type u_2} {K : Type u_3} [Add G] [Add H] [Add K] {a : G} {b : H} {c : K} (e₁ : G ≃+c[a, b] H) (e₂ : H ≃+c[b, c] K)
Goal: (e₁.trans e₂).toEquiv = e₁.trans e₂.toEquiv
-- AddConstEquiv.trans_apply
@[simps! (config := { simpRhs := true }) toEquiv apply]
def trans (e₁ : G ≃+c[a, b] H) (e₂ : H ≃+c[b, c] K) : G ≃+c[a, c] K 
Arguments: {G : Type u_1} {H : Type u_2} {K : Type u_3} [Add G] [Add H] [Add K] {a : G} {b : H} {c : K} (e₁ : G ≃+c[a, b] H) (e₂ : H ≃+c[b, c] K)
Goal: ∀ (a_1 : G), (e₁.trans e₂) a_1 = e₂ (e₁ a_1)
-- AddConstEquiv.trans_refl
@[simp] lemma trans_refl (e : G ≃+c[a, b] H) : e.trans (.refl b) = e 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: e.trans (AddConstEquiv.refl b) = e
-- AddConstEquiv.refl_trans
@[simp] lemma refl_trans (e : G ≃+c[a, b] H) : (refl a).trans e = e 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: (AddConstEquiv.refl a).trans e = e
-- AddConstEquiv.self_trans_symm
@[simp]
lemma self_trans_symm (e : G ≃+c[a, b] H) : e.trans e.symm = .refl a 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: e.trans e.symm = AddConstEquiv.refl a
-- AddConstEquiv.symm_trans_self
@[simp]
lemma symm_trans_self (e : G ≃+c[a, b] H) : e.symm.trans e = .refl b 
Arguments: {G : Type u_1} {H : Type u_2} [Add G] [Add H] {a : G} {b : H} (e : G ≃+c[a, b] H)
Goal: e.symm.trans e = AddConstEquiv.refl b
-- AddConstEquiv.toPerm_apply
@[simps! apply]
def toPerm : (G ≃+c[a, a] G) →* Equiv.Perm G 
Arguments: {G : Type u_1} [Add G] {a : G} (self : G ≃+c[a, a] G)
Goal: AddConstEquiv.toPerm self = self.toEquiv
-- AddConstEquiv.toAddConstMapHom_apply
@[simps! apply]
def toAddConstMapHom : (G ≃+c[a, a] G) →* (G →+c[a, a] G) 
Arguments: {G : Type u_1} [Add G] {a : G} (self : G ≃+c[a, a] G)
Goal: AddConstEquiv.toAddConstMapHom self = self.toAddConstMap
-- AddConstEquiv.coe_val_inv_equivUnits_apply
@[simps!]
def equivUnits : (G ≃+c[a, a] G) ≃* (G →+c[a, a] G)ˣ 
Arguments: {G : Type u_1} [Add G] {a : G}
Goal: ∀ (a_1 : G ≃+c[a, a] G) (a_2 : G), ↑(AddConstEquiv.equivUnits a_1)⁻¹ a_2 = a_1⁻¹ a_2
-- AddConstEquiv.equivUnits_symm_apply_symm_apply
@[simps!]
def equivUnits : (G ≃+c[a, a] G) ≃* (G →+c[a, a] G)ˣ 
Arguments: {G : Type u_1} [Add G] {a : G} (u : (G →+c[a, a] G)ˣ)
Goal: ⇑(AddConstEquiv.equivUnits.symm u).symm = ⇑↑u⁻¹
-- AddConstEquiv.coe_val_equivUnits_apply
@[simps!]
def equivUnits : (G ≃+c[a, a] G) ≃* (G →+c[a, a] G)ˣ 
Arguments: {G : Type u_1} [Add G] {a : G}
Goal: ∀ (a_1 : G ≃+c[a, a] G) (a_2 : G), ↑(AddConstEquiv.equivUnits a_1) a_2 = a_1 a_2
-- AddConstEquiv.equivUnits_symm_apply_apply
@[simps!]
def equivUnits : (G ≃+c[a, a] G) ≃* (G →+c[a, a] G)ˣ 
Arguments: {G : Type u_1} [Add G] {a : G} (u : (G →+c[a, a] G)ˣ)
Goal: ⇑(AddConstEquiv.equivUnits.symm u) = ⇑↑u
-- AddMonoidHom.toRatLinearMap_injective
theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
    [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) 
Arguments: {M : Type u_1} {M₂ : Type u_2} [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂] [Module ℚ M₂]
Goal: Function.Injective AddMonoidHom.toRatLinearMap
-- AddMonoidHom.coe_toRatLinearMap
@[simp]
theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
    [Module ℚ M₂] (f : M →+ M₂) : ⇑f.toRatLinearMap = f 
Arguments: {M : Type u_1} {M₂ : Type u_2} [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂] [Module ℚ M₂] (f : M →+ M₂)
Goal: ⇑f.toRatLinearMap = ⇑f
-- Units.coe_dvd
theorem coe_dvd : ↑u ∣ a 
Arguments: {α : Type u_1} [Monoid α] {a : α} {u : αˣ}
Goal: ↑u ∣ a
-- Units.dvd_mul_right
theorem dvd_mul_right : a ∣ b * u ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b : α} {u : αˣ}
Goal: a ∣ b * ↑u ↔ a ∣ b
-- Units.mul_right_dvd
theorem mul_right_dvd : a * u ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b : α} {u : αˣ}
Goal: a * ↑u ∣ b ↔ a ∣ b
-- Units.dvd_mul_left
theorem dvd_mul_left : a ∣ u * b ↔ a ∣ b 
Arguments: {α : Type u_1} [CommMonoid α] {a b : α} {u : αˣ}
Goal: a ∣ ↑u * b ↔ a ∣ b
-- Units.mul_left_dvd
theorem mul_left_dvd : ↑u * a ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [CommMonoid α] {a b : α} {u : αˣ}
Goal: ↑u * a ∣ b ↔ a ∣ b
-- IsUnit.dvd
@[simp]
theorem dvd (hu : IsUnit u) : u ∣ a 
Arguments: {α : Type u_1} [Monoid α] {a u : α} (hu : IsUnit u)
Goal: u ∣ a
-- IsUnit.dvd_mul_right
@[simp]
theorem dvd_mul_right (hu : IsUnit u) : a ∣ b * u ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b u : α} (hu : IsUnit u)
Goal: a ∣ b * u ↔ a ∣ b
-- IsUnit.mul_right_dvd
@[simp]
theorem mul_right_dvd (hu : IsUnit u) : a * u ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b u : α} (hu : IsUnit u)
Goal: a * u ∣ b ↔ a ∣ b
-- IsUnit.isPrimal
theorem isPrimal (hu : IsUnit u) : IsPrimal u 
Arguments: {α : Type u_1} [Monoid α] {u : α} (hu : IsUnit u)
Goal: IsPrimal u
-- IsUnit.dvd_mul_left
@[simp]
theorem dvd_mul_left (hu : IsUnit u) : a ∣ u * b ↔ a ∣ b 
Arguments: {α : Type u_1} [CommMonoid α] {a b u : α} (hu : IsUnit u)
Goal: a ∣ u * b ↔ a ∣ b
-- IsUnit.mul_left_dvd
@[simp]
theorem mul_left_dvd (hu : IsUnit u) : u * a ∣ b ↔ a ∣ b 
Arguments: {α : Type u_1} [CommMonoid α] {a b u : α} (hu : IsUnit u)
Goal: u * a ∣ b ↔ a ∣ b
-- isUnit_iff_dvd_one
theorem isUnit_iff_dvd_one {x : α} : IsUnit x ↔ x ∣ 1 
Arguments: {α : Type u_1} [CommMonoid α] {x : α}
Goal: IsUnit x ↔ x ∣ 1
-- isUnit_iff_forall_dvd
theorem isUnit_iff_forall_dvd {x : α} : IsUnit x ↔ ∀ y, x ∣ y 
Arguments: {α : Type u_1} [CommMonoid α] {x : α}
Goal: IsUnit x ↔ ∀ (y : α), x ∣ y
-- isUnit_of_dvd_unit
theorem isUnit_of_dvd_unit {x y : α} (xy : x ∣ y) (hu : IsUnit y) : IsUnit x 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α} (xy : x ∣ y) (hu : IsUnit y)
Goal: IsUnit x
-- isUnit_of_dvd_one
theorem isUnit_of_dvd_one {a : α} (h : a ∣ 1) : IsUnit (a : α) 
Arguments: {α : Type u_1} [CommMonoid α] {a : α} (h : a ∣ 1)
Goal: IsUnit a
-- not_isUnit_of_not_isUnit_dvd
theorem not_isUnit_of_not_isUnit_dvd {a b : α} (ha : ¬IsUnit a) (hb : a ∣ b) : ¬IsUnit b 
Arguments: {α : Type u_1} [CommMonoid α] {a b : α} (ha : ¬IsUnit a) (hb : a ∣ b)
Goal: ¬IsUnit b
-- IsRelPrime.symm
@[symm] theorem IsRelPrime.symm (H : IsRelPrime x y) : IsRelPrime y x 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α} (H : IsRelPrime x y)
Goal: IsRelPrime y x
-- isRelPrime_comm
theorem isRelPrime_comm : IsRelPrime x y ↔ IsRelPrime y x 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α}
Goal: IsRelPrime x y ↔ IsRelPrime y x
-- isRelPrime_self
theorem isRelPrime_self : IsRelPrime x x ↔ IsUnit x 
Arguments: {α : Type u_1} [CommMonoid α] {x : α}
Goal: IsRelPrime x x ↔ IsUnit x
-- IsUnit.isRelPrime_left
theorem IsUnit.isRelPrime_left (h : IsUnit x) : IsRelPrime x y 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α} (h : IsUnit x)
Goal: IsRelPrime x y
-- IsUnit.isRelPrime_right
theorem IsUnit.isRelPrime_right (h : IsUnit y) : IsRelPrime x y 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α} (h : IsUnit y)
Goal: IsRelPrime x y
-- isRelPrime_one_left
theorem isRelPrime_one_left : IsRelPrime 1 x 
Arguments: {α : Type u_1} [CommMonoid α] {x : α}
Goal: IsRelPrime 1 x
-- isRelPrime_one_right
theorem isRelPrime_one_right : IsRelPrime x 1 
Arguments: {α : Type u_1} [CommMonoid α] {x : α}
Goal: IsRelPrime x 1
-- IsRelPrime.of_mul_left_left
theorem IsRelPrime.of_mul_left_left (H : IsRelPrime (x * y) z) : IsRelPrime x z 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (H : IsRelPrime (x * y) z)
Goal: IsRelPrime x z
-- IsRelPrime.of_mul_left_right
theorem IsRelPrime.of_mul_left_right (H : IsRelPrime (x * y) z) : IsRelPrime y z 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (H : IsRelPrime (x * y) z)
Goal: IsRelPrime y z
-- IsRelPrime.of_mul_right_left
theorem IsRelPrime.of_mul_right_left (H : IsRelPrime x (y * z)) : IsRelPrime x y 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (H : IsRelPrime x (y * z))
Goal: IsRelPrime x y
-- IsRelPrime.of_mul_right_right
theorem IsRelPrime.of_mul_right_right (H : IsRelPrime x (y * z)) : IsRelPrime x z 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (H : IsRelPrime x (y * z))
Goal: IsRelPrime x z
-- IsRelPrime.of_dvd_left
theorem IsRelPrime.of_dvd_left (h : IsRelPrime y z) (dvd : x ∣ y) : IsRelPrime x z 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (h : IsRelPrime y z) (dvd : x ∣ y)
Goal: IsRelPrime x z
-- IsRelPrime.of_dvd_right
theorem IsRelPrime.of_dvd_right (h : IsRelPrime z y) (dvd : x ∣ y) : IsRelPrime z x 
Arguments: {α : Type u_1} [CommMonoid α] {x y z : α} (h : IsRelPrime z y) (dvd : x ∣ y)
Goal: IsRelPrime z x
-- IsRelPrime.isUnit_of_dvd
theorem IsRelPrime.isUnit_of_dvd (H : IsRelPrime x y) (d : x ∣ y) : IsUnit x 
Arguments: {α : Type u_1} [CommMonoid α] {x y : α} (H : IsRelPrime x y) (d : x ∣ y)
Goal: IsUnit x