| 123456789101112131415161718192021222324252627282930313233343536373839 |
- K = GF(5)
- n = 5
- d = 3
- # Ambient vector space
- V = VectorSpace(K, n)
- assert V([1, 1, 0, 0, 0]).hamming_weight() == 2
- def is_codespace(W, d):
- return all(v.hamming_weight() >= d for v in W if v != 0)
- done = False
- for j in range(2, n+1):
- print(f"trying k={j}")
- for W in V.subspaces(j):
- if is_codespace(W, d):
- C = W
- done = True
- break
- if done:
- break
- k = C.dimension()
- E = V.subspace([
- [1, 0, 0, 0, 0],
- [0, 1, 0, 0, 0],
- ])
- #assert C.dimension() == k
- assert E.dimension() == d - 1
- assert C.intersection(E).dimension() == 0
- assert C.dimension() + E.dimension() == (C + E).dimension()
- # But C + E are both subspaces of V which is dim N
- assert (C + E).dimension() <= n
|