Skip to content

Implementation of Ore modules#38703

Merged
vbraun merged 51 commits intosagemath:developfrom
xcaruso:ore_module
Mar 22, 2025
Merged

Implementation of Ore modules#38703
vbraun merged 51 commits intosagemath:developfrom
xcaruso:ore_module

Conversation

@xcaruso
Copy link
Contributor

@xcaruso xcaruso commented Sep 23, 2024

This PR implements modules over Ore polynomial rings.

More precisely, if $A[X;\theta,\partial]$ is a Ore polynomial ring, we propose an implementation of finite free modules $M$ over $A$ equipped with a map $f : M \to M$ such that $f(ax) = \theta(a) f(x) + \partial(a) x$ for all $a \in R$ and $x \in M$.
Such a map is called pseudolinear and it endows M with a structure of module over $A[X;\theta,\partial]$ (the map $f$ corresponding to the multiplication by $X$).

This PR includes:

  • an implementation of the category of Ore modules
  • an implementation of Ore modules, their submodules and their quotients (with an option to give chosen names to elements in a distinguished basis)
  • a constructor to create quotients of the form $A[X;\theta,\partial] / A[X;\theta,\partial]P$
  • an implementation of morphisms between Ore modules, including methods for computing kernels, cokernels, images and coimages

This is the second step (after PR #38650) towards the implemetation of Anderson motives.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

#38650: pseudomorphisms

@xcaruso xcaruso requested a review from kryzar September 23, 2024 16:36
@kryzar
Copy link
Contributor

kryzar commented Sep 24, 2024

Quick question: why is it necessary that $M$ is free and finite (or just free with finite rank?)?

Also: love that you're creating these intermediate facilities that can be relevant in their own right, instead of just putting all of this in the implementation of Anderson motives.

@xcaruso
Copy link
Contributor Author

xcaruso commented Sep 24, 2024

Quick question: why is it necessary that M is free and finite (or just free with finite rank?)?

Well, it is not for the definition. But for the implementation, it is really useful as we want to represent the map $f$ by its matrix.

Copy link
Contributor

@r-mb r-mb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix 11 E302 "expected 2 blank lines, found " errors of pycodestyle-minimal

Copy link
Contributor

@r-mb r-mb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix another E302 "expected 2 blank lines, found " error of pycodestyle-minimal (sorry, blame the TGV's WiFi)

@github-actions
Copy link

github-actions bot commented Mar 11, 2025

Documentation preview for this PR (built with commit c7a800b; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@r-mb
Copy link
Contributor

r-mb commented Mar 11, 2025

We had many discussions with Xavier, and he did everything I wanted to be done. He told me that he also did corrections asked by @fchapoton, so except if there is another thing he wants to add, now this PR looks ready to be merged for me.
Check failures seem unrelated to this PR, and rather related to bugs #39543 and #39460.

@kryzar kryzar removed their request for review March 11, 2025 22:56
@kryzar
Copy link
Contributor

kryzar commented Mar 11, 2025

Hi! Understood. I removed my review request.

@xcaruso
Copy link
Contributor Author

xcaruso commented Mar 12, 2025

Sorry, what was your review request? I can address it, no problem!

@kryzar
Copy link
Contributor

kryzar commented Mar 12, 2025

Sorry, what was your review request? I can address it, no problem!

No, you're good! I meant the fact that I was (or maybe self-requested) as a reviewer! Everything is fine! :)

@xcaruso
Copy link
Contributor Author

xcaruso commented Mar 12, 2025

Ah ok, I then misunderstood your comment.
I then put back a positive review. Please let me know if somebody is not happy with this.

vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 19, 2025
sagemathgh-38703: Implementation of Ore modules
    
This PR implements modules over Ore polynomial rings.

More precisely, if $A[X;\theta,\partial]$ is a Ore polynomial ring, we
propose an implementation of finite free modules $M$ over $A$ equipped
with a map $f : M \to M$ such that $f(ax) = \theta(a) f(x) + \partial(a)
x$ for all $a \in R$ and $x \in M$.
Such a map is called *pseudolinear* and it endows `M` with a structure
of module over $A[X;\theta,\partial]$ (the map $f$ corresponding to the
multiplication by $X$).

This PR includes:
- an implementation of the category of Ore modules
- an implementation of Ore modules, their submodules and their quotients
(with an option to give chosen names to elements in a distinguished
basis)
- a constructor to create quotients of the form $A[X;\theta,\partial] /
A[X;\theta,\partial]P$
- an implementation of morphisms between Ore modules, including methods
for computing kernels, cokernels, images and coimages

This is the second step (after PR sagemath#38650) towards the implemetation of
Anderson motives.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

sagemath#38650: pseudomorphisms
    
URL: sagemath#38703
Reported by: Xavier Caruso
Reviewer(s): Rubén Muñoz--Bertrand
@vbraun vbraun merged commit c62cd67 into sagemath:develop Mar 22, 2025
25 of 27 checks passed
@xcaruso xcaruso deleted the ore_module branch August 19, 2025 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c: algebra c: linear algebra sd128 tickets of Sage Days 128 Le Teich

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants