Skip to content

test that Haah's cubic code is a special case on Multivariate Multicycle code#654

Open
Fe-r-oz wants to merge 3 commits intoQuantumSavory:masterfrom
Fe-r-oz:fa/generalizeMMcode-to-include-Haah-code
Open

test that Haah's cubic code is a special case on Multivariate Multicycle code#654
Fe-r-oz wants to merge 3 commits intoQuantumSavory:masterfrom
Fe-r-oz:fa/generalizeMMcode-to-include-Haah-code

Conversation

@Fe-r-oz
Copy link
Contributor

@Fe-r-oz Fe-r-oz commented Jan 7, 2026

Building on #606, this PR shows that Haah's cubic code is a special case on MM codes . Haah's cubic code is particularly interesting because it corresponds to a 3D Cubic lattice, hence D = 3 , but it only requires T =2 polynomials. MM code should reproduce this code as well for correctness. The assumption that was made before is that # of orders that corresponds to the order of groups is same as number of polynomials, but in this case as we see that there are three groups (or three variables), but only 2 polynomials A,B. Now, this wrong assertion (length(orders) == length(polys) || throw(ArgumentError("Mismatch orders/polys"))) is removed because the code does reproduce Haah's cubic code.

julia> using Oscar; using QuantumClifford.ECC;

julia> L = 8

julia> R, (x,y,z) = polynomial_ring(GF(2), [:x,:y,:z])

julia> I = ideal(R, [x^L-1, y^L-1, z^L-1])

julia> S, _ = quo(R, I)

julia> A = S(1 + x + y + z)

julia> B = S(1 + x*y + x*z + y*z)

julia> c = MultivariateMulticycle([L,L,L], [A,B])

julia> code_n(c), code_k(c)
(1024, 30)
  • The code is properly formatted and commented.
  • Substantial new functionality is documented within the docs.
  • All new functionality is tested.
  • All of the automated tests on github pass.
  • We recently started enforcing formatting checks. If formatting issues are reported in the new code you have written, please correct them.

@Fe-r-oz Fe-r-oz changed the title show that Haah's cubic code is a special case on Multivariate Multicycle code test that Haah's cubic code is a special case on Multivariate Multicycle code Jan 7, 2026
@Fe-r-oz Fe-r-oz added the Skip-Changelog label for control of CI: skips the changelog check label Jan 7, 2026
@Fe-r-oz Fe-r-oz requested a review from Krastanov January 7, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Skip-Changelog label for control of CI: skips the changelog check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant