Theorem: Ideal.Filtration.Stable.of_le
File: Mathlib/RingTheory/Filtration.lean

tactic: haveI := isNoetherian_of_fg_of_noetherian' h.1
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Stable F
F' : Filtration I M
hf : F' ≤ F
⊢ Stable F'

tactic: rw [← submodule_fg_iff_stable] at hF⊢
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Stable F
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ Stable F'

tactic: any_goals intro i; exact IsNoetherian.noetherian _
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Submodule.FG (Filtration.submodule F)
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ Submodule.FG (Filtration.submodule F')

case hF'
R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Submodule.FG (Filtration.submodule F)
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ ∀ (i : ℕ), Submodule.FG (N F' i)

case hF'
R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Stable F
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ ∀ (i : ℕ), Submodule.FG (N F i)

tactic: have := isNoetherian_of_fg_of_noetherian _ hF
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Submodule.FG (Filtration.submodule F)
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ Submodule.FG (Filtration.submodule F')

tactic: rw [isNoetherian_submodule] at this
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Submodule.FG (Filtration.submodule F)
F' : Filtration I M
hf : F' ≤ F
this✝ : IsNoetherian R M
this : IsNoetherian { x // x ∈ reesAlgebra I } { x // x ∈ Filtration.submodule F }
⊢ Submodule.FG (Filtration.submodule F')

tactic: exact this _ (OrderHomClass.mono (submoduleInfHom M I) hf)
state_before: R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Submodule.FG (Filtration.submodule F)
F' : Filtration I M
hf : F' ≤ F
this✝ : IsNoetherian R M
this : ∀ (s : Submodule { x // x ∈ reesAlgebra I } (PolynomialModule R M)), s ≤ Filtration.submodule F → Submodule.FG s
⊢ Submodule.FG (Filtration.submodule F')

tactic: intro i
state_before: case hF'
R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Stable F
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
⊢ ∀ (i : ℕ), Submodule.FG (N F i)

tactic: exact IsNoetherian.noetherian _
state_before: case hF'
R M : Type u
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
I : Ideal R
F F'✝ : Filtration I M
h✝ : Stable F
inst✝ : IsNoetherianRing R
h : Module.Finite R M
hF : Stable F
F' : Filtration I M
hf : F' ≤ F
this : IsNoetherian R M
i : ℕ
⊢ Submodule.FG (N F i)