The type-C residue identity and the capacity criterion #
For a vector x ∈ ℤ^m, taken through its reduction modulo q as a list over ZMod q (or over a
finite abelian group G), the residue R x of the type-C positive roots in ℤ[G] satisfies
2 R x + 2m = P(x)² + P(2x). Counting classes gives 4 N + 2m = ∑_g o(g)² + ∑_{2g = 0} o(g),
where o(g) is the multiplicity of g. Hence N_q(x) ≥ N_q(ρ) with equality iff x meets the
capacities o(g) ≤ d (d q = 2m + 2), and then R x = R ρ.
Main results #
ResidueCapacity.eq_res: the residue identity.ResidueCapacity.four_N: the class count.ResidueCapacity.cap_criterion_gen,ResidueCapacity.conj_cap: the capacity criterion.ResidueCapacity.prop_res_cap:R x = R ρunder the capacities.
References #
- C. Marín, Integer character values on the ρ-line of Sp(2m), Zenodo (2026), doi:10.5281/zenodo.22683560.
The basis element X^g of ℤ[G].
Equations
Instances For
P_x = Σ_i (X^{x_i} + X^{-x_i}).
Equations
- ResidueCapacity.P [] = 0
- ResidueCapacity.P (a :: xs) = ResidueCapacity.s a + ResidueCapacity.s (-a) + ResidueCapacity.P xs
Instances For
The values (x,α) for the positive roots α of C_m, listed recursively:
for x = (a, x₂, …) the roots 2e₁, then e₁ - e_j, e₁ + e_j (j > 1), then those of the tail.
Equations
- ResidueCapacity.posRootVals [] = []
- ResidueCapacity.posRootVals (a :: xs) = 2 • a :: List.flatMap (fun (b : G) => [a - b, a + b]) xs ++ ResidueCapacity.posRootVals xs
Instances For
ℛ_x = Σ_{α ∈ Φ(C_m)} X^{(x,α)}, with Φ = Φ⁺ ∪ -Φ⁺.
Equations
- ResidueCapacity.R x = (List.map (fun (v : G) => ResidueCapacity.s v + ResidueCapacity.s (-v)) (ResidueCapacity.posRootVals x)).sum
Instances For
Part 2: occupancies and the count N_q #
N_q(x) = #{α > 0 : (x,α) ≡ 0}.
Equations
Instances For
Part 3: capacities and the criterion N_q(x) = r_q (Corollary conj:cap) #
Folded occupancy n_c: number of entries of x lying in the folded class {g, -g}.
Equations
- ResidueCapacity.occ x g = List.countP (fun (a : G) => decide (a = g ∨ a = -g)) x
Instances For
The capacities of Corollary conj:cap: each non-fixed folded class holds at most d
entries and each fixed class (2g = 0, i.e. g = -g) at most ⌊d/2⌋.
Equations
- ResidueCapacity.Cap d x = ∀ (g : G), (2 • g ≠ 0 → ResidueCapacity.occ x g ≤ d) ∧ (2 • g = 0 → ResidueCapacity.occ x g ≤ d / 2)
Instances For
The capacities say exactly o_x(g) ≤ d for every g.
ε(d) = 1 for d even, 0 for d odd.
Instances For
Per-class slack of the cost n² + [2g=0] n above its supporting line of slope 2d-1.
Equations
Instances For
Per-class intercept of that supporting line.
Equations
Instances For
bump c g = [g = c] + [g = -c] (the coefficient of X^c + X^{-c} at g).
Instances For
Generic form of the capacity criterion: if a reference vector y meets the capacities and
|G| · d = 2m + 2, then N(y) ≤ N(x) for every x of the same length, with equality iff x
meets the capacities.
Shape of the occupancies under the capacities #
d even: exactly one folded class {c, -c} falls short, o_x = d - [g=c] - [g=-c].
d odd: the capacities are saturated, o_x = d - [2g = 0], provided G has at least two
fixed points (true for ZMod q, q even).
P_x through its coefficients #
d even: with P_x = d·T - X^c - X^{-c}, the value of P_x² + P_x(X²) does not depend
on c.
ℤ[G] is torsion-free: 2a = 2b → a = b.
ρ = (m, m-1, …, 1), reduced mod q.
Equations
- ResidueCapacity.rho q m = List.map (fun (i : ℕ) => ↑(i + 1)) (List.range m).reverse
Instances For
Corollary conj:cap. Let q ∣ 2m+2, d = (2m+2)/q (hypothesis d * q = 2m + 2), and
let x be any vector of length m over ZMod q (e.g. ℓ = λ + ρ reduced mod q; Nq x is
then N_q(ℓ) = #{α > 0 : q ∣ (ℓ, α)}). Then N_q(ρ) ≤ N_q(x), and N_q(x) = r_q = N_q(ρ) iff
each non-fixed folded class mod q holds at most d entries and each fixed class at most
⌊d/2⌋ (Cap d x).
Proposition prop:res, second half. For q ∣ 2m+2 (d * q = 2m+2) and every x of
length m over ZMod q meeting the capacities of conj:cap, ℛ_x = ℛ_ρ in ℤ[ZMod q].