add QuantumCliffordOscarExt to provide convenient API for finitely presented groups via specific group presentation#400
Conversation
a8527f4 to
9c0767f
Compare
|
Thank you, this is wonderful! |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #400 +/- ##
==========================================
- Coverage 83.46% 82.63% -0.84%
==========================================
Files 72 72
Lines 4813 4819 +6
==========================================
- Hits 4017 3982 -35
- Misses 796 837 +41 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Since we use these |
|
This looks really great! I have a bit of a backlog of reviews, so I will probably not be able to merge this until late next week, but I am very grateful you guys spent time on providing something so neatly polished here. @royess , if you have a chance, could you also check this out, as it is building upon a lot of the infrastructure you contributed. |
|
@Krastanov, We have identified an inconsistency in the implementation of the As a result, we have temporarily removed the additional functionality for the semidirect product of groups from the PR we introduced today. We plan to reintroduce this feature once the inconsistency is resolved, as it is unrelated to this PR. |
I would like to help but perhaps not very soon. I will aim to do that next week. |
|
Changelog:
The mermaid diagram included in documentation for specific group presentations via Finitely Presented Groups: graph TD
A[Group Presentation <br> ⟨S ∣ R⟩] --> B{Are there <br> extra relations?}
B -- No --> C[Small groups <br> Hecke/Oscar.small_group]
C --> D[Independent generators]
C --> E["Example: <br> ⟨r, s ∣ s⁴, r⁹⟩"]
B -- Yes --> F[Finitely presented groups <br> Oscar.free_group]
F --> G[Defined by interactions]
F --> H["Example: <br> ⟨r, s ∣ s⁴, r⁹, s⁻¹rsr⟩"]
|
Krastanov
left a comment
There was a problem hiding this comment.
Thanks folks! As I am reading through this, I have a couple of background questions about the Oscar/Hecke ecosystem (of which I know very little):
-
What does Oscar provide that is not in Hecke? Why is it necessary? I am not knowledgeable of that ecosystem.
-
Why list notation instead of just a sum? E.g. why
[one(GA), x^7]instead ofone(GA) + x^7-- the later seems simpler to read to me and the only operation that seems to be done on the list is to sum it. -
QuantumCliffordOscarExt.twobga_from_direct_productintroduced here seems almost identical to the already existingQuantumCliffordHeckeExt.two_block_group_algebra_codes. Semantically, why should they be two different functions? -
I see that Oscar 1.2 was recently released. Does that mean that the tests can now also run on Windows?
|
I see that the mermaid diagram by Feroz above seems to be in the direction of answering my first question, but I do not really understand the context of it. Some examples of something inconvenient/impossible in Hecke but easy/possible in Oscar would be very helpful. |
|
Hecke contains only abelian groups and a list of all finite groups of order up to 100. Oscar brings in comprehensive functionality for computational group theory, including support for arbitrary finitely presented groups (groups of the form Regarding Oscar 1.2, Windows support is still lacking (and will so for the foreseeable future), but at least starting with |
As Tommy pointed out, Oscar provides functionality of designing specific group presentations when we have a finite group formed by direct product of two or more subgroups or semidirect product of two or more subgroups as depicted by the mermaid diagram. There are even cases of finite groups when we have group C x (C : C) where : means semidirect products whose group presentation we can conveniently design using Oscar. PR #406 highlights this limitation in Hecke, where it becomes inconvenient/impossible to create specific group presentations Oscar provides convenient access to non-abelian groups such as The key difference is that In addition, Oscar also supports homomorphisms hom between free modules, which are necessary for the intersection of two kernels, Since 2BGA codes require a finite general group (specifically, Edit: Future prospects: There has been a growing interest in non-Abelian codes, particularly Dihedral Quantum Codes, which offer promising opportunities for new software bounty projects. Recent papers, such as Dihedral Quantum Codes, highlight these developments. Oscar provides a comprehensive toolkit to support this exploration. Additionally, there has been a notable focus on Dihedral group algebra in recent research. One such paper discusses the use of the direct product between dihedral and cyclic groups, as detailed in [Direct Product Group Codes and Derived Quantum Codes].
To my knowledge, 'non-list' notation is not supported for Sharing Tommy's insights from earlier discussions in #391: Moreover, the list notation is used in QuantumClifford.jl/ext/QuantumCliffordHeckeExt/lifted_product.jl Lines 294 to 295 in ce1dc02 QuantumClifford.jl/ext/QuantumCliffordHeckeExt/lifted_product.jl Lines 330 to 331 in ce1dc02 |
|
With reference to your third question, we have prepared the following mermaid diagram to illustrate the differences. graph TB
root[Direct Product of Groups]
root --> A[Hecke.direct_product]
root --> B[Oscar.direct_product]
%% Hecke Branch
A --> A1[Supports mostly abelian groups and list of finite groups]
A1--> A2[abelian_group symmetric_group small_group]
A2 --> A3[C × C, C × S]
%% Oscar Branch
B --> B1[Supports finite general groups, including non-abelian groups]
B1--> B2[alternating_group <br> dihedral_group <br> free_group <br> cyclic_group <br> permutation_group <br> quaternion_group <br> symmetric_group <br> abelian_group<br> small_group]
B2--> B3[A × C, A × D <br> D × C, D × D <br> F × F, F × A, F × D <br> F × S, F × C <br> C × C, C × S]
Additionally, to reiterate Tommy's point, the order of the groups supported by Oscar is substantially larger. In this example, the order of the direct product of two finite groups is ten times 100. |
@Krastanov, I am thrilled to share the latest paper (posted Dec 12, 2024) Codes in algebras of direct products of groups and associated quantum codes that constructs the Group codes arising from Edit: Section 4.1 of this paper provides a nice application of specific group presentations with additional relations. For instance, the paper uses the following group presentations for the dihedral and cyclic groups:
Additionally, it considers:
|
Dear @royess, I hope this message finds you well! If you have time, kindly please review this PR as well. That would be fantastic! It builds upon a lot much of the excellent infrastructure you contributed in #356, so your insights and perspective would be incredibly valuable here. Thank you so much for your time—I truly appreciate it! Dear @Krastanov, I hope this message finds you well! My apologies—I realize I should have sent this note before formally submitting the review request. Clicking "Request Review" days ago first made this message feel like an afterthought and unprofessional, and I sincerely regret the awkward sequencing. I hope the oversight hasn’t caused any inconvenience. Thank you!! Edit: I forgot to mention that I greatly appreciated the amazing questions in #400 (review)! |
|
Apologies for all the noise over the last day -- we had recently started partitioning part of the library and that messed up the CI. Given that this PR also was introducing non-trivial CI logic, it seemed like a good place to fix it. Also apologies for taking so long to review this. @thofma thank you for the domain expertise -- this might or might not be a very simple use of Oscar, but this type of use is extremely hot among quantum information science researchers right now, and barely anyone has previous domain expertise, so we are all stumbling in the dark a bit. You and your team should definitely consider advertising Oscar in a few QIS conferences -- there would be great deal of interest. Thanks, Feroz for spearheading this! |
|
@nzy1997 , the CI issue I tagged you about is (mostly?) fixed in this PR. Pardon the noisy tags. |
@Fe-r-oz hope I did everything correct
Edit: Here some explanation for the CI changes: Since Oscar does not work on Windows and julia has no mechanism to handle platform dependent, we cannot have Oscar in the Project.toml. Hence in the CI script we inject this dependency by hand if Oscar is available. The tests themselves are behind a
Sys.iswindows()andtry using Oscarcheck.