-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extending the capabilities of 2BGA codes #396
Comments
Hi, @Krastanov, I wanted to check with you about a potential Bug Bounty for some recent work. I've been collaborating with @thofma to fully reproduce the results from the Lin and Pryadko paper, extending Group Algebra-based functionality, and building significant new features on top of #356. Tommy’s contributions were invaluable, particularly with the group presentation, and he helped resolve issue #391. Initially, I pursued this to explore the paper and add new functionality, without the intention of turning it into a Bug Bounty. However, given the scope and impact of this work, I was wondering whether it might qualify for the Quantum Savory Bug Bounty program. It seems like the type of contribution that could be a good fit, though I understand that you're best placed to assess its relevance and whether it aligns with the program. Additionally, I believe Tommy could quickly address the downgrade and the specific CI errors we've encountered with Oscar. I wanted to explore whether this could also be structured as a Bug Bounty, with shared credit, though I’ll leave the details to your judgment and am happy to accept whatever you decide. Thank you for your time and guidance, and I look forward to hearing your thoughts. Best Regards. |
Indeed, this is a pretty significant contribution, and a very valuable set of tests verifying the consistency of @royess 's work, thank you for looking into it. It will be appropriate to provide a bounty for its completion. It will take me some time to go over the PRs and review them and to write down the exact parameters of the bounty (we will probably need a convenient API for accessing these codes, having some decoder benchmarks, etc, not just having them as examples in the test runner). I will try to write this up over the next week. @thofma , thank you for the guidance you have provided to Feroz, it is much appreciated. |
Indeed. I think that implementing a convenient API, namely In addition, Please refine and enhance this along with the other requirements during the writing process. Thank you. |
Extending the capabilities of 2BGA codes
Introduction
With regards to 2BGA code, The PR #356 introduced a basic functionality for 2BGA codes where GroupAlgebra is only a single cyclic group of order
l
. So, we are only limited to this group algebra:GA = group_algebra(GF(2), abelian_group(l))
. However, the 2BGA codes were discovered by Lin and Pryadko in their seminal paper Quantum two-block group algebra codes where they introduced these codes with rich a Group Algebra, incorporating both abelian and non-abelian groups and products (direct/semidirect) of groups.For researchers deeply involved in researching 2BGA codes, functionalities such as designing very specific group presentations, non-abelian groups, direct products of groups are currently not supported. This is well highlighted in this aforementioned paper, where specific presentations are the key ingredient for construction of Group Algebra of 2BGA with abelian and non-abelian groups.
The goal is to extend the capabilities of 2BGA codes in three verticals:
The diagram below distinguishes between Hecke.small_group and finitely presented groups (Oscar.free_group) based on the presence of extra relations in group presentations. The aforementioned paper utilizes specific presentations that necessitate the use of Oscar.free_group.
The diagram below distinguishes between Hecke.direct_product and Oscar.direct_product. The aforementioned paper utilizes direct product between two or more general groups that necessitate the use of Oscar.direct_product. The order of group supported by Oscar is substantially larger. With twobga_from_direct_product , we offer comprehensive documentation and implementation for accurately computing the direct product of two or more general groups, ensuring that the presentation$⟨X∣S⟩$ is satisfied and that the two subgroups indeed form a valid group.
Additionally, with regards to
HeckeExt
, Bivariate Bicycle (BB) codes usingHecke
's Group Algebra are currently unsupported. Two group algebraic implementations are planned: one with2BGA
as the parent and the other withLPCode
as the parent, both extending the capabilities ofHeckeExt
.Objectives
2BGA
as the parent andLPCode
as the parentFor correctness, the goal is to reproduce the results (Table 1, Table 2 , Table 3) from the paper and provide researchers in QEC codes access to this crucial functionality. Some of the necessary functionalities are only available in
Oscar
such asFree Group
that enables group presentations for constructing codes for Clifford simulation. These functionalities would facilitate further exploration of these codes by researchers, as the paper by Lin and Pryadko was the first to utilize small groups and group presentations for constructing a rich group algebra.Additionally, with regards to
HeckeExt
, the equivalence between the two group algebraic implementations of BB codes will be tested:parity_checks(BB using 2BGA as the parent) == parity_checks(BB using LPCode as the parent)
. This equivalence relation can be seen from the following:Implementation
Cₗ x Cₘ
: add tests and examples of Cₘ × C₂ 2BGA codes #392code_k
values when reproducing some results from paper by Lin et al via Hecke/Oscar.small_group #391. Many Thanks to Tommy Hofmann for his wonderful insights in resolving this issue.Dₗ x Cₘ
tests: Non-Abelian Dihedral Groups Dₘ via Group Presentation ⟨S|R⟩ #397Dₗ x Cₘ
tests: Non-Abelian Dihedral Groups Dₘ via Group Presentation ⟨S|R⟩ #397⟨x,s|xᵐ=s²=xsx⁻¹s⁻¹=1⟩
tests: Group Presentation for Cyclic Group Cₘₕ = Cₘ × C₂ #398twobga_from_fp_group
API, documentation, and testing viatest_ecc_base.jl
: add QuantumCliffordOscarExt to provide convenient API for finitely presented groups via specific group presentation #400check_repr_commutation_relation
to verifyL(a) R(b) == R(b) L(a)
for 2BGA code: addcheck_repr_commutation_relation
to test the CSS orthogonality condition for 2BGA's Group Algebra with a General GroupG
#403check_repr_regular_linear
addcheck_repr_regular_linear
to verify F-linear regular representation for Group Algebra elements #407I have mentioned each feature in more detail in respective PRs.
Outcome
test_ecc_base.jl
:QuantumCliffordOscarExt
Table 2 has been reproduced using two approaches: direct products of cyclic groups and group presentation, as a cross-check for consistency. Similarly, Table 3 has been cross-checked using semidirect products of cyclic groups and group presentation.
Reviewer: Stefan Krastanov
Additional Details
Note: Given the fact that there were quite a few PRs related to this new functionality, the overall goals and objectives may not be immediately clear. Therefore, I've outlined them concisely to ensure progress is tracked and to communicate the purpose of these PRs.
The paper by Lin and Pryadko is the base paper that discovered these codes.
Oscar v1.2.0
has not been released yet. It will fix the CI error that 'GAP.jl currently does not support multithreaded garbage collection' as it will update it toGAP.jl 0.11.2
fromGAP v0.10.4
I think the functionalities here apply to many types of codes that use Group Algebra, not just 2BGA. This will have to be added in documentation, that these functionalities are not restricted to just this code.
The text was updated successfully, but these errors were encountered: