Lean source · namespace BFPP

SignRealization.lean

BFPP/SignRealization.lean · 71 lines

1import BFPP.SignTermination2import BFPP.SaturatedChains3import BFPP.OrdinalIndex4import Mathlib.Topology.Connected.TotallyDisconnected56/-! # Realization of a stopped transfinite sign recursion -/78namespace BFPP910set_option autoImplicit false1112open Set Order TopologicalSpace1314universe u15variable {K : Type u} [TopologicalSpace K] [CompactSpace K] [NormalSpace K]1617noncomputable def stoppedSignChain (seed : UnitBall C(K, ℝ)) (d : Ordinal.{u})18    [Fact (IsSuccLimit d)] (hd : ¬ SignStageGood seed d)19    (hbefore : ∀ a, a < d → SignStageGood seed a) :20    SaturatedSignChain K (OrdinalIndex d) where21  functions i := signRecursion seed i.val22  at_bot := by23    change (signRecursion seed 0).val = 024    rw [signRecursion_zero]25    rfl26  positive i j hij t ht :=27    signRecursion_positive_saturated seed i.val j.val hij (hbefore j.val j.property) t ht28  negative i j hij t ht :=29    signRecursion_negative_saturated seed i.val j.val hij (hbefore j.val j.property) t ht30  terminal := by31    change (closure (signsPositiveBefore (signRecursion seed) d) ∩32      closure (signsNegativeBefore (signRecursion seed) d)).Nonempty33    exact Set.not_disjoint_iff.mp hd3435theorem not_hasBFPP_of_clopenInseparable (hK : IsFSpace K)36    (seed : UnitBall C(K, ℝ)) (p q : K) (hpq : ClopenInseparable p q)37    (hp : seed.val p = 1) (hq : seed.val q = -1) : ¬ HasBFPP C(K, ℝ) := by38  obtain ⟨d, hlimit, hd, hbefore⟩ := exists_first_bad_limit hK seed p q hpq hp hq39  letI : Fact (IsSuccLimit d) := ⟨hlimit⟩40  exact (stoppedSignChain seed d hd hbefore).toInseparablePair.not_hasBFPP4142theorem exists_clopenInseparable_of_not_totallySeparated43    (hK : ¬ TotallySeparatedSpace K) : ∃ p q : K, p ≠ q ∧ ClopenInseparable p q := by44  classical45  by_contra hnone46  apply hK47  apply totallySeparatedSpace_iff_exists_isClopen.mpr48  intro p q hpq49  have hsep : ¬ ClopenInseparable p q := by50    intro h51    exact hnone ⟨p, q, hpq, h⟩52  unfold ClopenInseparable at hsep53  push_neg at hsep54  obtain ⟨s, hp, hq⟩ := hsep55  exact ⟨s, s.isClopen, hp, hq⟩5657theorem not_hasBFPP_of_not_totallySeparated [T2Space K] (hF : IsFSpace K)58    (hK : ¬ TotallySeparatedSpace K) : ¬ HasBFPP C(K, ℝ) := by59  obtain ⟨p, q, hpq, hinsep⟩ := exists_clopenInseparable_of_not_totallySeparated hK60  have hd : Disjoint (closure ({p} : Set K)) (closure ({q} : Set K)) := by61    simpa only [isClosed_singleton.closure_eq, disjoint_singleton] using hpq62  obtain ⟨seed, hp, hq⟩ := exists_sign_extension ({p} : Set K) {q} hd63  exact not_hasBFPP_of_clopenInseparable hF seed p q hinsep64    (hp p (subset_closure (mem_singleton p))) (hq q (subset_closure (mem_singleton q)))6566theorem totallySeparated_of_hasBFPP [T2Space K] (h : HasBFPP C(K, ℝ)) :67    TotallySeparatedSpace K := by68  by_contra hn69  exact not_hasBFPP_of_not_totallySeparated (isFSpace_of_hasBFPP h) hn h7071end BFPP

SHA-256

9f988845b0968b53edb7f96f1e68b58e4d0c02c212f412fe0d1fb5cb48877ad7