Skip to content

Add support for pseudomorphisms #38650

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

Merged
merged 42 commits into from
Feb 21, 2025
Merged

Conversation

xcaruso
Copy link
Contributor

@xcaruso xcaruso commented Sep 12, 2024

This PR implements pseudomorphisms.

Let $M, M'$ be modules over a ring $R$, $\theta: R \to R$ be a ring homomorphism, and $\delta: R \to R$ be a $\theta$-derivation, which is a map such that $\delta(xy) = \theta(x)\delta(y) + \delta(x)y$.
A pseudomorphism $f : M \to M$ is an additive map such that $f(\lambda x) = \theta(\lambda)f(x) + \delta(\lambda) x$ for all $\lambda$ and $x$.

This PR is based on a former PR by @ymusleh (that I could not find, I don't know why).

📝 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

Copy link

github-actions bot commented Sep 12, 2024

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

@xcaruso xcaruso mentioned this pull request Sep 23, 2024
5 tasks
@xcaruso xcaruso requested a review from kryzar September 23, 2024 16:35
@xcaruso
Copy link
Contributor Author

xcaruso commented Feb 11, 2025

@kryzar Please tell me if you have some comment on this PR.

Copy link
Contributor

@kryzar kryzar left a comment

Choose a reason for hiding this comment

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

Here are some suggestions to enhance the doc:

@xcaruso xcaruso added the sd128 tickets of Sage Days 128 Le Teich label Feb 13, 2025
@kryzar kryzar self-requested a review February 13, 2025 19:03
@kryzar
Copy link
Contributor

kryzar commented Feb 14, 2025

Thanks Xavier!
The two failing tests do not seem to be related to this ticket.
PR approved.

@kryzar
Copy link
Contributor

kryzar commented Feb 14, 2025

Also, thank you @ymusleh for the original contribution!

@xcaruso
Copy link
Contributor Author

xcaruso commented Feb 15, 2025

Great, thanks!

vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 18, 2025
sagemathgh-38650: Add support for pseudomorphisms
    
This PR implements pseudomorphisms.

Let $M, M'$ be modules over a ring $R$, $\theta: R \to R$ be a ring
homomorphism, and $\delta: R \to R$ be a $\theta$-derivation, which is a
map such that $\delta(xy) = \theta(x)\delta(y) + \delta(x)y$.
A *pseudomorphism* $f : M \to M$ is an additive map such that $f(\lambda
x) = \theta(\lambda)f(x) + \delta(\lambda) x$ for all $\lambda$ and $x$.

This PR is based on a former PR by @ymusleh (that I could not find, I
don't know why).

### 📝 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.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies
    
URL: sagemath#38650
Reported by: Xavier Caruso
Reviewer(s): Antoine Leudière, Kwankyu Lee, Xavier Caruso
@vbraun vbraun merged commit c43cd23 into sagemath:develop Feb 21, 2025
21 of 23 checks passed
@kryzar
Copy link
Contributor

kryzar commented Feb 21, 2025

🍾

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 pushed a commit to vbraun/sage that referenced this pull request Mar 22, 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
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.

5 participants