Documentation

InfinitaryLogic.Descriptive.G0Fusion

Fusion for the G₀-dichotomy: level objects and edge bookkeeping #

Infrastructure for the fusion recursion of the classical G₀-dichotomy (2C-b sub-block 4; see docs/silver-phase2-route.md), building on the positivity machinery of InfinitaryLogic/Descriptive/G0Dichotomy.lean:

On top of these, the final section builds the fusion recursion itself: the FusionStage tower (exists_fusionStage_zero, exists_fusionStage_succ, fusionTower) and the limit extraction exists_gsGraph_hom — the classical G₀-dichotomy construction completing Silver's theorem.

Finite-word API #

theorem G0Fusion.snoc_apply_mk_of_lt {n : } (u : Fin nBool) (i : Bool) {j : } (hj : j < n) (hj' : j < n + 1) :
Fin.snoc u i j, hj' = u j, hj
theorem G0Fusion.snoc_apply_lt {n : } (u : Fin nBool) (i : Bool) (j : Fin (n + 1)) (hj : j < n) :
Fin.snoc u i j = u j, hj

Coercion-tame access below the last position.

theorem G0Fusion.snoc_apply_eq {n : } (u : Fin nBool) (i : Bool) (j : Fin (n + 1)) (hj : j = n) :
Fin.snoc u i j = i

Coercion-tame access at the last position.

def G0Fusion.restr (n : ) (x : Bool) :
Fin nBool

The level-n restriction of an infinite branch.

Equations
Instances For
    theorem G0Fusion.restr_succ (n : ) (x : Bool) :
    restr (n + 1) x = Fin.snoc (restr n x) (x n)
    def G0Fusion.cvert (m n : ) :
    Fin nBool

    The canonical word m as a level-n vertex (positions beyond the word read false).

    Equations
    Instances For

      Edge bookkeeping #

      def G0Fusion.LvlEdgeAt (m n : ) (u v : Fin nBool) :

      The oriented level-n trace of the GSGraph canonicalS edge created by the canonical word m: both vertices extend the word, the cross position carries false on the left and true on the right, and the tails agree.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem G0Fusion.lvlEdgeAt_fresh (m n : ) (h : canonicalLen m = n) :
        LvlEdgeAt m (n + 1) (Fin.snoc (cvert m n) false) (Fin.snoc (cvert m n) true)

        The fresh cross pair at the level just past the canonical word.

        theorem G0Fusion.lvlEdgeAt_succ_elim {m n : } {u v : Fin (n + 1)Bool} (h : LvlEdgeAt m (n + 1) u v) :

        Every level-(n + 1) edge is the fresh cross pair (when the word has length exactly n) or the snoc of a level-n edge by a common last bit.

        theorem G0Fusion.lvlEdgeAt_snoc {m n : } {u v : Fin nBool} (h : LvlEdgeAt m n u v) (i : Bool) :
        LvlEdgeAt m (n + 1) (Fin.snoc u i) (Fin.snoc v i)

        The snoc of a level edge by a common last bit is a level edge.

        The level restrictions of an oriented GSGraph edge pair are level edges.

        Every GSGraph canonicalS edge comes from a canonical word in one of the two orientations.

        Witness words in Baire space #

        def G0Fusion.prepw (c : List ) (w : ) :

        Prepend a finite -word to a point of Baire space.

        Equations
        Instances For
          theorem G0Fusion.prepw_apply_of_lt {c : List } {j : } (h : j < c.length) (w : ) :
          prepw c w j = c.getD j 0
          theorem G0Fusion.prepw_apply_of_le {c : List } {j : } (h : c.length j) (w : ) :
          prepw c w j = w (j - c.length)
          theorem G0Fusion.prepw_nil (w : ) :
          prepw [] w = w
          theorem G0Fusion.prepw_append_head (c : List ) (w : ) :
          (prepw (c ++ [w 0]) fun (j : ) => w (j + 1)) = prepw c w

          Splitting off the head of the tail extends the word.

          theorem G0Fusion.getD_of_prefix {c d : List } (h : c <+: d) {j : } (hj : j < c.length) :
          d.getD j 0 = c.getD j 0

          Witness-constraint sets #

          def G0Fusion.WitSet {α : Type u_1} {ι : Type u_2} (g : ()α × α) (u v : ι) (c : List ) :
          Set (ια)

          The set of assignments whose (u, v)-value pair is g-witnessed through the cylinder of the word c.

          Equations
          Instances For
            theorem G0Fusion.analyticSet_witSet {α : Type u_1} [TopologicalSpace α] [PolishSpace α] {ι : Type u_2} [Countable ι] {g : ()α × α} (hg : Continuous g) (u v : ι) (c : List ) :
            theorem G0Fusion.witSet_cover {α : Type u_1} {ι : Type u_2} {g : ()α × α} {u v : ι} {c : List } {Φ : Set (ια)} (hwit : φΦ, φ WitSet g u v c) :
            Φ⋃ (k : ), WitSet g u v (c ++ [k])

            Witnessed families are covered by the one-step extensions of the witness word.

            Pigeonhole over countable index types #

            theorem G0Fusion.exists_not_smallFam_inter' {α : Type u_1} [MeasurableSpace α] {G : Set (α × α)} {ι : Type u_2} {Φ : Set (ια)} ( : ¬SmallFam G Φ) {κ : Type u_3} [Countable κ] [Nonempty κ] {Ψ : κSet (ια)} (hcov : Φ⋃ (c : κ), Ψ c) :
            ∃ (c : κ), ¬SmallFam G (Φ Ψ c)

            Vertex shrinking #

            theorem G0Fusion.exists_smallOpens {α : Type u_1} [MetricSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] [Nonempty α] (n : ) :
            ∃ (O : Set α), (∀ (k : ), MeasurableSet (O k)) (∀ (x : α), ∃ (k : ), x O k) ∀ (k : ), aO k, bO k, dist a b (1 / 2) ^ n

            A countable cover of a separable metric space by measurable sets of diameter at most (1/2)^n.

            theorem G0Fusion.exists_shrink {α : Type u_1} [MetricSpace α] [SecondCountableTopology α] [CompleteSpace α] [MeasurableSpace α] [BorelSpace α] {G : Set (α × α)} {ι : Type u_2} [Finite ι] [Nonempty α] {Φ : Set (ια)} (hana : MeasureTheory.AnalyticSet Φ) (hpos : ¬SmallFam G Φ) (n : ) :
            Φ'Φ, MeasureTheory.AnalyticSet Φ' ¬SmallFam G Φ' φΦ', φ'Φ', ∀ (u : ι), dist (φ u) (φ' u) (1 / 2) ^ n

            Vertex shrinking: a positive analytic family can be refined to a positive analytic subfamily whose members are uniformly (1/2)^n-close at every vertex.

            Witness extension fold #

            theorem G0Fusion.exists_extend_witnesses {α : Type u_1} [TopologicalSpace α] [PolishSpace α] [MeasurableSpace α] {ι : Type u_2} [Countable ι] [DecidableEq ι] {G : Set (α × α)} {g : ()α × α} (hg : Continuous g) (L : List (ι × ι)) (hnodup : L.Nodup) {Φ : Set (ια)} (hana : MeasureTheory.AnalyticSet Φ) (hpos : ¬SmallFam G Φ) (c₀ : ι × ιList ) (hwit : pL, φΦ, φ WitSet g p.1 p.2 (c₀ p)) :
            ∃ (Φ' : Set (ια)) (c' : ι × ιList ), Φ'Φ MeasureTheory.AnalyticSet Φ' ¬SmallFam G Φ' (∀ pL, c₀ p <+: c' p (c₀ p).length < (c' p).length φΦ', φ WitSet g p.1 p.2 (c' p)) pL, c' p = c₀ p

            Witness extension: given a positive analytic family whose tracked edge pairs are all witnessed at their current words, the family can be refined to a positive analytic subfamily with every tracked witness word properly extended.

            The fusion recursion #

            def G0Fusion.combFun {α : Type u_1} (n : ) (φ₀ φ₁ : (Fin nBool)α) :
            (Fin (n + 1)Bool)α

            The combination map: a pair of level-n assignments gives a level-(n + 1) assignment, sending each vertex to the value of the parent under the assignment selected by the last bit.

            Equations
            Instances For
              theorem G0Fusion.combFun_vals {α : Type u_1} (n : ) (φ₀ φ₁ : (Fin nBool)α) (v : Fin (n + 1)Bool) :
              (∃ (i : Fin nBool), combFun n φ₀ φ₁ v = φ₀ i) ∃ (i : Fin nBool), combFun n φ₀ φ₁ v = φ₁ i
              theorem G0Fusion.combFun_snoc {α : Type u_1} (n : ) (φ₀ φ₁ : (Fin nBool)α) (u : Fin nBool) (i : Bool) :
              combFun n φ₀ φ₁ (Fin.snoc u i) = (if i = true then φ₁ else φ₀) u
              theorem G0Fusion.continuous_combFun {α : Type u_1} [MetricSpace α] (n : ) :
              Continuous fun (p : ((Fin nBool)α) × ((Fin nBool)α)) => combFun n p.1 p.2
              def G0Fusion.precw (n : ) (cw : (Fin nBool) × (Fin nBool)List ) :
              (Fin (n + 1)Bool) × (Fin (n + 1)Bool)List

              The inherited witness words: a level-(n + 1) pair with agreeing last bits inherits the word of its parent pair; the fresh cross pair (differing last bits) starts at the empty word.

              Equations
              Instances For
                theorem G0Fusion.precw_of_last_eq {n : } {cw : (Fin nBool) × (Fin nBool)List } {u v : Fin (n + 1)Bool} (h : u (Fin.last n) = v (Fin.last n)) :
                precw n cw (u, v) = cw (Fin.init u, Fin.init v)
                theorem G0Fusion.precw_of_last_ne {n : } {cw : (Fin nBool) × (Fin nBool)List } {u v : Fin (n + 1)Bool} (h : ¬u (Fin.last n) = v (Fin.last n)) :
                precw n cw (u, v) = []
                theorem G0Fusion.precw_snoc {n : } (cw : (Fin nBool) × (Fin nBool)List ) (u v : Fin nBool) (i : Bool) :
                precw n cw (Fin.snoc u i, Fin.snoc v i) = cw (u, v)
                structure G0Fusion.FusionStage {α : Type u_1} [MetricSpace α] [MeasurableSpace α] (G : Set (α × α)) (g : ()α × α) (n : ) :
                Type u_1

                A stage of the fusion construction: a positive analytic family of level-n assignments whose members are uniformly close at every vertex and uniformly g-witnessed through the tracked word at every level edge.

                Instances For
                  theorem G0Fusion.exists_fusionStage_zero {α : Type u_1} [MetricSpace α] [CompleteSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] {G : Set (α × α)} {g : ()α × α} [Nonempty α] (hpos : ¬SmallFam G Set.univ) :

                  The base stage: the full family, shrunk once for the level-0 closeness control.

                  theorem G0Fusion.exists_fusionStage_succ {α : Type u_1} [MetricSpace α] [CompleteSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] {G : Set (α × α)} {g : ()α × α} [Nonempty α] (hG : MeasureTheory.AnalyticSet G) (hg : Continuous g) (hrange : Set.range g = G) {n : } (S : FusionStage G g n) :
                  ∃ (T : FusionStage G g (n + 1)), (∀ ψT.fam, ∀ (v : Fin (n + 1)Bool), φS.fam, ψ v = φ (Fin.init v)) ∀ (m : ) (u v : Fin nBool) (i : Bool), LvlEdgeAt m n u vS.cw (u, v) <+: T.cw (Fin.snoc u i, Fin.snoc v i)

                  The one-step extension lemma: every fusion stage extends to the next level, with children's values among the parents' values and inherited witness words extending the parents' words. Combination (not_smallFam_comb_cross at fresh cross levels, not_smallFam_comb_pairs otherwise), then the witness-extension fold, then vertex shrinking.

                  noncomputable def G0Fusion.fusionTower {α : Type u_1} [MetricSpace α] [CompleteSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] (G : Set (α × α)) (g : ()α × α) [Nonempty α] (hG : MeasureTheory.AnalyticSet G) (hg : Continuous g) (hrange : Set.range g = G) (hpos : ¬SmallFam G Set.univ) (n : ) :

                  The tower of fusion stages.

                  Equations
                  Instances For
                    theorem G0Fusion.fusionTower_spec {α : Type u_1} [MetricSpace α] [CompleteSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] {G : Set (α × α)} {g : ()α × α} [Nonempty α] (hG : MeasureTheory.AnalyticSet G) (hg : Continuous g) (hrange : Set.range g = G) (hpos : ¬SmallFam G Set.univ) (n : ) :
                    (∀ ψ(fusionTower G g hG hg hrange hpos (n + 1)).fam, ∀ (v : Fin (n + 1)Bool), φ(fusionTower G g hG hg hrange hpos n).fam, ψ v = φ (Fin.init v)) ∀ (m : ) (u v : Fin nBool) (i : Bool), LvlEdgeAt m n u v(fusionTower G g hG hg hrange hpos n).cw (u, v) <+: (fusionTower G g hG hg hrange hpos (n + 1)).cw (Fin.snoc u i, Fin.snoc v i)
                    theorem G0Fusion.exists_gsGraph_hom {α : Type u_1} [MetricSpace α] [CompleteSpace α] [SecondCountableTopology α] [MeasurableSpace α] [BorelSpace α] {G : Set (α × α)} {g : ()α × α} [Nonempty α] (hG : MeasureTheory.AnalyticSet G) (hg : Continuous g) (hrange : Set.range g = G) (hpos : ¬SmallFam G Set.univ) (hsymm : ∀ (a b : α), (a, b) G(b, a) G) :
                    ∃ (φ : (Bool)α), Continuous φ ∀ (y z : Bool), GSGraph canonicalS y z(φ y, φ z) G

                    The fusion limit: a continuous map of Cantor space all of whose GSGraph canonicalS edge pairs land in G.