-- Mathlib/RingTheory/Localization/Finiteness.lean
lemma of_isLocalizedModule [Module.Finite R M] : Module.Finite Rₚ Mₚ

Proof state:
case a
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
x : Mₚ
y : M
m : ↥S
hyx : IsLocalizedModule.mk' f y m = x
hy : y ∈ Submodule.span R ↑T
this : f y ∈ Submodule.span R (⇑f '' ↑T)
H : Submodule.span R (⇑f '' ↑T) ≤ Submodule.restrictScalars R (Submodule.span Rₚ (⇑f '' ↑T))
⊢ x ∈ Submodule.span Rₚ ↑(Finset.image (⇑f) T) ↔ IsLocalization.mk' Rₚ 1 m • f y ∈ Submodule.span Rₚ (⇑f '' ↑T)

Tactic:
rw [← hyx, ← IsLocalizedModule.mk'_one S, IsLocalizedModule.mk'_smul_mk']

Result:
case a
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
x : Mₚ
y : M
m : ↥S
hyx : IsLocalizedModule.mk' f y m = x
hy : y ∈ Submodule.span R ↑T
this : f y ∈ Submodule.span R (⇑f '' ↑T)
H : Submodule.span R (⇑f '' ↑T) ≤ Submodule.restrictScalars R (Submodule.span Rₚ (⇑f '' ↑T))
⊢ IsLocalizedModule.mk' f y m ∈ Submodule.span Rₚ ↑(Finset.image (⇑f) T) ↔
    IsLocalizedModule.mk' f (1 • y) (m * 1) ∈ Submodule.span Rₚ (⇑f '' ↑T)

Proof state:
case h
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
⊢ ⊤ ≤ Submodule.span Rₚ ↑(Finset.image (⇑f) T)

Tactic:
rintro x -

Result:
case h
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
x : Mₚ
⊢ x ∈ Submodule.span Rₚ ↑(Finset.image (⇑f) T)

Proof state:
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
x : Mₚ
y : M
m : ↥S
hyx : IsLocalizedModule.mk' f y m = x
⊢ y ∈ ⊤

Tactic:
trivial

Result:
no goals

Proof state:
R : Type u
inst✝¹¹ : CommSemiring R
S : Submonoid R
Rₚ : Type v
inst✝¹⁰ : CommSemiring Rₚ
inst✝⁹ : Algebra R Rₚ
inst✝⁸ : IsLocalization S Rₚ
M : Type w
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
Mₚ : Type t
inst✝⁵ : AddCommMonoid Mₚ
inst✝⁴ : Module R Mₚ
inst✝³ : Module Rₚ Mₚ
inst✝² : IsScalarTower R Rₚ Mₚ
f : M →ₗ[R] Mₚ
inst✝¹ : IsLocalizedModule S f
inst✝ : Module.Finite R M
T : Finset M
hT : Submodule.span R ↑T = ⊤
x : Mₚ
y : M
m : ↥S
hyx : IsLocalizedModule.mk' f y m = x
hy : y ∈ Submodule.span R ↑T
this : f y ∈ Submodule.span R (⇑f '' ↑T)
⊢ ⇑f '' ↑T ⊆ ↑(Submodule.restrictScalars R (Submodule.span Rₚ (⇑f '' ↑T)))

Tactic:
exact Submodule.subset_span

Result:
no goals