Singular Manual: Basic programming

| ### A.1.1 Basic programming We show in the example below the following: define the ring `R` of characteristic 32003, variables `x,y,z`, monomial ordering `dp` (implementing F_32003[x,y,z]) list the information about `R` by typing its name check the order of the variables define the integers `a,b,c,t` define a polynomial `f` (depending on `a,b,c,t`) and display it define the jacobian ideal `i` of `f` compute a Groebner basis of `i` compute the dimension of the algebraic set defined by `i` (requires the computation of a Groebner basis) create and display a string in order to comment the result (text between quotes " "; is a 'string') load a library (see primdec_lib) compute a primary decomposition for `i` and assign the result to a list `L` (which is a list of lists of ideals) display the number of primary components and the first primary and prime components (entries of the list L[1]) implement the localization of F_32003[x,y,z] at the homogeneous maximal ideal (generated by x,y,z) by defining a ring with local monomial ordering (`ds` in place of `dp`) map i to this ring (see imap) - we may use the same name `i`, since ideals are ring dependent data compute the local dimension of the algebraic set defined by `i` at the origin (= dimension of the ideal generated by `i` in the localization) compute the local dimension of the algebraic set defined by `i` at the point (-2000,-6961,-7944) (by applying a linear coordinate transformation) For a more basic introduction to programming in SINGULAR, we refer to Getting started.
    ring R = 32003,(x,y,z),dp;
    R;
    ==> // coefficients: ZZ/32003
    ==> // number of vars : 3
    ==> //        block   1 : ordering dp
    ==> //                  : names    x y z
    ==> //        block   2 : ordering C
    x > y;
    ==> 1
    y > z;
    ==> 1
    int a,b,c,t = 1,2,-1,4;
    poly f = a*x3+b*xy3-c*xz3+t*xy2z2;
    f;
    ==> 4xy2z2+2xy3+xz3+x3
    ideal i = jacob(f);    // Jacobian Ideal of f
    ideal si = std(i);     // compute Groebner basis
    int dimi = dim(si);
    string s = "The dimension of V(i) is "+string(dimi)+".";
    s;
    ==> The dimension of V(i) is 1.
    LIB "primdec.lib";     // load library primdec.lib
    list L = primdecGTZ(i);
    size(L);               // number of prime components
    ==> 6
    L[1][1];               // first primary component
    ==> _[1]=2y2z2+y3-16001z3
    ==> _[2]=x
    L[1][2];               // corresponding prime component
    ==> _[1]=2y2z2+y3-16001z3
    ==> _[2]=x
    ring Rloc = 32003,(x,y,z),ds;   // ds = local monomial ordering
    ideal i = imap(R,i);
    dim(std(i));
    ==> 1
    map phi = R, x-2000, y-6961, z-7944;
    dim(std(phi(i)));
    ==> 0

User manual for Singular version 4.3.2, 2023, generated by texi2html.