Theorem: Submodule.singleton_span_isCompactElement
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [CompleteLattice.isCompactElement_iff_le_of_directed_sSup_le]
state_before: R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
⊢ CompleteLattice.IsCompactElement (span R {x})

tactic: intro d hemp hdir hsup
state_before: R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
⊢ ∀ (s : Set (Submodule R M)),
    Set.Nonempty s → DirectedOn (fun x x_1 => x ≤ x_1) s → span R {x} ≤ sSup s → ∃ x_1, x_1 ∈ s ∧ span R {x} ≤ x_1

tactic: have : x ∈ (sSup d) := (SetLike.le_def.mp hsup) (mem_span_singleton_self x)
state_before: R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
d : Set (Submodule R M)
hemp : Set.Nonempty d
hdir : DirectedOn (fun x x_1 => x ≤ x_1) d
hsup : span R {x} ≤ sSup d
⊢ ∃ x_1, x_1 ∈ d ∧ span R {x} ≤ x_1

tactic: obtain ⟨y, ⟨hyd, hxy⟩⟩ := (mem_sSup_of_directed hemp hdir).mp this
state_before: R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
d : Set (Submodule R M)
hemp : Set.Nonempty d
hdir : DirectedOn (fun x x_1 => x ≤ x_1) d
hsup : span R {x} ≤ sSup d
this : x ∈ sSup d
⊢ ∃ x_1, x_1 ∈ d ∧ span R {x} ≤ x_1

tactic: exact ⟨y, ⟨hyd, by simpa only [span_le, singleton_subset_iff] ⟩⟩
state_before: case intro.intro
R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
d : Set (Submodule R M)
hemp : Set.Nonempty d
hdir : DirectedOn (fun x x_1 => x ≤ x_1) d
hsup : span R {x} ≤ sSup d
this : x ∈ sSup d
y : Submodule R M
hyd : y ∈ d
hxy : x ∈ y
⊢ ∃ x_1, x_1 ∈ d ∧ span R {x} ≤ x_1

tactic: simpa only [span_le, singleton_subset_iff]
state_before: R : Type u_2
R₂ : Type ?u.223542
K : Type ?u.223545
M : Type u_1
M₂ : Type ?u.223551
V : Type ?u.223554
S : Type ?u.223557
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
x✝ : M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
x : M
d : Set (Submodule R M)
hemp : Set.Nonempty d
hdir : DirectedOn (fun x x_1 => x ≤ x_1) d
hsup : span R {x} ≤ sSup d
this : x ∈ sSup d
y : Submodule R M
hyd : y ∈ d
hxy : x ∈ y
⊢ span R {x} ≤ y