Theorem: Submodule.mem_of_span_top_of_smul_mem
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: suffices (⊤ : Ideal R) • span R ({x} : Set M) ≤ M' by
  rw [top_smul] at this
  exact this (subset_span (Set.mem_singleton x))
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
⊢ x ∈ M'
state_after: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
⊢ ⊤ • span R {x} ≤ M'

tactic: rw [← hs, span_smul_span, span_le]
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
⊢ ⊤ • span R {x} ≤ M'
state_after: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
⊢ ⋃ s_1 ∈ s, ⋃ t ∈ {x}, {s_1 • t} ⊆ ↑M'

tactic: simpa using H
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
⊢ ⋃ s_1 ∈ s, ⋃ t ∈ {x}, {s_1 • t} ⊆ ↑M'
state_after: no goals

tactic: rw [top_smul] at this
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
this : ⊤ • span R {x} ≤ M'
⊢ x ∈ M'
state_after: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
this : span R {x} ≤ M'
⊢ x ∈ M'

tactic: exact this (subset_span (Set.mem_singleton x))
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'✝
inst✝ : Module R M'✝
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Submodule R M
s : Set R
hs : Ideal.span s = ⊤
x : M
H : ∀ (r : ↑s), ↑r • x ∈ M'
this : span R {x} ≤ M'
⊢ x ∈ M'
state_after: no goals