Theorem: LocalizedModule.divBy_mul_by
File: Mathlib/Algebra/Module/LocalizedModule.lean

Proof steps:
state_before: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ (divBy s) (((algebraMap R (Module.End R (LocalizedModule S M))) ↑s) (mk m t)) = mk m t
state_after: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ (↑s • mk m t).liftOn (fun p => mk p.1 (p.2 * s)) ⋯ = mk m t
tactic: rw [Module.algebraMap_end_apply, divBy_apply]
state_before: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ (↑s • mk m t).liftOn (fun p => mk p.1 (p.2 * s)) ⋯ = mk m t
state_after: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ (mk ((IsLocalization.sec S (↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s)).1 • m)
          ((IsLocalization.sec S (↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s)).2 * t)).liftOn
      (fun p => mk p.1 (p.2 * s)) ⋯ =
    mk m t
tactic: erw [smul_def]
state_before: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ (mk ((IsLocalization.sec S (↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s)).1 • m)
          ((IsLocalization.sec S (↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s)).2 * t)).liftOn
      (fun p => mk p.1 (p.2 * s)) ⋯ =
    mk m t
state_after: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ ↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s • mk m (t * s) = mk m t
tactic: rw [LocalizedModule.liftOn_mk, mul_assoc, ← smul_def]
state_before: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ ↑(algebraMap R (Localization S)).toMonoidWithZeroHom ↑s • mk m (t * s) = mk m t
state_after: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ mk (↑s • m) (t * s) = mk m t
tactic: erw [smul'_mk]
state_before: R : Type u
inst✝⁵ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
T : Type u_1
inst✝² : CommSemiring T
inst✝¹ : Algebra R T
inst✝ : IsLocalization S T
s : ↥S
p : LocalizedModule S M
m : M
t : ↥S
⊢ mk (↑s • m) (t * s) = mk m t
state_after: no goals
tactic: rw [← Submonoid.smul_def, mk_cancel_common_right _ s]