Lean source · namespace BFPP
CountablePairs.lean
BFPP/CountablePairs.lean · 64 lines
1import BFPP.Cozero2import BFPP.Families3import Mathlib.Data.Countable.Defs45/-! # An inseparable pair on an F-space cannot have two countable channels -/67namespace BFPP89set_option autoImplicit false10open Set1112universe u v w13variable {K : Type u} [TopologicalSpace K] [CompactSpace K]1415theorem countable_union_cozero_indexed {ι : Type v} [Countable ι] (f : ι → C(K, ℝ)) :16 ∃ g : C(K, ℝ), {t | g t ≠ 0} = ⋃ i, {t | f i t ≠ 0} := by17 classical18 letI := Encodable.ofCountable ι19 let h : ℕ → C(K, ℝ) := fun n => (Encodable.decode (α := ι) n).elim 0 f20 obtain ⟨g, hg⟩ := countable_union_cozero h21 refine ⟨g, hg.trans ?_⟩22 ext t23 simp only [mem_iUnion, Set.mem_ofPred_eq]24 constructor25 · rintro ⟨n, hn⟩26 cases he : Encodable.decode (α := ι) n with27 | none => simp [h, he] at hn28 | some i => exact ⟨i, by simpa only [h, he, Option.elim_some] using hn⟩29 · rintro ⟨i, hi⟩30 exact ⟨Encodable.encode i, by simpa [h] using hi⟩3132theorem InseparablePair.false_of_countable_channels33 {ι : Type v} {κ : Type w} [LinearOrder ι] [OrderBot ι] [LinearOrder κ] [OrderBot κ]34 [Countable ι] [Countable κ] (F : InseparablePair K ι κ) (hK : IsFSpace K) : False := by35 obtain ⟨f, hf⟩ := countable_union_cozero_indexed F.positive.functions36 obtain ⟨g, hg⟩ := countable_union_cozero_indexed F.negative.functions37 have hdis : Disjoint {t | f t ≠ 0} {t | g t ≠ 0} := by38 rw [hf, hg]39 apply Set.disjoint_left.mpr40 intro t ht ht'41 obtain ⟨i, hi⟩ := mem_iUnion.mp ht42 obtain ⟨j, hj⟩ := mem_iUnion.mp ht'43 exact (mul_ne_zero hi hj) (F.orthogonal i j t)44 have hdis' := hK f g hdis45 rw [hf, hg] at hdis'46 have hp : (⋃ i, F.positive.levels i) ⊆ ⋃ i, {t | F.positive.functions i t ≠ 0} := by47 intro t ht48 obtain ⟨i, hi⟩ := mem_iUnion.mp ht49 refine mem_iUnion.mpr ⟨i, ?_⟩50 change F.positive.functions i t = 1 at hi51 change F.positive.functions i t ≠ 052 rw [hi]53 norm_num54 have hn : (⋃ j, F.negative.levels j) ⊆ ⋃ j, {t | F.negative.functions j t ≠ 0} := by55 intro t ht56 obtain ⟨j, hj⟩ := mem_iUnion.mp ht57 refine mem_iUnion.mpr ⟨j, ?_⟩58 change F.negative.functions j t = 1 at hj59 change F.negative.functions j t ≠ 060 rw [hj]61 norm_num62 exact (Set.not_disjoint_iff.mpr F.inseparable) (hdis'.mono (closure_mono hp) (closure_mono hn))6364end BFPPSHA-256
4ce10cb1dee1b098d3a85be01e3b5a04da6331991469b533c37d79a14c04f31e