Theorem: IsLocalizedModule.fromLocalizedModule.inj
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: induction' x using LocalizedModule.induction_on with a b
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1 : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
⊢ x = y

tactic: induction' y using LocalizedModule.induction_on with a' b'
state_before: case h
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1✝ : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
a : M
b : { x // x ∈ S }
eq1 : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) y
⊢ LocalizedModule.mk a b = y

tactic: simp only [fromLocalizedModule_mk] at eq1
state_before: case h.h
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1✝² : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
a : M
b : { x // x ∈ S }
eq1✝¹ : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) y
a' : M
b' : { x // x ∈ S }
eq1✝ : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) (LocalizedModule.mk a' b')
eq1 : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) (LocalizedModule.mk a' b')
⊢ LocalizedModule.mk a b = LocalizedModule.mk a' b'

tactic: erw [Module.End_algebraMap_isUnit_inv_apply_eq_iff, ← LinearMap.map_smul,
  Module.End_algebraMap_isUnit_inv_apply_eq_iff'] at eq1
state_before: case h.h
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1✝² : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
a : M
b : { x // x ∈ S }
eq1✝¹ : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) y
a' : M
b' : { x // x ∈ S }
eq1✝ : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) (LocalizedModule.mk a' b')
eq1 :
  ↑↑(IsUnit.unit (_ : IsUnit (↑(algebraMap R (Module.End R M')) ↑b)))⁻¹ (↑f a) =
    ↑↑(IsUnit.unit (_ : IsUnit (↑(algebraMap R (Module.End R M')) ↑b')))⁻¹ (↑f a')
⊢ LocalizedModule.mk a b = LocalizedModule.mk a' b'

tactic: erw [LocalizedModule.mk_eq, ← IsLocalizedModule.eq_iff_exists S f,
  f.map_smul, f.map_smul, eq1]
state_before: case h.h
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1✝² : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
a : M
b : { x // x ∈ S }
eq1✝¹ : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) y
a' : M
b' : { x // x ∈ S }
eq1✝ : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) (LocalizedModule.mk a' b')
eq1 : ↑b • ↑f a' = ↑b' • ↑f a
⊢ LocalizedModule.mk a b = LocalizedModule.mk a' b'

tactic: rfl
state_before: case h.h
R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type ?u.658558
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
x y : LocalizedModule S M
eq1✝² : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) y
a : M
b : { x // x ∈ S }
eq1✝¹ : ↑(fromLocalizedModule S f) (LocalizedModule.mk a b) = ↑(fromLocalizedModule S f) y
a' : M
b' : { x // x ∈ S }
eq1✝ : ↑(fromLocalizedModule S f) x = ↑(fromLocalizedModule S f) (LocalizedModule.mk a' b')
eq1 : ↑b • ↑f a' = ↑b' • ↑f a
⊢ ↑b' • ↑f a = ↑(Submonoid.subtype S) b' • ↑f a