The rank successor decomposition (R4 converse piece 3, #107) #
Unit 1 of the rank transition n → n+1: the structural splitting of the lower-rank factor space
into everything below rank n and the layer at rank exactly n. Law-free throughout — this file
defines index types, equivalences and projections, and mentions no measure.
The layer is a Bool-cube, not a dependent product #
The layer at rank n is naturally indexed by supports of cardinality n, one ExactSpace A per
support, so the obvious definition is the dependent product Π A : RankSupport S n, ExactSpace A.
That definition would be a mistake. It forces every downstream conditional law to be a kernel into
a dependent product, and Mathlib has no countable dependent product of kernels — there is no
Kernel.pi; the only Π-valued kernels are the Ionescu–Tulcea trajectory kernels, which are
ℕ-indexed chains whose source is the history rather than a fixed common parameter.
Since ExactSpace A = ExactIndex A → Bool, the dependent product is already a Bool-cube:
Π A : RankSupport S n, ExactSpace A ≃ ((Σ A, ExactIndex A) → Bool)
and the sigma index is just {i // (anchor i).card = n}. So the layer is defined directly as that
Bool-cube (RankLayerIndex / RankLayerSpace), with sigmaExactIndexEquiv recording the bridge
and rankLayerMap_sigmaExactIndexEquiv identifying each block with exactMap A. Countability and
standard Borelness are then the same instances that already serve LowerFactorSpace, and no
product kernel is needed anywhere downstream: a conditional law of the whole layer is an ordinary
condDistrib into a standard Borel space, and mutual conditional independence supplies the finite
products that finite-cylinder extensionality consumes.
Contents #
RankLayerIndex/RankLayerSpace/rankLayerMap— the layer at rank exactlyn;RelSignature.RankSupportandsigmaExactIndexEquiv— the bridge to the per-support view;lowerIndexSuccEquivandlowerFactorSpaceSuccEquiv— the successor splitLowerFactorSpace (n+1) ≃ᵐ LowerFactorSpace n × RankLayerSpace n;lowerToBoundaryProjection— forA.card = n, the rank-nfactor reads the boundary atA, withlowerToBoundaryProjection_lowerFactorMapdefinitional;rankSupportEquiv/rankLayerIndexEquiv/rankLayerSpaceEquiv— the relabeling actions, withlowerIndexSuccEquiv_rankLayerIndexEquivthe square against the successor split.
The successor split is a case distinction on card < n versus card = n, so it is a dite and
the index-level square against it, lowerIndexSuccEquiv_rankLayerIndexEquiv, is not
definitional: the branch conditions on the two sides agree only after rewriting anchor cardinality
through the image map. The named coordinate and projection compatibility lemmas are definitional
— rankLayerMap_sigmaExactIndexEquiv, lowerFactorSpaceSuccEquiv_lowerFactorMap,
fst_lowerFactorSpaceSuccEquiv, lowerToBoundaryProjection_lowerFactorMap,
rankLayerToExactProjection_rankLayerMap, the three naturality squares, and the space-level
successor square lowerFactorSpaceSuccEquiv_lowerFactorSpaceEquiv, which escapes the case split
because it is built from lowerIndexSuccEquiv.symm and that is a Sum.elim.
The supports of rank exactly n: the index of the family whose layers make up the rank-n
step. Not the index of the layer space itself — see the module header.
Instances For
Relabeling preserves rank: the image map is injective, so it preserves anchor cardinality. The workhorse of every rank-indexed transport in this file.
An arbitrary sortwise permutation permutes the supports of each rank. Finite support is irrelevant here: only injectivity is used, and that is what preserves cardinality. Stated for arbitrary sortwise permutations because the exchangeability of a law is an invariance under all of them, not only the finitely supported ones.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Membership in a permuted support, stated without an image so that no DecidableEq
instance appears in the type. Consumers over a concrete carrier have a natural instance that is
not definitionally the classical one used to form the image, and rankSupportPerm_coe is then
unusable there; this form is not.
A relabeling permutes the supports of each rank — the finitely supported case.
Equations
Instances For
The rank layer #
Indices anchored at a support of cardinality exactly n.
Instances For
The rank-n layer of the factor space, as a Bool-cube on a countable index.
Equations
- B.RankLayerSpace n = (B.RankLayerIndex n → Bool)
Instances For
The rank-n layer map: evaluate every basis event anchored at rank exactly n.
Equations
- B.rankLayerMap n X i = decide (X ∈ B.event ↑i)
Instances For
The bridge to the per-support view #
The layer is the disjoint union of the exact layers over the supports of rank n. This
is the bridge between the Bool-cube definition of RankLayerSpace and the per-support view in
which the rank-n step is a family indexed by RankSupport S n.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Each block of the layer map is the exact-anchor map at its support. Definitional: both sides evaluate the same basis event at the same point.
The successor split #
Rank below n+1 means rank below n or rank exactly n.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The successor split of the lower-rank factor space: everything below rank n, together
with the layer at rank exactly n.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The successor split refines the rank nesting: its first component is the rank-n projection.
The successor split applied to the factor map reads the two layers.
The boundary projection at a support of rank n #
A boundary index at a support of rank n has rank < n.
Equations
- B.boundaryToLowerIndex hA i = ⟨↑i, ⋯⟩
Instances For
The rank-n factor reads the boundary at every support of rank n.
Equations
- B.lowerToBoundaryProjection hA f = f ∘ B.boundaryToLowerIndex hA
Instances For
Definitional, as intended: the boundary map at A factors through the rank-n factor.
The exact projection at a support of rank n #
An exact index at a support of rank n lies in the rank-n layer.
Equations
- B.rankLayerToExactIndex hA i = ⟨↑i, ⋯⟩
Instances For
The layer projects onto the exact layer at each support of rank n. The per-support view
of the Bool-cube: this is the map along which the layer's conditional law restricts to
stepKernel A's target.
Equations
- B.rankLayerToExactProjection hA f = f ∘ B.rankLayerToExactIndex hA
Instances For
Definitional: the exact-anchor map at A factors through the rank-n layer.
Relabeling actions #
A relabeling permutes the rank-n layer index: the action transports anchors by an injective
image map, so it preserves cardinality exactly.
Equations
- B.rankLayerIndexEquiv σ n = { toFun := fun (i : B.RankLayerIndex n) => ⟨B.act σ ↑i, ⋯⟩, invFun := fun (j : B.RankLayerIndex n) => ⟨B.act σ⁻¹ ↑j, ⋯⟩, left_inv := ⋯, right_inv := ⋯ }
Instances For
Identity, as an equality of equivalences: these are automorphisms of one fixed type.
Composition, likewise.
Naturality of the layer map, with the same orientation as lowerFactorMap_lowerIndexEquiv
— forced by event_act being a preimage equality.
A relabeling as a measurable automorphism of the layer space, by coordinate reindexing.
Equations
- B.rankLayerSpaceEquiv σ n = { toEquiv := (B.rankLayerIndexEquiv σ n).symm.arrowCongr (Equiv.refl Bool), measurable_toFun := ⋯, measurable_invFun := ⋯ }
Instances For
The successor split is equivariant. Not definitional: the split branches on
card < n, and the two sides' branch conditions agree only after transporting anchor cardinality
through the image map — which is exactly rankLayerIndexEquiv's defining computation.
Identity, as an equality of measurable equivalences.
Composition, contravariantly, matching lowerFactorSpaceEquiv_mul.
Naturality #
The support/exact bridge is natural: acting on a support and its exact index agrees with
acting on the corresponding layer index. Definitional — both routes are act σ on the index and
differ only in which anchor proof is carried.
The exact projection is natural. Reading the exact layer at A after relabeling is
relabeling after reading it at the image support. Definitional.
The boundary projection is natural, likewise definitional.
The successor split is equivariant at the level of spaces — and here, unlike the
index-level square lowerIndexSuccEquiv_rankLayerIndexEquiv, the statement is definitional. The
space-level map is built from lowerIndexSuccEquiv.symm, which is a Sum.elim and so computes on
the constructors; the forward dite that forces the case split never appears.