You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The original implementation on this package included a RingWithOperator class and structures where just 1 operator was available. There was an attempt to include this in an older version of the softwre, but the raise of numerous compatibility issues indicated that a refactoring of the package was necessary and a more systematic approach was needed.
This is the first feature the software must implement and it is critical that all the options regarding these type of rings are completed before moving to any other issue.
Formal definitions
Let $R$ be a ring and $\sigma: R \rightarrow R$ a additive homomorphism (i.e., for all $r,s\in R$ we have $\sigma(r+s) = \sigma(r) + \sigma(s)$. Then we can define the extended ring $R$ with operator $\sigma$ as the pair $(R, \sigma)$ and view is as a complete entity. Hence all the elements of $R$ will know about the operation and this operation should be performed automatically.
The next natural extension (which is necessary almost instantly for useful examples) is when we add several operators at once. Let $\sigma_1,\ldots,\sigma_n$ be additive homomorphisms of $R$ that commute (i.e., for all $i,j$ we have $\sigma_i \circ \sigma_j = \sigma_j \circ \sigma_i$. Then, we can consider the extended ring $R$ with operators $\sigma_1,\ldots,\sigma_n$ as the pair $(R, (\sigma_1,\ldots,\sigma_n))$.
In this notation, we have that $(R,\sigma) = (R,(\sigma))$.
Special cases
There are three special cases of operators (mainly depending on how they behave w.r.t. the multiplication in the ring $R$) that are of particular interest for the many algorithms that are developed for this type of operators:
Difference or Shift operators: an operator $\sigma$ is a difference (or shift) operator if $\sigma$ is a ring homomorphism, i.e., for all $r,s \in R$, $\sigma(rs) = \sigma(r)\sigma(s)$.
Differential operators: an operator $\partial$ is a differential operator if it satisfies the Leibniz rule, i.e., for all $r,s\in R$$\partial(rs) = \partial(r) s + r \partial(s)$.
$\sigma$-skew derivations: an operator $\delta$ is a $\sigma$-skew derivation w.r.t. a ring homomorphism $\sigma$ if for all $r,s\in R$, $\delta(rs) = \delta(r) s + \sigma(r)\delta(s)$.
The ring of constants
For any of these operators, there is a subring $C\subset R$ called the ring of constants. This definition depends on the type of operator, but it can be paraphrased as follows: the constants are the biggest ring $C \subset R$ such that the operator $\sigma$ is a $C$-linear mapping.
By definition, a map is $C$-linear if for all $c \in C$ and $r,s \in R$ it holds:
$\sigma(cr) = c\sigma(r)$,
$\sigma(r+s) = \sigma(r) + \sigma(s)$.
Hence, the fact that an operator is $C$-linear implies the following for each of the particular cases:
Difference operator $\sigma$: for all $c \in C$, $\sigma(c) = c$.
Differential operator $\partial$: for all $c \in C$, $\partial(c) = 0$.
$\sigma$-skew derivation$\delta$: for all $c \in C$, $\delta(c) = 0$.
Goals of the issue:
Include a description of a new Sage category for Rings with Operators.
Include a description of the element and morphism classes for the new category.
Code a checker to see whether a map is a shift, derivation or skew-derivation (removed goal: the type is given by the user)
Implement a class for wrapping or extend existing rings with special maps.
Allow the framework of derivation_module of SageMath for the specific case of derivations (removed goal: we assume the derivation module exist for the ring when using derivations)
Allow the computation (given by the user) of the constant ring.
Provide tests for difference operators.
Provide tests for differential operators.
Provide tests for skew-derivations (removed goal: the setting is ready, but there is no implementation for skew-derivations)
Provide tests for multiple operators in 1 ring.
The text was updated successfully, but these errors were encountered:
The original implementation on this package included a
RingWithOperator
class and structures where just 1 operator was available. There was an attempt to include this in an older version of the softwre, but the raise of numerous compatibility issues indicated that a refactoring of the package was necessary and a more systematic approach was needed.This is the first feature the software must implement and it is critical that all the options regarding these type of rings are completed before moving to any other issue.
Formal definitions
Let$R$ be a ring and $\sigma: R \rightarrow R$ a additive homomorphism (i.e., for all $r,s\in R$ we have $\sigma(r+s) = \sigma(r) + \sigma(s)$ . Then we can define the extended ring $R$ with operator $\sigma$ as the pair $(R, \sigma)$ and view is as a complete entity. Hence all the elements of $R$ will know about the operation and this operation should be performed automatically.
The next natural extension (which is necessary almost instantly for useful examples) is when we add several operators at once. Let$\sigma_1,\ldots,\sigma_n$ be additive homomorphisms of $R$ that commute (i.e., for all $i,j$ we have $\sigma_i \circ \sigma_j = \sigma_j \circ \sigma_i$ . Then, we can consider the extended ring $R$ with operators $\sigma_1,\ldots,\sigma_n$ as the pair $(R, (\sigma_1,\ldots,\sigma_n))$ .
In this notation, we have that$(R,\sigma) = (R,(\sigma))$ .
Special cases
There are three special cases of operators (mainly depending on how they behave w.r.t. the multiplication in the ring$R$ ) that are of particular interest for the many algorithms that are developed for this type of operators:
The ring of constants
For any of these operators, there is a subring$C\subset R$ called the ring of constants. This definition depends on the type of operator, but it can be paraphrased as follows: the constants are the biggest ring $C \subset R$ such that the operator $\sigma$ is a $C$ -linear mapping.
By definition, a map is$C$ -linear if for all $c \in C$ and $r,s \in R$ it holds:
Hence, the fact that an operator is$C$ -linear implies the following for each of the particular cases:
Goals of the issue:
category
for Rings with Operators.derivation_module
of SageMath for the specific case of derivations (removed goal: we assume the derivation module exist for the ring when using derivations)The text was updated successfully, but these errors were encountered: