@@ -286,20 +286,27 @@ A filter is free iff it is smaller than the cofinite filter.
286286-/
287287theorem le_cofinite_iff_ker (f : Filter α) : f ≤ cofinite ↔ f.ker = ∅ := by
288288 rw [le_cofinite_iff_compl_singleton_mem, ker_def, iInter₂_eq_empty_iff]
289- refine forall_congr' fun x => ⟨fun h => ⟨{x}ᶜ, h, by simp⟩,
290- fun ⟨s, hs, hx⟩ => f.mem_of_superset hs (by simpa using hx)⟩
289+ exact forall_congr' fun x => ⟨fun h => ⟨{x}ᶜ, h, by simp⟩,
290+ fun ⟨s, hs, hx⟩ => mem_of_superset hs (by simpa using hx)⟩
291+
292+ lemma eq_principal_ker_sup_inf_principal_ker_compl (f : Filter α) :
293+ f = 𝓟 f.ker ⊔ (f ⊓ 𝓟 f.kerᶜ) := by
294+ rw [sup_inf_left]
295+ simpa using gi_principal_ker.gc.l_u_le f
296+
297+ lemma inf_principal_ker_compl_le_cofinite (f : Filter α) : f ⊓ 𝓟 f.kerᶜ ≤ cofinite := by
298+ rw [le_cofinite_iff_ker, ker_inf, ker_principal, inter_compl_self]
291299
292300/--
293301Every filter is the disjoint supremum of a principal filter and a free filter in a unique way.
294302-/
295303theorem existsUnique_eq_principal_sup_free (f : Filter α) :
296304 ∃! p : Set α × Filter α, p.2 ≤ cofinite ∧ Disjoint (𝓟 p.1 ) p.2 ∧ f = 𝓟 p.1 ⊔ p.2 := by
297305 refine ⟨(f.ker, f ⊓ 𝓟 f.kerᶜ), ⟨?_, ?_, ?_⟩, fun q hq => ?_⟩
298- · rw [le_cofinite_iff_ker, ker_inf, ker_principal, inter_compl_self]
306+ · exact inf_principal_ker_compl_le_cofinite f
299307 · rw [disjoint_principal_left]
300308 exact mem_inf_of_right (mem_principal_self f.kerᶜ)
301- · rw [sup_inf_left]
302- simpa using gi_principal_ker.gc.l_u_le f
309+ · exact eq_principal_ker_sup_inf_principal_ker_compl f
303310 · have hqk := congrArg Filter.ker hq.2 .2
304311 rw [ker_sup, ker_principal, (le_cofinite_iff_ker q.2 ).mp hq.1 , union_empty] at hqk
305312 refine congrArg₂ Prod.mk hqk.symm (le_antisymm (le_inf ?_ ?_) ?_)
0 commit comments