Documentation

LeanPool.Wallace.LocalFusion

A local character-fusion core #

This file packages the analytic part of the countable fusion separately from the finite stage constructor. A FusionRun records exactly the output of successive applications of bounded deletion and exists_character_fusion_stage: characters, protected finite sets, and retained new sets. From these proved finite-stage certificates we construct the pointwise limit character and derive:

The second half of the file carries out the scheduling induction for the concrete Wallace data.

The bounded-deletion input to one stage #

A scheduled bounded-deletion and finite-fusion stage.

Certified countable runs and their pointwise limits #

Data produced by the local fusion induction. Every field is a checkable mathematical certificate: there is no assertion that an arbitrary run exists. The finite scheduling induction and the uniform Kronecker theorem populate these fields directly.

Instances For
    theorem Wallace.LocalFusion.FusionRun.tail_step_le {G : Type u} [AddCommGroup G] (R : FusionRun G) (g : G) :
    ∃ (L : ), ∀ (n : ), dist ((R.character (L + n)) g) ((R.character (L + n + 1)) g) FusionSchedule.stageError (L + n)

    A pointwise tail of a certified fusion has the geometric step estimate.

    theorem Wallace.LocalFusion.FusionRun.cauchySeq {G : Type u} [AddCommGroup G] (R : FusionRun G) (g : G) :
    CauchySeq fun (l : ) => (R.character l) g

    Every coordinate of a certified fusion is Cauchy.

    The local character obtained as the pointwise limit of a certified run.

    Equations
    Instances For

      The final value of a retained point is bounded by twice the stage error: one stage error when the point is introduced, plus the subsequent geometric tail.

      Initial detection #

      If a distinguished point is protected at every stage and has prescribed initial value, its limit remains close to that value.

      theorem Wallace.LocalFusion.FusionRun.limitCharacter_ne_zero_of_initial_half {G : Type u} [AddCommGroup G] (R : FusionRun G) {x : G} (hhalf : (R.character 0) x = (1 / 2)) (hprotect : ∀ (l : ), x R.guardSet l) :

      Starting at the half-period and protecting x throughout makes the limiting character nonzero.

      Retained blocks imply local ultrafilter admissibility #

      Abstract block data associated with one relevant code in the local closure.

      Instances For

        On every retained index, the norm of the limiting character is controlled by twice the stage error of the unique block containing that index.

        theorem Wallace.LocalFusion.FusionRun.tendsto_limit_difference_zero_of_blockPositions {G : Type u} [AddCommGroup G] (R : FusionRun G) (B : R.CodeBlocks) (N : ) (hN : ∀ (l : ), 0 < N l) (hp : B.p Filter.cofinite) (hblock : ∀ (l : ), B.block l = TriangularPreprocess.blockPositions N hN l) :
        Filter.Tendsto (fun (n : ) => R.limitCharacter (B.difference n)) (↑B.p) (nhds 0)

        Concrete block-position version of tendsto_limit_difference_zero. Here freeness of the ultrafilter and the partition theorem for blockPositions supply the required divergence of block labels automatically.

        theorem Wallace.LocalFusion.FusionRun.tendsto_limit_prepared {G : Type u} [AddCommGroup G] (R : FusionRun G) (B : R.CodeBlocks) (prepared : G) (basis : G) (hdifference : ∀ (n : ), B.difference n = prepared n - basis) (hzero : Filter.Tendsto (fun (n : ) => R.limitCharacter (B.difference n)) (↑B.p) (nhds 0)) :
        Filter.Tendsto (fun (n : ) => R.limitCharacter (prepared n)) (↑B.p) (nhds (R.limitCharacter basis))

        Additivity turns convergence of the differences into the required local admissibility equation.

        structure Wallace.LocalFusion.FusionRun.PreparedCodeBlocks {G : Type u} [AddCommGroup G] (R : FusionRun G) (p : Ultrafilter ) (block : Finset ) (difference : G) :

        A block certificate whose abstract fields are identified with a particular prepared sequence, ultrafilter, and block partition.

        Instances For
          theorem Wallace.LocalFusion.FusionRun.PreparedCodeBlocks.tendsto_prepared {G : Type u} [AddCommGroup G] {R : FusionRun G} {p : Ultrafilter } {block : Finset } {difference prepared : G} {basis : G} (C : R.PreparedCodeBlocks p block difference) (N : ) (hN : ∀ (l : ), 0 < N l) (hp : p Filter.cofinite) (hblock : ∀ (l : ), block l = TriangularPreprocess.blockPositions N hN l) (hdifference : ∀ (n : ), difference n = prepared n - basis) :
          Filter.Tendsto (fun (n : ) => R.limitCharacter (prepared n)) (↑p) (nhds (R.limitCharacter basis))

          A prepared block certificate supplies the corresponding ultrafilter limit.

          A generic concrete scheduling recursion #

          The finite state before stage l: its character and the union of every set retained at earlier stages. The cardinality invariant is the exact invariant used by protectedBound.

          Instances For
            def Wallace.LocalFusion.stageGuard {G : Type} [AddCommGroup G] [DecidableEq G] (enumeration : G) (x : G) (l : ) (S : FusionState G l) :

            The stage guard contains the distinguished point, an initial segment of a surjective enumeration, and every point retained before the stage.

            Equations
            Instances For
              theorem Wallace.LocalFusion.stageGuard_card_le {G : Type} [AddCommGroup G] [DecidableEq G] (enumeration : G) (x : G) (l : ) (S : FusionState G l) :
              structure Wallace.LocalFusion.FusionStep {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (l : ) (S : FusionState G l) :

              All data selected at one fusion stage.

              Instances For
                theorem Wallace.LocalFusion.fusionStep_nonempty {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (l : ) (S : FusionState G l) :
                Nonempty (FusionStep fresh enumeration x l S)

                The finite deletion/fusion theorem supplies the next state at every stage.

                noncomputable def Wallace.LocalFusion.chosenFusionStep {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (l : ) (S : FusionState G l) :
                FusionStep fresh enumeration x l S

                A stage choice, fixed once and reused by both the state recursion and its certificate.

                Equations
                Instances For
                  noncomputable def Wallace.LocalFusion.nextFusionState {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (l : ) (S : FusionState G l) :
                  FusionState G (l + 1)

                  Update the state using the single chosen stage certificate.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def Wallace.LocalFusion.fusionStates {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (initial : G →+ UnitAddCircle) (l : ) :

                    The dependent natural-number recursion starting from initial.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem Wallace.LocalFusion.fusionStates_zero {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (initial : G →+ UnitAddCircle) :
                      (fusionStates fresh enumeration x hfresh_card hfresh_independent initial 0).character = initial
                      theorem Wallace.LocalFusion.fusionStates_pastRetained_subset_succ {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (initial : G →+ UnitAddCircle) (l : ) :
                      (Wallace.LocalFusion.states✝ fresh enumeration x hfresh_card hfresh_independent initial l).pastRetained(Wallace.LocalFusion.states✝ fresh enumeration x hfresh_card hfresh_independent initial (l + 1)).pastRetained
                      theorem Wallace.LocalFusion.fusionStates_pastRetained_mono {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (initial : G →+ UnitAddCircle) :
                      Monotone fun (l : ) => (Wallace.LocalFusion.states✝ fresh enumeration x hfresh_card hfresh_independent initial l).pastRetained
                      noncomputable def Wallace.LocalFusion.scheduledRun {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (initial : G →+ UnitAddCircle) (henumeration : Function.Surjective enumeration) :

                      The fully scheduled run associated with a chosen initial character.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Public certificate exported by the scheduling recursion.

                        Instances For
                          theorem Wallace.LocalFusion.exists_scheduledRunCertificate_of_initial_half {G : Type} [AddCommGroup G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (initial : G →+ UnitAddCircle) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (hinitial : initial x = (1 / 2)) (henumeration : Function.Surjective enumeration) :

                          Starting with the exact half-turn character and applying the dependent recursion produces a complete certified run; no run is assumed as input.

                          theorem Wallace.LocalFusion.exists_scheduledRunCertificate {G : Type} [AddCommGroup G] [IsAddTorsionFree G] [DecidableEq G] (fresh : Finset G) (enumeration : G) (x : G) (hx : x 0) (hfresh_card : ∀ (l : ), (fresh l).card FusionSchedule.blockSize l) (hfresh_independent : ∀ (l : ), FiniteCombinatorics.BoundedIndependent (FusionSchedule.stageIndependenceBound l) (fresh l)) (henumeration : Function.Surjective enumeration) :

                          Fully existential form of the generic scheduling recursion.

                          Interface from concrete runs to the global assembly #

                          @[reducible, inline]

                          Integer specialization of the shared prepared-block certificate.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            A concrete retained-block certificate gives precisely the local admissibility equation for its relevant code.

                            structure Wallace.LocalFusion.LocalRunCertificate (N : ) (hN : ∀ (l : ), 0 < N l) (M : ) (x : { x : TriangularPreprocess.ContinuumFreeGroup // x 0 }) :

                            Complete local output for one distinguished nonzero vector. This is a deliberately small interface: a concrete scheduling recursion supplies the run and one block certificate for each relevant code; all limiting arguments are discharged above.

                            Instances For

                              The concrete run certificate satisfies the exact local interface consumed by the transfinite-extension and global-assembly modules.

                              It is enough to construct a certified concrete fusion run for every nonzero vector.