Ring Conformance for Clifford algebras and Clifford orders + Documentation#5880
Ring Conformance for Clifford algebras and Clifford orders + Documentation#5880SirToby25 wants to merge 34 commits intooscar-system:masterfrom
Conversation
The files Operators.jl, exports.jl, Types.jl were created and code was shifted from CliffordAlgebra.jl and CliffordOrder.jl to these files as appropriate. Also created 'ambient_algebra' as an alias for 'algebra'. For better readability, only the former is used within the code from now on.
Removed the fields even_coeffs and odd_coeffs for all element types. All related functions were deleted as well. Shifted all methods regarding graded parts of Clifford algebras and Clifford orders to the 'Graded parts'-blocks. Updated generation for conformance tests. These work now as intended.
Full documentation for implementation of Clifford algebras and Clifford orders is now finished. Also removed the fields for storing bases or pseudo-bases for various objects such as center and centroid for the various algebra and order types. Instead, these are now computed on demand from a smaller set of data that constitute new fields. Added methods to compute a (pseudo-)basis for the maximal orthogonal suborder of the centroid of a Clifford order.
There was a problem hiding this comment.
Pull request overview
This PR refactors the experimental Clifford algebra/order implementation to conform to the NCRing interface, reorganizing core definitions and adding both conformance and documentation coverage.
Changes:
- Added
ConformanceTests.test_NCRing_interfacecoverage for Clifford algebras/orders and matrix rings over them. - Split core implementation into new
Types.jl,Operators.jl, andexports.jl, and updated APIs aroundambient_algebra. - Introduced new documentation pages (introduction + algebra/order guides) and wired them into
docs/doc.main.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| experimental/CliffordAlgOrd/src/CliffordAlgOrd.jl | Includes new exports, Types, and Operators modules before existing implementation files. |
| experimental/CliffordAlgOrd/src/exports.jl | Centralizes export list for the project. |
| experimental/CliffordAlgOrd/src/Types.jl | New core type definitions for algebras, orders, and their elements. |
| experimental/CliffordAlgOrd/src/Operators.jl | New operator implementations (+, *, inv, divexact, hashing, unsafe ops). |
| experimental/CliffordAlgOrd/src/CliffordAlgebra.jl | Refactors API/docs; adds graded-part helpers and conformance element generation. |
| experimental/CliffordAlgOrd/src/CliffordOrder.jl | Refactors to ambient_algebra, adds centroid/orthogonal-suborder routines, promotion rules, random generation, and conformance element generation. |
| experimental/CliffordAlgOrd/test/CliffordAlgebra.jl | Adds NCRing conformance tests; updates tests for refactored API. |
| experimental/CliffordAlgOrd/test/CliffordOrder.jl | Adds NCRing conformance tests; expands coverage for coefficient ideals and centroid/max-orth functionality. |
| experimental/CliffordAlgOrd/docs/doc.main | Registers the new documentation pages. |
| experimental/CliffordAlgOrd/docs/src/introduction.md | Adds an overview/introduction section and project context. |
| experimental/CliffordAlgOrd/docs/src/clifford_algebras.md | Adds a Clifford algebras user guide + API references. |
| experimental/CliffordAlgOrd/docs/src/clifford_orders.md | Adds a Clifford orders user guide + API references. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| ConformanceTests.test_NCRing_interface(C) | ||
|
|
||
| # Matrices over Clifford orders | ||
| M = matrix_ring(C, 2) | ||
| ConformanceTests.test_NCRing_interface(M) | ||
|
|
There was a problem hiding this comment.
| ConformanceTests.test_NCRing_interface(C) | |
| # Matrices over Clifford orders | |
| M = matrix_ring(C, 2) | |
| ConformanceTests.test_NCRing_interface(M) | |
| ConformanceTests.test_NCRing_interface_recursive(C) |
after Nemocas/AbstractAlgebra.jl#2390 is merged and released, and similar elsewhere
There was a problem hiding this comment.
as mentioned in my comment, this is not available yet. So for you to continue working on this, better keep the previous version until Nemocas/AbstractAlgebra.jl#2390 is actually available...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
|
@thofma Do you wanna have a look at the mathematics? |
thofma
left a comment
There was a problem hiding this comment.
Had an artificial glance and it looks good to me.
This branch refactors and upgrades the Clifford algebra and order implementations to be fully compliant with the NCRing interface. This is essentially a follow up to #4370 (and #4822).
It also comes with a full documentation of the code.