Let . We consider the family of all linear subspaces that satisfy the following three conditions:
-
The dimension of is 12.
-
The Hamming weight of every vector in is a multiple of 4.
-
The vector is contained in .
For any , let denote the number of vectors in having Hamming weight . It is a known theoretical result that the weight distribution sequence for any can be uniquely expressed as a linear combination of the weight distributions of two fixed "basis" codes, and , which are also in .
The basis codes are defined as follows:
- \textbf{Code }: The weight enumerator polynomial is given by:
- \textbf{Code }: This code has no vectors of weight 4 (i.e., ) and has exactly 759 vectors of weight 8 (i.e., ).
Let be a specific code in that contains exactly 6 vectors of weight 4.
Calculate the number of vectors in that have weight 12.
[THOUGHT] I’ll use Gleason’s theorem for Type II (binary doubly-even self-dual) codes of length 24.
Given the conditions, every code in the family is a Type II [24,12] code, so its weight enumerator is a linear combination of two basis polynomials:
- ,
- .
Any such weight enumerator is:
for some scalars .
For the specific code , we know:
- , so .
- There are exactly 6 words of weight 4, so the coefficient of in is 6.
These give two linear equations in . I’ll:
- Expand and ,
- Compute and ,
- Extract the coefficients of in both,
- Solve for ,
- Form for ,
- Extract the coefficient of , which equals the number of codewords of weight 12.
All steps will be verified using Python/sympy. [/THOUGHT] [PYTHON] from sympy import symbols, expand, Eq, solve
Define variables and basis polynomials
x, y, u, v = symbols('x y u v') A = x8 + 14*x4*y4 + y8 B = x4 * y4 * (x4 - y4)**4
A3 = expand(A**3) Bexp = expand(B)
Evaluate A^3(1,1) and B(1,1)
A3_11 = A3.subs({x:1, y:1}) B_11 = Bexp.subs({x:1, y:1})
print("A^3(1,1) =", A3_11) print("B(1,1) =", B_11)
Get coefficients for weight 4 i.e., x^20 y^4
def coeff_weight(poly, k): # weight k term is x^{24-k} y^k return poly.expand().coeff(x, 24-k).coeff(y, k)
c4_A3 = coeff_weight(A3, 4) c4_B = coeff_weight(Bexp, 4)
print("Coeff of weight 4 in A^3:", c4_A3) print("Coeff of weight 4 in B :", c4_B)
Set up equations for C*: W = u A^3 + v B
1) total codewords = 4096
2) A_4 = 6
eq1 = Eq(uA3_11 + vB_11, 4096) eq2 = Eq(uc4_A3 + vc4_B, 6)
sol_uv = solve((eq1, eq2), (u, v)) print("Solution (u, v) =", sol_uv)
u_star, v_star = sol_uv[u], sol_uv[v]
Form W for C*
W_star = expand(u_starA3 + v_starBexp)
Extract coefficient of weight 12 (x^12 y^12)
A12_star = coeff_weight(W_star, 12) print("Number of weight-12 codewords in C*:", A12_star) [/PYTHON]
[THOUGHT] Using the given structure of the weight enumerator and the constraints (dimension 12, 6 codewords of weight 4, and total size 4096), solving for the linear combination of the two basis weight enumerators yields parameters and . Extracting the coefficient of in the resulting weight enumerator gives the number of codewords of weight 12, which is 2612. [/THOUGHT]