next | previous | forward | backward | up | top | index | toc | Macaulay2 website
AlgebraicSplines :: stanleyReisnerPresentation

stanleyReisnerPresentation -- creates a ring map whose image is the sub-ring of $C^0(\Delta)$ generated by $C^r(\Delta)$. If $\Delta$ is simplicial, $C^0(\Delta)$ is the Stanley Reisner ring of $\Delta$.

Synopsis

Description

This method creates a ring map whose image is the sub-ring of $C^r$ splines expressed in terms of $C^0$ generators. If $\Delta$ is simplicial, $C^0(\Delta)$ is expressed as the Stanley Reisner ring.

i1 : V={{0,0},{0,1},{-1,-1},{1,0}};
i2 : F={{0,1,2},{0,2,3},{0,1,3}};
i3 : R=QQ[x,y];
i4 : phi=stanleyReisnerPresentation(V,F,1,Homogenize=>false,BaseRing=>R)

          QQ[X ..X ]
              0   2                                       3     2       2    3     2
o4 = map (----------, QQ[Y ..Y ], {- X  + X , X  - X , - X  + 3X X , X X  - X  + 2X X })
            X X X         0   3       1    2   0    1     1     1 2   0 1    1     1 2
             0 1 2

             QQ[X ..X ]
                 0   2
o4 : RingMap ---------- <--- QQ[Y ..Y ]
               X X X             0   3
                0 1 2
i5 : H=source phi;
i6 : scan(gens H, g->print phi(g))--see the expression of each generator in the stanley reisner ring
- X  + X
   1    2
X  - X
 0    1
   3     2
- X  + 3X X
   1     1 2
   2    3     2
X X  - X  + 2X X
 0 1    1     1 2

The kernel of the map is the same as the kernel of the map returned by ringStructure, but the generators are expressed differently.

i7 : M=splineModule(V,F,1,Homogenize=>false,BaseRing=>R);
i8 : phi1=ringStructure(M);

                            QQ[e ..e , x..y]
                                0   2
o8 : RingMap --------------------------------------------- <--- QQ[Y ..Y ]
                                 2        2        2                0   3
             (e e , e e , e e , e  - e , e  - e , e  - e )
               0 1   0 2   1 2   0    0   1    1   2    2
i9 : H=source phi; H1=source phi1;
i11 : gens H

o11 = {Y , Y , Y , Y }
        0   1   2   3

o11 : List
i12 : gens H1

o12 = {Y , Y , Y , Y }
        0   1   2   3

o12 : List
i13 : psi=map(H,H1,gens H);--phi1 has "same" source as H, but they are viewed as different rings by Macaulay2

o13 : RingMap H <--- H1
i14 : scan(gens H1,g->print {g,phi1(g),phi(psi(g))})--phi expresses generators of M in the Stanley Reisner ring, while phi1 expresses generators in the free module R^3
{Y , e x + e x + e x, - X  + X }
  0   0     1     2      1    2
{Y , e y + e y + e y, X  - X }
  1   0     1     2    0    1
        3         2       3     3     2
{Y , e x  + 3e x*y  - 2e y , - X  + 3X X }
  2   0       1         1       1     1 2
        2          2      3     2    3     2
{Y , e x y + 2e x*y  - e y , X X  - X  + 2X X }
  3   0        1        1     0 1    1     1 2
i15 : (ker phi)==psi(ker phi1)--the kernels are the same

o15 = true

The option Trim=>true may be used to get a minimal number of ring generators.

i16 : V={{0,0,0},{1,0,0},{0,1,0},{0,0,1},{-1,0,0},{0,-1,0},{0,0,-1}};
i17 : F={{0,1,2,3},{0,1,2,6},{0,2,3,4},{0,2,4,6},{0,1,3,5},{0,3,4,5},{0,4,5,6},{0,1,5,6}};--centrally triangulated octahedron
i18 : S=QQ[x,y,z];
i19 : stanleyReisnerPresentation(V,F,1,Homogenize=>false,BaseRing=>S)

               QQ[X ..X ]
                   0   5                                                2   2   2   2 2   2 2   2 2   2 2 2
o19 = map (------------------, QQ[Y ..Y ], {X  - X , X  - X , X  - X , X , X , X , X X , X X , X X , X X X })
           (X X , X X , X X )      0   9     0    3   1    4   2    5   2   1   3   0 1   1 2   0 2   0 1 2
             2 5   1 4   0 3

                  QQ[X ..X ]
                      0   5
o19 : RingMap ------------------ <--- QQ[Y ..Y ]
              (X X , X X , X X )          0   9
                2 5   1 4   0 3
i20 : stanleyReisnerPresentation(V,F,1,Homogenize=>false,BaseRing=>S,Trim=>true)

               QQ[X ..X ]
                   0   5                                                2   2   2
o20 = map (------------------, QQ[Y ..Y ], {X  - X , X  - X , X  - X , X , X , X })
           (X X , X X , X X )      0   5     0    3   1    4   2    5   2   1   3
             2 5   1 4   0 3

                  QQ[X ..X ]
                      0   5
o20 : RingMap ------------------ <--- QQ[Y ..Y ]
              (X X , X X , X X )          0   5
                2 5   1 4   0 3

The geometry effects $C^1$ simplicial splines, although it doesn't effect $C^0$ simplicial splines.

i21 : V'={{0,0,0},{1,0,0},{0,1,0},{1,1,1},{-1,0,0},{0,-1,0},{0,0,-1}}; --centrally triangulated octahedron that has been perturbed
i22 : F={{0,1,2,3},{0,1,2,6},{0,2,3,4},{0,2,4,6},{0,1,3,5},{0,3,4,5},{0,4,5,6},{0,1,5,6}};
i23 : stanleyReisnerPresentation(V',F,1,Homogenize=>false,BaseRing=>S,Trim=>true)

               QQ[X ..X ]
                   0   5                                                          2   2      2     3     2        2    3     2        2    2        2    3     2         2    3   2 2      2 2
o23 = map (------------------, QQ[Y ..Y ], {X  + X  - X , X  + X  - X , X  - X , X , X X  - X X , X  + 3X X , 2X X  + X  - 2X X  + X X  - X X , 3X X  + X  - 3X X  + 3X X  - X , X X X  - X X X })
           (X X , X X , X X )      0   8     0    2    3   1    2    4   2    5   2   1 2    1 5   1     1 2    0 2    2     2 3    2 3    3 5    0 2    2     2 3     2 3    3   0 1 2    0 1 5
             2 5   1 4   0 3

                  QQ[X ..X ]
                      0   5
o23 : RingMap ------------------ <--- QQ[Y ..Y ]
              (X X , X X , X X )          0   8
                2 5   1 4   0 3

If $\Delta$ is not simplicial, $C^0(\Delta)$ does not have the same nice structure.

i24 : V={{0,1},{-1,-1},{1,-1},{0,2},{-2,-2},{2,-2}};
i25 : F={{0,1,2},{0,1,3,4},{0,2,3,5},{1,2,4,5}}; --symmetric triangular prism--
i26 : S=QQ[x,y,z];
i27 : stanleyReisnerPresentation(V,F,1,BaseRing=>S,Trim=>true)

                                               QQ[X ..X ]
                                                   0   3                                                                  2 2          2     2 2          2          2        3       3        3     4     2 2      2 2         2        3       3     4        2 2          2       2 2          2           2        3         3         3       4
o27 = map (---------------------------------------------------------------------------------, QQ[Y ..Y ], {X , X , X , 36X X  + 36X X X  - 6X X  + 36X X X  + 30X X X  - 24X X  - 6X X  - 10X X  + 3X , 12X X  - 18X X  - 6X X X  + 14X X  + 2X X  - 3X , - 612X X  - 36X X X  + 966X X  - 36X X X  + 354X X X  + 24X X  - 762X X  - 118X X  + 165X })
             2         3       2         2         2 2     2 2         2       3      3    4      0   5     0   1   2     0 3      0 1 3     1 3      0 2 3      1 2 3      0 3     1 3      2 3     3     0 3      1 3     1 2 3      1 3     2 3     3        0 3      0 1 3       1 3      0 2 3       1 2 3      0 3       1 3       2 3       3
           4X X X  - 4X X  + 4X X X  - 4X X X  - 4X X  + 8X X  + 4X X X  - 5X X  - X X  + X
             0 1 3     1 3     0 2 3     1 2 3     0 3     1 3     1 2 3     1 3    2 3    3

                                                  QQ[X ..X ]
                                                      0   3
o27 : RingMap --------------------------------------------------------------------------------- <--- QQ[Y ..Y ]
                2         3       2         2         2 2     2 2         2       3      3    4          0   5
              4X X X  - 4X X  + 4X X X  - 4X X X  - 4X X  + 8X X  + 4X X X  - 5X X  - X X  + X
                0 1 3     1 3     0 2 3     1 2 3     0 3     1 3     1 2 3     1 3    2 3    3

See also

Ways to use stanleyReisnerPresentation :

For the programmer

The object stanleyReisnerPresentation is a method function with options.