§8 R-stage obstruction module — Option-A construction #
Builds the obstruction datum obs/hmB/hobs/hfib consumed by
GQ2.SectionEight.stageR136_ofObstruction (GQ2/RStageObstruction.lean), from the Option-A
compatibility structure RCoverData: the datum, absent from the bare
RecursionFrame + Enrichment, that each scalar cover p_λ = (scalarCover l).p really is a
quotient of the single radical extension Y ↠ B = Y/R — a hom family
coverMap_λ : Y →* (scalarCover l).cover with p_λ ∘ coverMap_λ = π_B.
The compatibility datum remains a separate structure rather than a field of Enrichment, keeping
the generic recursion frame independent of this particular cover realization. This file proves
the obstruction bridge, fibre count, separation-based lift construction, and the resulting
stageR136_ofRSepData interface consumed by the recursion splice.
A finite 𝔽₂-module of cardinality 2 is ZMod 2 (linearly). Used to turn the
scalar obstruction class homOb ∈ H²(Γ,𝔽₂) into an 𝔽₂ value once the source numeric
#H²(Γ,𝔽₂) = 2 is available (prop_5_16/prop_5_15), so obs lands in D_Rᵛ.
Equations
- GQ2.SectionEight.cardTwoLinEquiv hM = (Module.finBasisOfFinrankEq (ZMod 2) M ⋯).equivFun.trans (LinearEquiv.funUnique (Fin 1) (ZMod 2) (ZMod 2))
Instances For
The trivial (M = ⊥) radical-cover datum wrapping a bare central cover. All the
GQ2.SectionEight.CentralObstruction engine (the kernel-sign calculus, the obstruction class,
central_iff_ob_eq_zero) is stated over a RadicalCoverData, but its lifting content uses only
the cover C; this reduces "a hom lifts through the central cover C" to the engine's
MLifts.Central/ob at M = ⊥ (the square form is vacuous).
Equations
- GQ2.SectionEight.trivialRCD C = { C := C, M := ⊥, hM := ⋯, T := ⊥, hT := ⋯, hTM := ⋯, helem := ⋯, hcomm := ⋯, q := fun (x : ↥⊥) => 0, hq := ⋯, hrad := ⋯, hTzero := ⋯ }
Instances For
Step 1 — the mB ⟺ ob bridge (via trivialRCD + central_iff_ob_eq_zero) #
ρ = mk : Bg → Bg/⊥, precomposed with g; the lower map making g an M-lift of
trivialRCD C (M = ⊥).
Equations
- GQ2.SectionEight.trivialRho g = { toMonoidHom := (QuotientGroup.mk' ⊥).comp g.toMonoidHom, continuous_toFun := ⋯ }
Instances For
g itself as the M-lift of trivialRCD C over trivialRho g.
Equations
- GQ2.SectionEight.trivialMLift C g = ⟨g, ⋯⟩
Instances For
The scalar obstruction of a hom g through a bare central cover C — the
CentralObstruction.ob of g viewed as an M = ⊥ lift.
Equations
- GQ2.SectionEight.homOb C g htriv = GQ2.SectionEight.CentralObstruction.ob (GQ2.SectionEight.trivialRCD C) (GQ2.SectionEight.trivialRho g) htriv (GQ2.SectionEight.trivialMLift C g)
Instances For
Step 1: g lifts through the central cover C iff its scalar obstruction vanishes.
Option-A compatibility datum (the Prop. 8.9 assembly): the missing link between the frame's abstract scalar
covers and the single radical extension Y ↠ B. For each nonzero scalar character λ, a
homomorphism coverMap λ : Y →* (scalarCover λ).cover realizing scalarCover λ as a quotient of
Y over B: p_λ ∘ coverMap λ = π_B. (This is the frame-level content of "p_λ is the pushout
Y/ker λ ↠ Y/R", which the RecursionFrame/Enrichment document but do not carry.)
coverMap λ : Y →* B_λ, the realization of the scalar cover as a quotient ofY.
Instances For
coverMap λ bundled as a ContinuousMonoidHom (free: Y is discrete).
Instances For
Easy hobs direction: if a B-stage boundary lift f lifts all the way to Y (is
RF.liftB of some Y-lift F), then it lifts through every scalar cover p_λ — compose the
Y-lift with coverMap λ. (The converse — "lifts through every p_λ ⟹ lifts to Y" — is the
hard separation, using R-elementary-abelianness and the Frattini structure.)
The R-stage obstruction datum (Option A, extended): the compat covers RCoverData
together with the 𝔽₂-module realization of the scalar-character index D_R and the
D_R ≃ (R^∨)^C pairing pair (a linear map D_Rmod → (R →+ 𝔽₂)), pinned to the covers by
pair_coverMap (pair d = zsign ∘ coverMap_{λ} on R, for λ = toDR d ≠ 0). This is exactly
what the concrete 𝒴-frame (the Prop. 8.9 assembly/d6) supplies; from it the obstruction map, its linearity, and
hmB follow.
- coverMap_lifts (l : RF.DR) (h : l ≠ RF.zeroDR) : (RF.scalarCover l h).p.comp (self.coverMap l h) = RF.piB
- DRmod : Type
The
𝔽₂-module realization of the scalar-character indexD_R. - addCommGroup : AddCommGroup self.DRmod
- moduleZMod : Module (ZMod 2) self.DRmod
- finiteDRmod : Finite self.DRmod
D_Rmod ≃ D_R.… sending
0 ↦ zeroDR.The
D_R ≃ (R^∨)^Cpairing:pair dis a𝔽₂-functional on the radicalR = Blk.frattiniK, linear ind.- pair_coverMap (d : self.DRmod) (h : self.toDR d ≠ RF.zeroDR) (r : ↥Blk.frattiniK) : (self.pair d) (Additive.ofMul r) = CentralObstruction.zsign (trivialRCD (RF.scalarCover (self.toDR d) h)) ((self.coverMap (self.toDR d) h) ↑r)
The pairing is
zsign ∘ coverMap_λonR(λ = toDR d ≠ 0): the scalar characterdreads off theλ-cover's kernel sign of a radical element.
Instances For
A set-theoretic section of π_B : Y ↠ B.
Equations
- GQ2.SectionEight.slift RF x = Function.surjInv ⋯ x
Instances For
The R-valued section defect of a B-stage map g : Γ → B for the single set-lift
slift: Obs^s_g(γ,δ) = s(gγ)·s(gδ)·s(g(γδ))⁻¹ ∈ R = ker π_B.
Equations
- GQ2.SectionEight.rDefect RF g γ δ = ⟨GQ2.SectionEight.slift RF (g γ) * GQ2.SectionEight.slift RF (g δ) * (GQ2.SectionEight.slift RF (g (γ * δ)))⁻¹, ⋯⟩
Instances For
H²(Γ,𝔽₂) is a ZMod 2-module (it has exponent 2, being a quotient of 𝔽₂-cochains).
Equations
- GQ2.SectionEight.instModuleH2 = AddCommGroup.zmodModule ⋯
The lift family of g into the λ-cover built from the single set-section: x ↦ coverMap_λ (slift (g x)).
Equations
- GQ2.SectionEight.obsLiftFam RF D g d h x = (D.coverMap (D.toDR d) h) (GQ2.SectionEight.slift RF (g x))
Instances For
The pointwise obstruction identity: the obstruction cochain of the lift family equals
pair d applied to the R-valued defect.
The connection (step 2 core): the scalar obstruction homOb of g through the λ-cover
is the class of pair d ∘ rDefect — so it is H2mk of a cochain linear in d.
The obstruction cochain lies in Z² for every d (the toDR d = 0 case is the zero
cochain, since pair 0 = 0).
The obstruction map (additive) obsMapAdd g : D_Rmod →+ H²(Γ,𝔽₂),
d ↦ [pair d ∘ rDefect] — additive in d (pair is linear), and equal to
homOb(scalarCover λ) g at λ = toDR d ≠ 0 (homOb_eq_H2mk_pair).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The obstruction functional obs g : D_Rmod →ₗ 𝔽₂ = D_Rᵛ: compose the additive
obsMapAdd with the linear iso H²(Γ,𝔽₂) ≃ 𝔽₂ (from the source numeric #H² = 2). Linearity
in the scalar c ∈ 𝔽₂ is the two-value case split.
Equations
- One or more equations did not get rendered due to their size.
Instances For
obsMapAdd g d is the scalar obstruction of g through the λ-cover (λ = toDR d ≠ 0).
**obs g d = 0 ⟺ g lifts through the λ-cover** (λ = toDR d ≠ 0): the hmB` pointwise
identity.
obs at the 𝔽₂-cochain level (for the d6 separation discharge): obs g d = 0 iff the
𝔽₂-valued defect cochain pair d ∘ rDefect is a coboundary (H2mk = 0 in H²(Γ,𝔽₂)). This is
the cochain-level face of obs_zero_iff_lifts; it pairs with homLift_of_split — from obs g = 0,
d6 gets every pair d ∘ rDefect a coboundary, assembles the concrete R-splitting cochain (the
(R^∨)^C-separation of H²(Γ,R)), and produces the hom lift.
hmB (step 2 payoff): m_{Γ,λ}(B) counts the B-lifts whose obstruction vanishes at the
scalar character λ. Matches stageR136_ofObstruction's hmB hypothesis.
Step 5 — assemble: (136) modulo the two hard classical cores #
(136) from an RObstructionData, modulo the two hard classical cores. The obstruction map
obs, its 𝔽₂-linearity, the counting identity hmB, and the easy direction of hobs (a lift
to Y kills the obstruction) are all discharged here; the (136) display of Prop 8.9 then follows
from stageR136_ofObstruction once the two remaining classical facts are supplied as hypotheses:
hsep— the hard separation (the ⟹ ofhobs): aB-stage boundary lift whose obstruction functional vanishes lifts all the way toY. Classically this usesR-elementary-abelianness (lemma_7_2), the Frattini surjectivityeq_top_of_map_frattini_quotient_top, and the pushout link between the scalar covers and the single radical extensionY ↠ B.hfib— thez_Rtorsor count: every liftable fibre ofRF.liftBhas sizez_R, the twisted-Z¹(Γ,R)-torsor count#Z¹(Γ,R) = z_R(the 5.15/5.16 numeric; B6/B7 enter here).
So the whole (136) numeric is reduced to exactly hsep + hfib, with the entire obstruction-theory
machinery in between discharged.
Step 4 — hfib: the R-stage liftB-fibre is a Z¹(Γ, R)-torsor #
The fibre of RF.liftB over a B-stage lift g is {f : Γ ↠ Y // π_B ∘ f = g} (framing is
automatic, TB_head/TB_theta). Two such lifts f, f₀ differ by c γ := f γ · (f₀ γ)⁻¹ ∈ R
(ker π_B = R), a crossed 1-cocycle for the f₀-conjugation action of Γ on R; conversely
each cocycle twists f₀ to another fibre element (a homomorphism by the cocycle law, surjective by
the Frattini argument eq_top_of_map_frattini_quotient_top, framed because R ≤ ker(π_Y, θ_Y)).
So the fibre is a Z¹(Γ, R)-torsor; #Z¹(Γ, R) = z_R is the source numeric (5.15/5.16, d6).
R = Φ(K) ≤ K ≤ P ≤ L_Y = ker π_Y: R-twists preserve the head framing.
R = Φ(K) ≤ ker θ_Y when E is elementary-2 (lemma_7_3): R-twists preserve the scalar
framing. This is exactly the thm_4_2 decoration hypothesis (harmless downstream: §10 uses
E = 0), and the one point flagged in docs/orchestration/p16d2-plan.md for the fibre count.
The R-stage torsor group Z¹_{Γ,ρ}(R): continuous crossed 1-cocycles Γ → R = ker π_B
for the f₀-conjugation action of Γ on R, f₀ a fixed reference Y-lift. (Multiplicative
crossed-hom convention, as GQ2.SectionEight.TCocycle; the fibre of liftB over a liftable g
is a torsor under this group with basepoint f₀.)
- u : Γ → Y
The cocycle map.
Values lie in the radical
R = ker π_B.- cont : Continuous self.u
Continuity.
Instances For
Extensionality: only the underlying map matters.
Cocycles are normalized: u 1 = 1 (from crossed at (1,1), f₀ 1 = 1).
The reference lift f₀ twisted by a cocycle c: (c ⋆ f₀) γ = c.u γ · f₀ γ, a continuous
homomorphism Γ → Y (homomorphism by crossed, continuous since Y is discrete).
Equations
Instances For
π_B kills the radical: r ∈ R = ker π_B ⟹ π_B r = 1.
Frattini surjectivity (eq_top_of_map_frattini_quotient_top, R = Φ(K), K a 2-group):
a continuous hom φ : Γ → Y whose π_B-composite is onto B is itself onto Y.
The R-stage fibre torsor (hfib core): fixing a lift f₀ of g, the fibre of RF.liftB
over g is a torsor under RCocycle RF f₀.1.1 — every Y-lift of g is a unique cocycle-twist
of f₀. The forward map lands in BoundaryLifts by Frattini surjectivity (surj_of_piB_surj)
and R ≤ ker(π_Y, θ_Y) framing (needs hE2); the backward map reads off the R-valued
difference f · f₀⁻¹.
Equations
- One or more equations did not get rendered due to their size.
Instances For
hfib (step 4 payoff): the liftB-fibre over a liftable g has size z_R, reduced to the
source Z¹-count #RCocycle = z_R (the 5.15/5.16 numeric + card_DR, supplied by d6). The
abstract torsor identification is fibreCocycleEquiv.
hsep wrapper: a bare homomorphism lift upgrades to a fibre element #
Frattini/framing wrapper for hsep: a bare homomorphism lift φ : Γ → Y of g
(π_B ∘ φ = g) already lands in the liftB-fibre — it is surjective by surj_of_piB_surj
(Frattini) and boundary-framed because the framing factors through π_B (TB_head/TB_theta).
So hsep reduces to producing any homomorphism lift of g to Y; that existence is the
separation core (obs g = 0 ⟹ the radical obstruction dies ⟹ glifts toY`).
Constructive coboundary → hom lift (hsep interior): a continuous R-valued cochain c
splitting the section defect rDefect (the twisted-coboundary equation) assembles the set-section
slift ∘ g into a genuine continuous homomorphism φ γ = c γ · slift(g γ) lifting g. This is
the abstractly-provable half of the separation: it turns "[rDefect] = 0 ∈ H²(Γ,R)" (a splitting
cochain) into the hom lift that liftB_fibre_nonempty_of_homLift then upgrades to a fibre element.
(slift is continuous because B = Y/R is discrete, so φ is genuinely continuous.)
(136), fully discharged modulo the two irreducible concrete inputs (hsep_hom + hZcount).
Every abstractly-provable ingredient is proven here — the obstruction map, hmB, the easy hobs,
the hfib fibre-torsor, and hsep's Frattini/framing wrapper — so a caller (the concrete
𝒴-frame, the Prop. 8.9 assembly) supplies only:
hsep_hom— the radical-obstruction separation:obs g = 0 ⟹ ghas a homomorphism lift toY. (Not provable in the bare abstract frame — it is the(R^∨)^C-detection ofH²(Γ,R), a property of the concreteR+C-action. d6 discharges it, optionally viahomLift_of_split.)hZcount— the sourceZ¹-count#RCocycle = z_R(5.15/5.16 numeric +card_DR).
and hE2 (E elementary-2, the thm_4_2 decoration hypothesis). This is the finish line of the
abstract R-stage obstruction module: (136) reduced to exactly the source-arithmetic residues.
Paper-tag ledger (auto-generated by paperforge; do not edit) #
- Prop 8.9 = ⟦thm-closedrecursion⟧ (= theorem 8.17 in current tex)