ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SetLike.coe_GSMul
@[simp,nolint simpNF]
theorem SetLike.coe_GSMul {S R N M : Type*} [SetLike S R] [SetLike N M] [SMul R M] [VAdd ιA ιB]
    (A : ιA → S) (B : ιB → N) [SetLike.GradedSMul A B] {i : ιA} {j : ιB} (x : A i) (y : B j) :
    (@GradedMonoid.GSMul.smul ιA ιB (fun i ↦ A i) (fun i ↦ B i) _ _ i j x y : M) = x.1 • y.1 
Arguments: {ιA : Type u_1} {ιB : Type u_2} {S : Type u_5} {R : Type u_6} {N : Type u_7} {M : Type u_8} [SetLike S R] [SetLike N M] [SMul R M] [VAdd ιA ιB] (A : ιA → S) (B : ιB → N) [SetLike.GradedSMul A B] {i : ιA} {j : ιB} (x : ↥(A i)) (y : ↥(B j))
Goal: ↑(GradedMonoid.GSMul.smul x y) = ↑x • ↑y
-- SetLike.Homogeneous.graded_smul
theorem SetLike.Homogeneous.graded_smul [VAdd ιA ιB] [SMul R M] {A : ιA → S} {B : ιB → N}
    [SetLike.GradedSMul A B] {a : R} {b : M} :
    SetLike.Homogeneous A a → SetLike.Homogeneous B b → SetLike.Homogeneous B (a • b)
  
Arguments: {ιA : Type u_1} {ιB : Type u_2} {S : Type u_4} {R : Type u_5} {N : Type u_6} {M : Type u_7} [SetLike S R] [SetLike N M] [VAdd ιA ιB] [SMul R M] {A : ιA → S} {B : ιB → N} [SetLike.GradedSMul A B] {a : R} {b : M}
Goal: SetLike.Homogeneous A a → SetLike.Homogeneous B b → SetLike.Homogeneous B (a • b)
-- AddMonoidHom.ker_eq_bot_of_cancel
@[to_additive]
theorem ker_eq_bot_of_cancel {f : A →* B} (h : ∀ u v : f.ker →* A, f.comp u = f.comp v → u = v) :
    f.ker = ⊥ 
Arguments: {A : Type u} {B : Type v} [AddGroup A] [AddGroup B] {f : A →+ B} (h : ∀ (u v : ↥f.ker →+ A), f.comp u = f.comp v → u = v)
Goal: f.ker = ⊥
-- MonoidHom.ker_eq_bot_of_cancel
@[to_additive]
theorem ker_eq_bot_of_cancel {f : A →* B} (h : ∀ u v : f.ker →* A, f.comp u = f.comp v → u = v) :
    f.ker = ⊥ 
Arguments: {A : Type u} {B : Type v} [Group A] [Group B] {f : A →* B} (h : ∀ (u v : ↥f.ker →* A), f.comp u = f.comp v → u = v)
Goal: f.ker = ⊥
-- AddMonoidHom.range_eq_top_of_cancel
@[to_additive]
theorem range_eq_top_of_cancel {f : A →* B}
    (h : ∀ u v : B →* B ⧸ f.range, u.comp f = v.comp f → u = v) : f.range = ⊤ 
Arguments: {A : Type u} {B : Type v} [AddCommGroup A] [AddCommGroup B] {f : A →+ B} (h : ∀ (u v : B →+ B ⧸ f.range), u.comp f = v.comp f → u = v)
Goal: f.range = ⊤
-- MonoidHom.range_eq_top_of_cancel
@[to_additive]
theorem range_eq_top_of_cancel {f : A →* B}
    (h : ∀ u v : B →* B ⧸ f.range, u.comp f = v.comp f → u = v) : f.range = ⊤ 
Arguments: {A : Type u} {B : Type v} [CommGroup A] [CommGroup B] {f : A →* B} (h : ∀ (u v : B →* B ⧸ f.range), u.comp f = v.comp f → u = v)
Goal: f.range = ⊤
-- Grp.ker_eq_bot_of_mono
@[to_additive]
theorem ker_eq_bot_of_mono [Mono f] : f.ker = ⊥ 
Arguments: {A B : Grp} (f : A ⟶ B) [CategoryTheory.Mono f]
Goal: MonoidHom.ker f = ⊥
-- AddGrp.ker_eq_bot_of_mono
@[to_additive]
theorem ker_eq_bot_of_mono [Mono f] : f.ker = ⊥ 
Arguments: {A B : AddGrp} (f : A ⟶ B) [CategoryTheory.Mono f]
Goal: AddMonoidHom.ker f = ⊥
-- AddGrp.mono_iff_ker_eq_bot
@[to_additive]
theorem mono_iff_ker_eq_bot : Mono f ↔ f.ker = ⊥ 
Arguments: {A B : AddGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ AddMonoidHom.ker f = ⊥
-- Grp.mono_iff_ker_eq_bot
@[to_additive]
theorem mono_iff_ker_eq_bot : Mono f ↔ f.ker = ⊥ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ MonoidHom.ker f = ⊥
-- Grp.mono_iff_injective
@[to_additive]
theorem mono_iff_injective : Mono f ↔ Function.Injective f 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ Function.Injective ⇑f
-- AddGrp.mono_iff_injective
@[to_additive]
theorem mono_iff_injective : Mono f ↔ Function.Injective f 
Arguments: {A B : AddGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ Function.Injective ⇑f
-- Grp.SurjectiveOfEpiAuxs.mul_smul
theorem mul_smul (b b' : B) (x : X') : (b * b') • x = b • b' • x 
Arguments: {A B : Grp} (f : A ⟶ B) (b b' : ↑B) (x : Grp.SurjectiveOfEpiAuxs.XWithInfinity f)
Goal: (b * b') • x = b • b' • x
-- Grp.SurjectiveOfEpiAuxs.one_smul
theorem one_smul (x : X') : (1 : B) • x = x 
Arguments: {A B : Grp} (f : A ⟶ B) (x : Grp.SurjectiveOfEpiAuxs.XWithInfinity f)
Goal: 1 • x = x
-- Grp.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range
theorem fromCoset_eq_of_mem_range {b : B} (hb : b ∈ f.range) :
    fromCoset ⟨b • ↑f.range, b, rfl⟩ = fromCoset ⟨f.range, 1, one_leftCoset _⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) {b : ↑B} (hb : b ∈ MonoidHom.range f)
Goal: Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩ =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range
theorem fromCoset_ne_of_nin_range {b : B} (hb : b ∉ f.range) :
    fromCoset ⟨b • ↑f.range, b, rfl⟩ ≠ fromCoset ⟨f.range, 1, one_leftCoset _⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) {b : ↑B} (hb : b ∉ MonoidHom.range f)
Goal: Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩ ≠
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.τ_apply_infinity
theorem τ_apply_infinity : τ ∞ = fromCoset ⟨f.range, 1, one_leftCoset _⟩ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: (Grp.SurjectiveOfEpiAuxs.tau f) Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset
theorem τ_apply_fromCoset : τ (fromCoset ⟨f.range, 1, one_leftCoset _⟩) = ∞ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: (Grp.SurjectiveOfEpiAuxs.tau f) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity
-- Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset'
theorem τ_apply_fromCoset' (x : B) (hx : x ∈ f.range) :
    τ (fromCoset ⟨x • ↑f.range, ⟨x, rfl⟩⟩) = ∞ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B) (hx : x ∈ MonoidHom.range f)
Goal: (Grp.SurjectiveOfEpiAuxs.tau f) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨x • ↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity
-- Grp.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset
theorem τ_symm_apply_fromCoset : Equiv.symm τ (fromCoset ⟨f.range, 1, one_leftCoset _⟩) = ∞ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: (Equiv.symm (Grp.SurjectiveOfEpiAuxs.tau f))
    (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity
-- Grp.SurjectiveOfEpiAuxs.τ_symm_apply_infinity
theorem τ_symm_apply_infinity :
    Equiv.symm τ ∞ = fromCoset ⟨f.range, 1, one_leftCoset _⟩ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: (Equiv.symm (Grp.SurjectiveOfEpiAuxs.tau f)) Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.g_apply_fromCoset
theorem g_apply_fromCoset (x : B) (y : Set.range (· • (f.range : Set B) : B → Set B)) :
    g x (fromCoset y) = fromCoset ⟨x • ↑y,
      by obtain ⟨z, hz⟩ := y.2; exact ⟨x * z, by simp [← hz, smul_smul]⟩⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B) (y : ↑(Set.range fun x => x • ↑(MonoidHom.range f)))
Goal: ((Grp.SurjectiveOfEpiAuxs.g f) x) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset y) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨x • ↑y, ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.g_apply_infinity
theorem g_apply_infinity (x : B) : (g x) ∞ = ∞ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B)
Goal: ((Grp.SurjectiveOfEpiAuxs.g f) x) Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity
-- Grp.SurjectiveOfEpiAuxs.h_apply_infinity
theorem h_apply_infinity (x : B) (hx : x ∈ f.range) : (h x) ∞ = ∞ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B) (hx : x ∈ MonoidHom.range f)
Goal: ((Grp.SurjectiveOfEpiAuxs.h f) x) Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.infinity
-- Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset
theorem h_apply_fromCoset (x : B) :
    (h x) (fromCoset ⟨f.range, 1, one_leftCoset _⟩) =
      fromCoset ⟨f.range, 1, one_leftCoset _⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B)
Goal: ((Grp.SurjectiveOfEpiAuxs.h f) x) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset'
theorem h_apply_fromCoset' (x : B) (b : B) (hb : b ∈ f.range) :
    h x (fromCoset ⟨b • f.range, b, rfl⟩) = fromCoset ⟨b • ↑f.range, b, rfl⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) (x b : ↑B) (hb : b ∈ MonoidHom.range f)
Goal: ((Grp.SurjectiveOfEpiAuxs.h f) x) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range
theorem h_apply_fromCoset_nin_range (x : B) (hx : x ∈ f.range) (b : B) (hb : b ∉ f.range) :
    h x (fromCoset ⟨b • f.range, b, rfl⟩) = fromCoset ⟨(x * b) • ↑f.range, x * b, rfl⟩ 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B) (hx : x ∈ MonoidHom.range f) (b : ↑B) (hb : b ∉ MonoidHom.range f)
Goal: ((Grp.SurjectiveOfEpiAuxs.h f) x) (Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩) =
  Grp.SurjectiveOfEpiAuxs.XWithInfinity.fromCoset ⟨(x * b) • ↑(MonoidHom.range f), ⋯⟩
-- Grp.SurjectiveOfEpiAuxs.agree
theorem agree : f.range = { x | h x = g x } 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: ↑(MonoidHom.range f) = {x | (Grp.SurjectiveOfEpiAuxs.h f) x = (Grp.SurjectiveOfEpiAuxs.g f) x}
-- Grp.SurjectiveOfEpiAuxs.comp_eq
theorem comp_eq : (f ≫ show B ⟶ Grp.of SX' from g) = f ≫ show B ⟶ Grp.of SX' from h 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: CategoryTheory.CategoryStruct.comp f
    (let_fun this := Grp.SurjectiveOfEpiAuxs.g f;
    this) =
  CategoryTheory.CategoryStruct.comp f
    (let_fun this := Grp.SurjectiveOfEpiAuxs.h f;
    this)
-- Grp.SurjectiveOfEpiAuxs.g_ne_h
theorem g_ne_h (x : B) (hx : x ∉ f.range) : g ≠ h 
Arguments: {A B : Grp} (f : A ⟶ B) (x : ↑B) (hx : x ∉ MonoidHom.range f)
Goal: Grp.SurjectiveOfEpiAuxs.g f ≠ Grp.SurjectiveOfEpiAuxs.h f
-- Grp.surjective_of_epi
theorem surjective_of_epi [Epi f] : Function.Surjective f 
Arguments: {A B : Grp} (f : A ⟶ B) [CategoryTheory.Epi f]
Goal: Function.Surjective ⇑f
-- Grp.epi_iff_surjective
theorem epi_iff_surjective : Epi f ↔ Function.Surjective f 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- Grp.epi_iff_range_eq_top
theorem epi_iff_range_eq_top : Epi f ↔ f.range = ⊤ 
Arguments: {A B : Grp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ MonoidHom.range f = ⊤
-- AddGrp.epi_iff_surjective
theorem epi_iff_surjective : Epi f ↔ Function.Surjective f 
Arguments: {A B : AddGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- AddGrp.epi_iff_range_eq_top
theorem epi_iff_range_eq_top : Epi f ↔ f.range = ⊤ 
Arguments: {A B : AddGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ AddMonoidHom.range f = ⊤
-- AddCommGrp.ker_eq_bot_of_mono
@[to_additive]
theorem ker_eq_bot_of_mono [Mono f] : f.ker = ⊥ 
Arguments: {A B : AddCommGrp} (f : A ⟶ B) [CategoryTheory.Mono f]
Goal: AddMonoidHom.ker f = ⊥
-- CommGrp.ker_eq_bot_of_mono
@[to_additive]
theorem ker_eq_bot_of_mono [Mono f] : f.ker = ⊥ 
Arguments: {A B : CommGrp} (f : A ⟶ B) [CategoryTheory.Mono f]
Goal: MonoidHom.ker f = ⊥
-- CommGrp.mono_iff_ker_eq_bot
@[to_additive]
theorem mono_iff_ker_eq_bot : Mono f ↔ f.ker = ⊥ 
Arguments: {A B : CommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ MonoidHom.ker f = ⊥
-- AddCommGrp.mono_iff_ker_eq_bot
@[to_additive]
theorem mono_iff_ker_eq_bot : Mono f ↔ f.ker = ⊥ 
Arguments: {A B : AddCommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ AddMonoidHom.ker f = ⊥
-- CommGrp.mono_iff_injective
@[to_additive]
theorem mono_iff_injective : Mono f ↔ Function.Injective f 
Arguments: {A B : CommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ Function.Injective ⇑f
-- AddCommGrp.mono_iff_injective
@[to_additive]
theorem mono_iff_injective : Mono f ↔ Function.Injective f 
Arguments: {A B : AddCommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Mono f ↔ Function.Injective ⇑f
-- AddCommGrp.range_eq_top_of_epi
@[to_additive]
theorem range_eq_top_of_epi [Epi f] : f.range = ⊤ 
Arguments: {A B : AddCommGrp} (f : A ⟶ B) [CategoryTheory.Epi f]
Goal: AddMonoidHom.range f = ⊤
-- CommGrp.range_eq_top_of_epi
@[to_additive]
theorem range_eq_top_of_epi [Epi f] : f.range = ⊤ 
Arguments: {A B : CommGrp} (f : A ⟶ B) [CategoryTheory.Epi f]
Goal: MonoidHom.range f = ⊤
-- CommGrp.epi_iff_range_eq_top
@[to_additive]
theorem epi_iff_range_eq_top : Epi f ↔ f.range = ⊤ 
Arguments: {A B : CommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ MonoidHom.range f = ⊤
-- AddCommGrp.epi_iff_range_eq_top
@[to_additive]
theorem epi_iff_range_eq_top : Epi f ↔ f.range = ⊤ 
Arguments: {A B : AddCommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ AddMonoidHom.range f = ⊤
-- AddCommGrp.epi_iff_surjective
@[to_additive]
theorem epi_iff_surjective : Epi f ↔ Function.Surjective f 
Arguments: {A B : AddCommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- CommGrp.epi_iff_surjective
@[to_additive]
theorem epi_iff_surjective : Epi f ↔ Function.Surjective f 
Arguments: {A B : CommGrp} (f : A ⟶ B)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- LocalizedModule.r.isEquiv
theorem r.isEquiv : IsEquiv _ (r S M) 
Arguments: {R : Type u} [CommSemiring R] (S : Submonoid R) (M : Type v) [AddCommMonoid M] [Module R M]
Goal: IsEquiv (M × ↥S) (LocalizedModule.r S M)
-- LocalizedModule.mk_eq
theorem mk_eq {m m' : M} {s s' : S} : mk m s = mk m' s' ↔ ∃ u : S, u • s' • m = u • s • m' 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {m m' : M} {s s' : ↥S}
Goal: LocalizedModule.mk m s = LocalizedModule.mk m' s' ↔ ∃ u, u • s' • m = u • s • m'
-- LocalizedModule.induction_on
@[elab_as_elim, induction_eliminator, cases_eliminator]
theorem induction_on {β : LocalizedModule S M → Prop} (h : ∀ (m : M) (s : S), β (mk m s)) :
    ∀ x : LocalizedModule S M, β x 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {β : LocalizedModule S M → Prop} (h : ∀ (m : M) (s : ↥S), β (LocalizedModule.mk m s)) (x : LocalizedModule S M)
Goal: β x
-- LocalizedModule.induction_on₂
@[elab_as_elim]
theorem induction_on₂ {β : LocalizedModule S M → LocalizedModule S M → Prop}
    (h : ∀ (m m' : M) (s s' : S), β (mk m s) (mk m' s')) : ∀ x y, β x y 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {β : LocalizedModule S M → LocalizedModule S M → Prop} (h : ∀ (m m' : M) (s s' : ↥S), β (LocalizedModule.mk m s) (LocalizedModule.mk m' s')) (x y : LocalizedModule S M)
Goal: β x y
-- LocalizedModule.liftOn_mk
theorem liftOn_mk {α : Type*} {f : M × S → α} (wd : ∀ (p p' : M × S), p ≈ p' → f p = f p')
    (m : M) (s : S) : liftOn (mk m s) f wd = f ⟨m, s⟩ 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {α : Type u_2} {f : M × ↥S → α} (wd : ∀ (p p' : M × ↥S), p ≈ p' → f p = f p') (m : M) (s : ↥S)
Goal: (LocalizedModule.mk m s).liftOn f wd = f (m, s)
-- LocalizedModule.liftOn₂_mk
theorem liftOn₂_mk {α : Type*} (f : M × S → M × S → α)
    (wd : ∀ (p q p' q' : M × S), p ≈ p' → q ≈ q' → f p q = f p' q') (m m' : M)
    (s s' : S) : liftOn₂ (mk m s) (mk m' s') f wd = f ⟨m, s⟩ ⟨m', s'⟩ 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {α : Type u_2} (f : M × ↥S → M × ↥S → α) (wd : ∀ (p q p' q' : M × ↥S), p ≈ p' → q ≈ q' → f p q = f p' q') (m m' : M) (s s' : ↥S)
Goal: (LocalizedModule.mk m s).liftOn₂ (LocalizedModule.mk m' s') f wd = f (m, s) (m', s')
-- LocalizedModule.subsingleton
theorem subsingleton (h : 0 ∈ S) : Subsingleton (LocalizedModule S M) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (h : 0 ∈ S)
Goal: Subsingleton (LocalizedModule S M)
-- LocalizedModule.zero_mk
@[simp]
theorem zero_mk (s : S) : mk (0 : M) s = 0 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (s : ↥S)
Goal: LocalizedModule.mk 0 s = 0
-- LocalizedModule.mk_add_mk
theorem mk_add_mk {m1 m2 : M} {s1 s2 : S} :
    mk m1 s1 + mk m2 s2 = mk (s2 • m1 + s1 • m2) (s1 * s2) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {m1 m2 : M} {s1 s2 : ↥S}
Goal: LocalizedModule.mk m1 s1 + LocalizedModule.mk m2 s2 = LocalizedModule.mk (s2 • m1 + s1 • m2) (s1 * s2)
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.add_assoc'
private theorem add_assoc' (x y z : LocalizedModule S M) : x + y + z = x + (y + z) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (x y z : LocalizedModule S M)
Goal: x + y + z = x + (y + z)
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.add_comm'
private theorem add_comm' (x y : LocalizedModule S M) : x + y = y + x 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (x y : LocalizedModule S M)
Goal: x + y = y + x
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.zero_add'
private theorem zero_add' (x : LocalizedModule S M) : 0 + x = x 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (x : LocalizedModule S M)
Goal: 0 + x = x
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.add_zero'
private theorem add_zero' (x : LocalizedModule S M) : x + 0 = x 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (x : LocalizedModule S M)
Goal: x + 0 = x
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.nsmul_zero'
private theorem nsmul_zero' (x : LocalizedModule S M) : (0 : ℕ) • x = 0 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (x : LocalizedModule S M)
Goal: 0 • x = 0
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.nsmul_succ'
private theorem nsmul_succ' (n : ℕ) (x : LocalizedModule S M) : n.succ • x = n • x + x 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (n : ℕ) (x : LocalizedModule S M)
Goal: n.succ • x = n • x + x
-- LocalizedModule.mk_neg
theorem mk_neg {M : Type*} [AddCommGroup M] [Module R M] {m : M} {s : S} : mk (-m) s = -mk m s 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type u_2} [AddCommGroup M] [Module R M] {m : M} {s : ↥S}
Goal: LocalizedModule.mk (-m) s = -LocalizedModule.mk m s
-- LocalizedModule.mk_mul_mk
theorem mk_mul_mk {A : Type*} [Semiring A] [Algebra R A] {a₁ a₂ : A} {s₁ s₂ : S} :
    mk a₁ s₁ * mk a₂ s₂ = mk (a₁ * a₂) (s₁ * s₂) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {A : Type u_2} [Semiring A] [Algebra R A] {a₁ a₂ : A} {s₁ s₂ : ↥S}
Goal: LocalizedModule.mk a₁ s₁ * LocalizedModule.mk a₂ s₂ = LocalizedModule.mk (a₁ * a₂) (s₁ * s₂)
-- LocalizedModule.smul_def
theorem smul_def (x : T) (m : M) (s : S) :
    x • mk m s = mk ((IsLocalization.sec S x).1 • m) ((IsLocalization.sec S x).2 * s) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (T : Type u_1) [CommSemiring T] [Algebra R T] [IsLocalization S T] (x : T) (m : M) (s : ↥S)
Goal: x • LocalizedModule.mk m s = LocalizedModule.mk ((IsLocalization.sec S x).1 • m) ((IsLocalization.sec S x).2 * s)
-- LocalizedModule.mk'_smul_mk
theorem mk'_smul_mk (r : R) (m : M) (s s' : S) :
    IsLocalization.mk' T r s • mk m s' = mk (r • m) (s * s') 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (T : Type u_1) [CommSemiring T] [Algebra R T] [IsLocalization S T] (r : R) (m : M) (s s' : ↥S)
Goal: IsLocalization.mk' T r s • LocalizedModule.mk m s' = LocalizedModule.mk (r • m) (s * s')
-- LocalizedModule.mk_smul_mk
theorem mk_smul_mk (r : R) (m : M) (s t : S) :
    Localization.mk r s • mk m t = mk (r • m) (s * t) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (r : R) (m : M) (s t : ↥S)
Goal: Localization.mk r s • LocalizedModule.mk m t = LocalizedModule.mk (r • m) (s * t)
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.one_smul_aux
private theorem one_smul_aux (p : LocalizedModule S M) : (1 : T) • p = p 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (p : LocalizedModule S M)
Goal: 1 • p = p
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.mul_smul_aux
private theorem mul_smul_aux (x y : T) (p : LocalizedModule S M) :
    (x * y) • p = x • y • p 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (x y : T) (p : LocalizedModule S M)
Goal: (x * y) • p = x • y • p
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.smul_add_aux
private theorem smul_add_aux (x : T) (p q : LocalizedModule S M) :
    x • (p + q) = x • p + x • q 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (x : T) (p q : LocalizedModule S M)
Goal: x • (p + q) = x • p + x • q
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.smul_zero_aux
private theorem smul_zero_aux (x : T) : x • (0 : LocalizedModule S M) = 0 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (x : T)
Goal: x • 0 = 0
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.add_smul_aux
private theorem add_smul_aux (x y : T) (p : LocalizedModule S M) :
    (x + y) • p = x • p + y • p 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (x y : T) (p : LocalizedModule S M)
Goal: (x + y) • p = x • p + y • p
-- _private.Mathlib.Algebra.Module.LocalizedModule.0.LocalizedModule.zero_smul_aux
private theorem zero_smul_aux (p : LocalizedModule S M) : (0 : T) • p = 0 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] (p : LocalizedModule S M)
Goal: 0 • p = 0
-- LocalizedModule.mk_cancel_common_left
@[simp]
theorem mk_cancel_common_left (s' s : S) (m : M) : mk (s' • m) (s' * s) = mk m s 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (s' s : ↥S) (m : M)
Goal: LocalizedModule.mk (s' • m) (s' * s) = LocalizedModule.mk m s
-- LocalizedModule.mk_cancel
@[simp]
theorem mk_cancel (s : S) (m : M) : mk (s • m) s = mk m 1 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (s : ↥S) (m : M)
Goal: LocalizedModule.mk (s • m) s = LocalizedModule.mk m 1
-- LocalizedModule.mk_cancel_common_right
@[simp]
theorem mk_cancel_common_right (s s' : S) (m : M) : mk (s' • m) (s * s') = mk m s 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (s s' : ↥S) (m : M)
Goal: LocalizedModule.mk (s' • m) (s * s') = LocalizedModule.mk m s
-- LocalizedModule.smul'_mk
theorem smul'_mk (r : R) (s : S) (m : M) : r • mk m s = mk (r • m) s 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {M : Type v} [AddCommMonoid M] [Module R M] (r : R) (s : ↥S) (m : M)
Goal: r • LocalizedModule.mk m s = LocalizedModule.mk (r • m) s
-- LocalizedModule.smul'_mul
theorem smul'_mul {A : Type*} [Semiring A] [Algebra R A] (x : T) (p₁ p₂ : LocalizedModule S A) :
    x • p₁ * p₂ = x • (p₁ * p₂) 
Arguments: {R : Type u} [CommSemiring R] {S : Submonoid R} {T : Type u_1} [CommSemiring T] [Algebra R T] [IsLocalization S T] {A : Type u_2} [Semiring A] [Algebra R A] (x : T) (p₁ p₂ : LocalizedModule S A)
Goal: x • p₁ * p₂ = x • (p₁ * p₂)