Theorem: CompleteLattice.setIndependent_iff_finite
File: Mathlib/Order/CompactlyGenerated.lean

tactic: rw [disjoint_iff, inf_sSup_eq_iSup_inf_sup_finset, iSup_eq_bot]
state_before: ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
⊢ Disjoint a (sSup (s \ {a}))

tactic: intro t
state_before: ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
⊢ ∀ (i : Finset α), (⨆ (_ : ↑i ⊆ s \ {a}), a ⊓ Finset.sup i id) = ⊥

tactic: rw [iSup_eq_bot, Finset.sup_id_eq_sSup]
state_before: ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
⊢ (⨆ (_ : ↑t ⊆ s \ {a}), a ⊓ Finset.sup t id) = ⊥

tactic: intro ht
state_before: ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
⊢ ↑t ⊆ s \ {a} → a ⊓ sSup ↑t = ⊥

tactic: have h' := (h (insert a t) ?_ (t.mem_insert_self a)).eq_bot
state_before: ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
ht : ↑t ⊆ s \ {a}
⊢ a ⊓ sSup ↑t = ⊥

tactic: rwa [Finset.coe_insert, Set.insert_diff_self_of_not_mem] at h'
state_before: case refine_2
ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
ht : ↑t ⊆ s \ {a}
h' : a ⊓ sSup (↑(insert a t) \ {a}) = ⊥
⊢ a ⊓ sSup ↑t = ⊥

tactic: exact fun con => ((Set.mem_diff a).1 (ht con)).2 (Set.mem_singleton a)
state_before: case refine_2
ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
ht : ↑t ⊆ s \ {a}
h' : a ⊓ sSup (insert a ↑t \ {a}) = ⊥
⊢ ¬a ∈ ↑t

tactic: rw [Finset.coe_insert, Set.insert_subset]
state_before: case refine_1
ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
ht : ↑t ⊆ s \ {a}
⊢ ↑(insert a t) ⊆ s

tactic: exact ⟨ha, Set.Subset.trans ht (Set.diff_subset _ _)⟩
state_before: case refine_1
ι : Sort ?u.105496
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a✝ b : α
s✝ s : Set α
h : ∀ (t : Finset α), ↑t ⊆ s → SetIndependent ↑t
a : α
ha : a ∈ s
t : Finset α
ht : ↑t ⊆ s \ {a}
⊢ a ∈ s ∧ ↑t ⊆ s