NRR.Representation.ZeroSum — zero-sum real-valued target type (public API) #
The zero-sum real-valued target type used by the perimeter test map. A value of
ZeroSum n is a function Fin n → ℝ whose coordinates sum to zero. It carries the
subtype topology inherited from Fin n → ℝ, a CoeFun to the underlying function, an
extensionality lemma, and a Zero instance (needed so that later theorems can state that
the test map vanishes, e.g. TestMap.perimeter ... s = 0).
This module keeps ZeroSum minimal: it does not introduce representation spheres,
obstruction theory, or quotient spaces, and it does not make AddCommGroup/Module
structure mandatory.
The subtype topology inherited from Fin n → ℝ.
The inherited topology is Hausdorff.
Coercion of a zero-sum vector to its underlying function Fin n → ℝ.
Equations
- NRR.instCoeFunZeroSumForallFinReal = { coe := fun (v : NRR.ZeroSum n) => ↑v }
Relabelling of a zero-sum vector. For a permutation σ : Equiv.Perm (Fin n) and a
zero-sum vector v : ZeroSum n, the relabelled vector ZeroSum.relabel σ v is obtained by
precomposing the underlying function with σ.symm, i.e.
(ZeroSum.relabel σ v) i = v (σ.symm i). This σ.symm convention matches Config.relabel.
Equations
- NRR.ZeroSum.relabel σ v = ⟨fun (i : Fin n) => ↑v ((Equiv.symm σ) i), ⋯⟩
Instances For
The Sₙ-action σ • v := ZeroSum.relabel σ v on the zero-sum target type, by relabelling
via precomposition with σ.symm (matching the Config action convention).
Equations
- NRR.instMulActionPermFinZeroSum = { smul := fun (σ : Equiv.Perm (Fin n)) (v : NRR.ZeroSum n) => NRR.ZeroSum.relabel σ v, mul_smul := ⋯, one_smul := ⋯ }
Relabelling is continuous for the subtype topology on ZeroSum n.