phi=ringStructure(M)
Let M be a sub-module of the free module $R^k$, where $R=K[x_0,\ldots,x_n]$ for some field K. We view $R^k=Re_0+Re_1+\cdots+Re_{k-1}$ as a ring with component-wise multiplication (i.e. $e_0,\ldots,e_{k-1}$ are idempotents). Suppose further that the identity element of $R^k$, namely $e=e_0+\cdots+e_{k-1}$, is an element of M. Then the M is also a ring; this method creates a map whose image is M with its ring structure.
|
|
|
|
|
The target of the map is $R^k$ as a ring.
|
|
As above, write $e$ for the identity of $R^k$. Then the generators for $M$ as a sub-ring of $R^k$ are the generators of $M$ as an $R$-module (other than $e$), together with the generators $x_0e,x_1e,\ldots,x_ne$. The source of the map created by ringStructure(M) is a polynomial ring in variables $Y_0,\ldots,Y_n,Y_{n+1},\cdots,Y_m$, where $Y_0,\cdots,Y_n$ correspond to the generators $x_0e,\ldots,x_ne$ and $Y_{n+1},\cdots,Y_m$ correspond to the usual generators of M (except for e, if it happens to be a generator of M).
|
|
|
The kernel of the map created by ringStructure(M) is the ideal of relations on the ring generators. If M is graded, the grading on the source of the map matches up with the grading on M.
|
|
|
|
It often happens that module generators are redundant as ring generators. These can be eliminated with the option Trim=>true. The remaining variables in the source ring retain their indexing from the output of ringStructure without the Trim=>true option.
|
|
|
|
|
|
|
|
If $\Delta$ is a simplicial complex, write $\Delta_0$ for its vertices and $K[\Delta]$ for the Stanley-Reisner ring of $\Delta$, which is the quotient of the polynomial ring $K[X_v:v\in\Delta_0]$ by monomials corresponding to non-faces. Then, as a ring, $C^0(\Delta)$ is isomorphic to the so-called affine Stanley Reisner ring $\frac{K[\Delta]}{(1-\sum_{v} X_v)K[\Delta]}$. If $\Delta$ is a cone, as above, then the affine Stanley Reisner ring is just the Stanley Reisner ring of the decone of $\Delta$. In the above example the decone is an empty triangle, so $C^0(\Delta)$ should be isomorphic to a polynomial ring in three variables modulo the ideal generated by the product of the variables. The isomorphism can be seen by the following change of variables. Alternatively, the ring structure of $C^0(\Delta)$ with this preferred set of generators is obtained with the command stanleyReisner.
|
|
To obtain the sub-ring of $R^k$ which is generated by a specific set of module generators of M, i.e. without adding $x_0e,\ldots,x_ne$ as ring generators, use the option VariableGens=>false. This may be done if the user has a particular choice of ring generators they would like to use - for instance the Courant functions. See courantFunctions.
We may also use ringStructure to create the ring of splines for more general spline modules created using the generalizedSplines method.
|
|
|
|
|
The Trim option will not work for quotients of polynomial rings over ZZ or ZZ modulo a non-prime integer.
The object ringStructure is a method function with options.