Documentation

Q2Presentation.Induction.ZeroEdgeIndicator

Char-2 scalar helpers (private, decide-grounded) #

CocycleCover.lean's zmod2_add_self is private there; the file-local mirrors below keep every char-2 rearrangement a closed 𝔽₂ computation.

The solvability indicator (βˆƒ continuous c, Ξ΄c = F) #

def Q2Presentation.Induction.CochainSolvable (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :

Cochain solvability (design Β§4-N2): the 2-cochain equation of F on the profinite source Ξ“ has a continuous (= locally constant, Ξ“ profinite and 𝔽₂ discrete) solution β€” βˆƒ c : Ξ“ β†’ 𝔽₂ continuous with c (Ξ³Ξ³') = c Ξ³ + c Ξ³' + F Ξ³ Ξ³'. This is the SOLVABILITY INDICATOR of the normalized-cochain house style: no cohomology carrier is ever formed, and F need not be a cocycle for the Prop to be well-formed (the calculus below restricts to cocycles exactly where the mathematics does).

Equations
Instances For
    theorem Q2Presentation.Induction.cochainEq_apply_one {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} {c : ↑Γ.toProfinite.toTop β†’ ZMod 2} (heq : βˆ€ (Ξ³ Ξ³' : ↑Γ.toProfinite.toTop), c (Ξ³ * Ξ³') = c Ξ³ + c Ξ³' + F Ξ³ Ξ³') (hF : F 1 1 = 0) :
    c 1 = 0

    Any solution of an equation with normalized diagonal value is itself normalized: c 1 = 0 (evaluate at (1,1), char 2).

    The zero equation is solvable (witness c = 0).

    theorem Q2Presentation.Induction.cochainSolvable_add {Ξ“ : ProfiniteGrp.{0}} {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : CochainSolvable Ξ“ F₁) (hβ‚‚ : CochainSolvable Ξ“ Fβ‚‚) :
    CochainSolvable Ξ“ (F₁ + Fβ‚‚)

    The free half of additivity: solvable + solvable ⟹ solvable, by the sum of the witnesses (no cocycle law, no token needed).

    theorem Q2Presentation.Induction.cochainSolvable_add_cancel_left {Ξ“ : ProfiniteGrp.{0}} {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : CochainSolvable Ξ“ F₁) (h : CochainSolvable Ξ“ (F₁ + Fβ‚‚)) :
    CochainSolvable Ξ“ Fβ‚‚

    Char-2 cancellation: a solvable summand can be cancelled from a solvable sum (Fβ‚‚ = F₁ + (F₁ + Fβ‚‚) over 𝔽₂).

    theorem Q2Presentation.Induction.not_cochainSolvable_add_left {Ξ“ : ProfiniteGrp.{0}} {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : CochainSolvable Ξ“ F₁) (hβ‚‚ : Β¬CochainSolvable Ξ“ Fβ‚‚) :
    Β¬CochainSolvable Ξ“ (F₁ + Fβ‚‚)

    Solvable + unsolvable ⟹ unsolvable (left form).

    theorem Q2Presentation.Induction.not_cochainSolvable_add_right {Ξ“ : ProfiniteGrp.{0}} {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : Β¬CochainSolvable Ξ“ F₁) (hβ‚‚ : CochainSolvable Ξ“ Fβ‚‚) :
    Β¬CochainSolvable Ξ“ (F₁ + Fβ‚‚)

    Unsolvable + solvable ⟹ unsolvable (right form).

    Explicit coboundary shifts #

    def Q2Presentation.Induction.cochainCoboundary (Ξ“ : ProfiniteGrp.{0}) (u : ↑Γ.toProfinite.toTop β†’ ZMod 2) :
    ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2

    The explicit coboundary Ξ΄u of a 1-cochain u (char-2 inhomogeneous differential, trivial action): Ξ΄u (Ξ³, Ξ³') = u Ξ³ + u Ξ³' + u (Ξ³Ξ³'). N7's completed-square defects and eq:Qkappadifference corrections enter the calculus through this def.

    Equations
    Instances For
      @[simp]
      theorem Q2Presentation.Induction.cochainCoboundary_apply {Ξ“ : ProfiniteGrp.{0}} (u : ↑Γ.toProfinite.toTop β†’ ZMod 2) (Ξ³ Ξ³' : ↑Γ.toProfinite.toTop) :
      cochainCoboundary Ξ“ u Ξ³ Ξ³' = u Ξ³ + u Ξ³' + u (Ξ³ * Ξ³')

      A continuous coboundary is solvable β€” the witness is u itself (char 2: u (Ξ³Ξ³') = u Ξ³ + u Ξ³' + Ξ΄u (Ξ³, Ξ³') rearranges to a tautology).

      theorem Q2Presentation.Induction.cochainSolvable_add_coboundary_iff {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} {u : ↑Γ.toProfinite.toTop β†’ ZMod 2} (hu : IsLocallyConstant u) :

      Coboundary-shift invariance of solvability (design Β§4-N2 free half): shifting an equation by an explicit continuous coboundary does not change its solvability.

      Normalized continuous 2-cocycles #

      The exact hypothesis package of the W7a cover carrier: CocycleExt's (hz1, hz2, hzc) plus local constancy of the two-variable cochain. The additivity token quantifies over THIS class only (over-strength guard).

      structure Q2Presentation.Induction.IsNormalized2Cocycle (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :

      Normalized continuous 𝔽₂-valued 2-cocycle on a profinite source: locally constant in the pair, normalized on both 1-slots, and satisfying the (trivial-action, char-2) 2-cocycle law β€” the (hz1, hz2, hzc) package of CocycleExt with the continuity that finite cover targets make automatic there but which is LOAD-BEARING at a profinite source.

      Instances For

        The zero cochain is a normalized continuous 2-cocycle.

        theorem Q2Presentation.Induction.IsNormalized2Cocycle.add {Ξ“ : ProfiniteGrp.{0}} {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : IsNormalized2Cocycle Ξ“ F₁) (hβ‚‚ : IsNormalized2Cocycle Ξ“ Fβ‚‚) :
        IsNormalized2Cocycle Ξ“ (F₁ + Fβ‚‚)

        Normalized continuous 2-cocycles are closed under sums (the carrier of the token's additivity statement).

        The explicit coboundary of a NORMALIZED continuous 1-cochain is a normalized continuous 2-cocycle (so coboundary shifts stay inside the token's carrier class).

        The per-source additivity token and the ΞΉ-readings #

        The per-source ΞΉ-additivity token (design Β§4-N2; the hΒ² ≀ 1 token): at the source Ξ“, any two UNSOLVABLE normalized continuous 2-cocycle equations have solvable sum. This is the cochain-level spelling of dim HΒ²(Ξ“, 𝔽₂) ≀ 1 β€” stated with no cohomology carriers. Consumed as a hypothesis by the N7 engine instantiation; discharged per source by N3 (IotaToken GQ2Profinite, floor F-ΞΉ-loc: NSW (7.2.6) at the trivial module + (7.3.1)) and N4 (GammaA-bases, floor F-ΞΉ-cand: prop:chainmap l.1687 + lem:finitewordstokes). Together with the free half (cochainSolvable_add, not_cochainSolvable_add_left/right) it makes the case table of iotaRead on cocycle sums total.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Q2Presentation.Induction.iotaRead (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :

          The β„€/2-valued ΞΉ-reading of a 2-cochain equation: 0 if solvable, 1 if not β€” the per-source functional ΞΉ_Ξ“ of the R4b design (S5's valuation), read as a bit. Everything downstream consumes this reading (or its Β±1 sibling iotaSign), never raw case splits.

          Equations
          Instances For
            def Q2Presentation.Induction.iotaSign (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :

            The Β±1-indicator of solvability in β„€: +1 if solvable, βˆ’1 if not β€” the summand shape of eq:recursionR5a's s_Ξ“(ΞΆ) = Ξ£_ρ (Β±1) absorption (sGammaZ_eq downstream).

            Equations
            Instances For
              theorem Q2Presentation.Induction.iotaRead_def (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :
              iotaRead Ξ“ F = if CochainSolvable Ξ“ F then 0 else 1

              Definitional form of iotaRead (the sGammaZ_def fix-class: cite this lemma, never re-haveI a decidability instance).

              theorem Q2Presentation.Induction.iotaSign_def (Ξ“ : ProfiniteGrp.{0}) (F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2) :
              iotaSign Ξ“ F = if CochainSolvable Ξ“ F then 1 else -1

              Definitional form of iotaSign.

              theorem Q2Presentation.Induction.iotaRead_of_solvable {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h : CochainSolvable Ξ“ F) :
              iotaRead Ξ“ F = 0
              theorem Q2Presentation.Induction.iotaRead_of_not_solvable {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h : Β¬CochainSolvable Ξ“ F) :
              iotaRead Ξ“ F = 1
              theorem Q2Presentation.Induction.iotaSign_of_solvable {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h : CochainSolvable Ξ“ F) :
              iotaSign Ξ“ F = 1
              theorem Q2Presentation.Induction.iotaSign_of_not_solvable {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h : Β¬CochainSolvable Ξ“ F) :
              iotaSign Ξ“ F = -1
              theorem Q2Presentation.Induction.iotaRead_eq_zero_iff {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} :

              The bit reads 0 exactly on solvable equations.

              theorem Q2Presentation.Induction.iotaRead_eq_one_iff {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} :

              The bit reads 1 exactly on unsolvable equations.

              theorem Q2Presentation.Induction.iotaSign_eq_one_iff {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} :

              The indicator reads +1 exactly on solvable equations.

              The indicator reads βˆ’1 exactly on unsolvable equations.

              theorem Q2Presentation.Induction.iotaSign_eq_one_sub_two_mul {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} :
              iotaSign Ξ“ F = 1 - 2 * ↑(iotaRead Ξ“ F).val

              The Β±1-indicator through the bit: iotaSign = 1 βˆ’ 2Β·iotaRead in β„€ (the 2n βˆ’ e absorption bridge for N9).

              A continuous coboundary reads 0.

              theorem Q2Presentation.Induction.iotaRead_add_coboundary {Ξ“ : ProfiniteGrp.{0}} {F : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} {u : ↑Γ.toProfinite.toTop β†’ ZMod 2} (hu : IsLocallyConstant u) :
              iotaRead Ξ“ (F + cochainCoboundary Ξ“ u) = iotaRead Ξ“ F

              iotaRead is invariant under explicit continuous coboundary shifts.

              theorem Q2Presentation.Induction.iotaRead_add {Ξ“ : ProfiniteGrp.{0}} (hT : IotaToken Ξ“) {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : IsNormalized2Cocycle Ξ“ F₁) (hβ‚‚ : IsNormalized2Cocycle Ξ“ Fβ‚‚) :
              iotaRead Ξ“ (F₁ + Fβ‚‚) = iotaRead Ξ“ F₁ + iotaRead Ξ“ Fβ‚‚

              Additivity of the ΞΉ-reading on cocycle sums, given the token (design Β§4-N2: "the β„€/2-valued iotaRead is well-defined and additive"). Three quadrants are the free half; the (Β¬,Β¬)-quadrant is exactly IotaToken.

              theorem Q2Presentation.Induction.iotaSign_add {Ξ“ : ProfiniteGrp.{0}} (hT : IotaToken Ξ“) {F₁ Fβ‚‚ : ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2} (h₁ : IsNormalized2Cocycle Ξ“ F₁) (hβ‚‚ : IsNormalized2Cocycle Ξ“ Fβ‚‚) :
              iotaSign Ξ“ (F₁ + Fβ‚‚) = iotaSign Ξ“ F₁ * iotaSign Ξ“ Fβ‚‚

              Multiplicativity of the Β±1-indicator on cocycle sums, given the token (design Β§4-N2: "the Β±1-indicator is multiplicative on cocycle sums").

              The ΞΆ-cover reading lemma #

              Generic in the W7a datum (Yt, ΞΆ) and the source package, exactly the variable discipline of Lifting/CocycleCover.lean; phaseCount (PhaseCoverTransform.lean:81) instantiates Yt := (cChild chief K).1, F := (cChild chief K).2, so the reading below aligns with its Nonempty-predicate EXACTLY (N9 hook).

              def Q2Presentation.Induction.pullCochain (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) :
              ↑Γ.toProfinite.toTop β†’ ↑Γ.toProfinite.toTop β†’ ZMod 2

              The pulled-back 2-cochain g*ΞΆ of a boundary-framed surjection g : Ξ“ β†  Y β€” the source-side equation whose solvability the ΞΆ-cover lift indicator reads (lem:phasecover l.4377–4379).

              Equations
              Instances For
                @[simp]
                theorem Q2Presentation.Induction.pullCochain_apply (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) (Ξ³ Ξ³' : ↑Γ.toProfinite.toTop) :
                pullCochain Yt zeta B F g Ξ³ Ξ³' = zeta ((ProfiniteGrp.Hom.hom (↑g).hom) Ξ³) ((ProfiniteGrp.Hom.hom (↑g).hom) Ξ³')
                theorem Q2Presentation.Induction.pullCochain_isNormalized2Cocycle (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) (hz1 : βˆ€ (y : Yt.Y), zeta 1 y = 0) (hz2 : βˆ€ (y : Yt.Y), zeta y 1 = 0) (hzc : βˆ€ (a b c : Yt.Y), zeta a b + zeta (a * b) c = zeta b c + zeta a (b * c)) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) :
                IsNormalized2Cocycle Ξ“ (pullCochain Yt zeta B F g)

                The pullback of a normalized 2-cocycle along a boundary-framed surjection is a normalized continuous 2-cocycle β€” so g*ΞΆ lies in the carrier class of IotaToken (continuity from g's, since Y is finite discrete).

                theorem Q2Presentation.Induction.cocycleCoverLiftHom_iff_cochainSolvable (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) (hz1 : βˆ€ (y : Yt.Y), zeta 1 y = 0) (hz2 : βˆ€ (y : Yt.Y), zeta y 1 = 0) (hzc : βˆ€ (a b c : Yt.Y), zeta a b + zeta (a * b) c = zeta b c + zeta a (b * c)) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) :
                Nonempty (Lifting.cocycleCoverLiftHom Yt zeta hz1 hz2 hzc B F g) ↔ CochainSolvable Ξ“ (pullCochain Yt zeta B F g)

                The ΞΆ-cover READING lemma (design Β§4-N2): the weak framed-lift set through the normalized-cocycle central double cover is nonempty iff the pulled-back 2-cochain equation is continuously solvable β€” the scalar-component split of the GREEN raw-hom unfolding cocycleCoverLiftHom_iff_exists (W7a), (y, s)-law (y,s)Β·(y',s') = (yy', s + s' + ΞΆ(y,y')). The cover frame clause is transparent because the cover framing is the pulled-back one.

                theorem Q2Presentation.Induction.iotaRead_pullCochain_eq_zero_iff (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) (hz1 : βˆ€ (y : Yt.Y), zeta 1 y = 0) (hz2 : βˆ€ (y : Yt.Y), zeta y 1 = 0) (hzc : βˆ€ (a b c : Yt.Y), zeta a b + zeta (a * b) c = zeta b c + zeta a (b * c)) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) :
                iotaRead Ξ“ (pullCochain Yt zeta B F g) = 0 ↔ Nonempty (Lifting.cocycleCoverLiftHom Yt zeta hz1 hz2 hzc B F g)

                The bit-alignment of the reading with phaseCount's predicate: the ΞΉ-reading of g*ΞΆ is 0 iff g admits a weak framed ΞΆ-cover lift (N9 consumes this per Ο‡ at ΞΆ := Delta Z Ο‡).

                theorem Q2Presentation.Induction.iotaSign_pullCochain_eq_one_iff (Yt : BoundaryFramedTarget) (zeta : Yt.Y β†’ Yt.Y β†’ ZMod 2) (hz1 : βˆ€ (y : Yt.Y), zeta 1 y = 0) (hz2 : βˆ€ (y : Yt.Y), zeta y 1 = 0) (hzc : βˆ€ (a b c : Yt.Y), zeta a b + zeta (a * b) c = zeta b c + zeta a (b * c)) {Ξ“ : ProfiniteGrp.{0}} (B : BoundaryPackage Ξ“) (F : BoundaryFrame Yt) (g : boundaryFramedSurj B Yt F) :
                iotaSign Ξ“ (pullCochain Yt zeta B F g) = 1 ↔ Nonempty (Lifting.cocycleCoverLiftHom Yt zeta hz1 hz2 hzc B F g)

                The Β±1-alignment of the reading with phaseCount's predicate.