Closed toadrush closed 3 years ago
Description changed:
---
+++
@@ -1 +1,3 @@
+Morphisms between free modules over PIDs are always represented by matrices acting on the right.
+The goal of this ticket is to modify matrix morphisms (`sage/modules/matrix_morphism.py`) by adding an optional keyword for left actions. This will have applications Ticket [ticket:25902] in which we build equivariant left-morphisms between G-lattices.
Branch pushed to git repo; I updated commit sha1. New commits:
e3eb2f7 | fixed typos |
Commit: e3eb2f7
Branch pushed to git repo; I updated commit sha1. New commits:
ffd5b16 | fixed typos |
Branch pushed to git repo; I updated commit sha1. New commits:
b779f07 | free module morphisms are in a working state, vector space morphisms need to be modified to handle base ring extensions |
Branch pushed to git repo; I updated commit sha1. New commits:
d7e1666 | added sides to vector space morphisms |
Branch pushed to git repo; I updated commit sha1. New commits:
f6071d1 | fixed hom when codomains are not provided, changed basis and _matrix_space to cached methods |
Branch pushed to git repo; I updated commit sha1. New commits:
4de01e3 | added a method to switch sides, finished adapting methods, fixed a bug in hom where it could guess the wrong base ring if no codomain is specified, added tests |
Setting to needs review for patchbot.
Dependencies: #31818
Branch pushed to git repo; I updated commit sha1. New commits:
443cf6a | first commit, added a pushout, now the example in the description works as intended |
a209a54 | commented the change |
9a66ea5 | changed the pushout to an error |
67fb789 | switched the fix to free modules homspaces |
25c62c1 | fixed bugs |
4d9fd9a | changed the error type |
8f17598 | added a test for the fix |
a6898b0 | merged with t/31818 |
Branch pushed to git repo; I updated commit sha1. New commits:
fa796d1 | fixed a typo |
15807ec | Merge branch 'u/rud/creating_a_module_homomorphism_with_a_matrix_may_build_the_wrong_codomain' of git://trac.sagemath.org/sage into t/31737/matrixmorphism__add_support_for_morphisms_acting_on_the_left |
dd528ed | completed a test |
da7a09b | Merge branch 'u/rud/creating_a_module_homomorphism_with_a_matrix_may_build_the_wrong_codomain' of git://trac.sagemath.org/sage into t/31737/matrixmorphism__add_support_for_morphisms_acting_on_the_left |
0548148 | changed the pushout to hom |
Author: Thomas Rüd
Reviewer: David Roe
Branch pushed to git repo; I updated commit sha1. New commits:
a19088c | fixed a test |
Branch pushed to git repo; I updated commit sha1. New commits:
4b66508 | fixed typos |
Thanks for this! I'm a bit confused by the default side
argument on line 72. I see that it defaults to side='left'
, but based on the description, it seems like side='right'
might be "mathematical default." Does this make sense or am I missing something?
Hi, it is indeed a little confusing. The "mathematical default" is indeed side='right'
, which corresponds to left-multiplication. The reason being that sage's side
is the side of the vector relative to the matrix, whereas in mathematics we almost always refer to the side of the matrix relative to the vector.
The side
argument already existed in the MatrixMorphism.matrix
method, with this choice of left/right. The methods left_kernel/right_kernel, left_eigenspaces/right_eigenspaces also work with that convention.
Now the small problem that remains is that the default is side="left"
, but the way some methods are coded are done the other way and taking the transpose. For instance, matrix.kernel
takes the transpose and calls the right_kernel
method, which feels a little off. After this ticket, methods of MatrixMorphism will call the appropriate one.
I realise this text might sound confusing, that's because it is somewhat confusing.
Branch pushed to git repo; I updated commit sha1. New commits:
2f73c05 | fixed a typo |
Branch pushed to git repo; I updated commit sha1. New commits:
58315ff | fixed some documentation |
Branch pushed to git repo; I updated commit sha1. New commits:
b49d57c | fixed more documentation |
Branch pushed to git repo; I updated commit sha1. New commits:
550a375 | fixed a test in hom |
Branch pushed to git repo; I updated commit sha1. New commits:
2999315 | fixed some bugs by adding side arguments to hecke morphisms, and morphisms of abelian varieties |
Needs rebase
Branch pushed to git repo; I updated commit sha1. New commits:
cb41278 | merged with develop |
Branch pushed to git repo; I updated commit sha1. New commits:
536aaff | removed the pushout in hom |
Branch pushed to git repo; I updated commit sha1. New commits:
c9fab37 | fixed the restrict method |
Branch pushed to git repo; I updated commit sha1. New commits:
178bac9 | fixed typo |
Morphisms between free modules over PIDs are always represented by matrices acting on the right.
The goal of this ticket is to modify matrix morphisms (
sage/modules/matrix_morphism.py
) by adding an optional keyword for left actions. This will have applications Ticket [ticket:25902] in which we build equivariant left-morphisms between G-lattices.Depends on #31818
Component: linear algebra
Author: Thomas Rüd, David Roe
Branch/Commit:
c4ebbea
Reviewer: David Roe, Thomas Rüd
Issue created by migration from https://trac.sagemath.org/ticket/31737