Theorem: CompleteLattice.IsCompactElement.directed_sSup_lt_of_lt
File: Mathlib/Order/CompactlyGenerated/Basic.lean

Proof steps:
state_before: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : IsCompactElement k
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
⊢ sSup s < k
state_after: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
⊢ sSup s < k
tactic: rw [isCompactElement_iff_le_of_directed_sSup_le] at hk
state_before: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
⊢ sSup s < k
state_after: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬sSup s < k
⊢ False
tactic: by_contra h
state_before: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬sSup s < k
⊢ False
state_after: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬sSup s < k
sSup' : sSup s ≤ k
⊢ False
tactic: have sSup' : sSup s ≤ k := sSup_le s k fun s hs => (hbelow s hs).le
state_before: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬sSup s < k
sSup' : sSup s ≤ k
⊢ False
state_after: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
⊢ False
tactic: replace sSup : sSup s = k := eq_iff_le_not_lt.mpr ⟨sSup', h⟩
state_before: ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
⊢ False
state_after: case intro.intro
ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
x : α
hxs : x ∈ s
hkx : k ≤ x
⊢ False
tactic: obtain ⟨x, hxs, hkx⟩ := hk s hemp hdir sSup.symm.le
state_before: case intro.intro
ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
x : α
hxs : x ∈ s
hkx : k ≤ x
⊢ False
state_after: case intro.intro
ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
x : α
hxs : x ∈ s
hkx : k ≤ x
hxk : x < k
⊢ False
tactic: obtain hxk := hbelow x hxs
state_before: case intro.intro
ι : Sort u_1
α✝ : Type u_2
inst✝¹ : CompleteLattice α✝
f : ι → α✝
α : Type u_3
inst✝ : CompleteLattice α
k : α
hk : ∀ (s : Set α), s.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) s → k ≤ SupSet.sSup s → ∃ x ∈ s, k ≤ x
s : Set α
hemp : s.Nonempty
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hbelow : ∀ x ∈ s, x < k
h : ¬SupSet.sSup s < k
sSup' : SupSet.sSup s ≤ k
sSup : SupSet.sSup s = k
x : α
hxs : x ∈ s
hkx : k ≤ x
hxk : x < k
⊢ False
state_after: no goals
tactic: exact hxk.ne (hxk.le.antisymm hkx)