Singular Manual: liftenvelope

| ##### 7.5.1.0. liftenvelope Procedure from library `bimodules.lib` (see bimodules_lib). Usage: liftenvelope(M,g); M ideal/module, g poly Return: ring, the enveloping algebra of the basering R. Given a two-sided ideal M in R and a polynomial g in R this procedure returns the enveloping algebra of R. Additionally it exports a list l = C, B; where B is the left Groebner basis of the left-syzygies of M \otimes 1 and C is a vector of coefficients in the enveloping algebra of R such that psi_s(C^T *(f_1 \dots f_n)) = g. psi_s is an epimorphism of left R (X) R^{opp} modules: psi_s (s (X)_K t) = smt := (s_1 m t_1, ... , s_s m t_s) = (\psi(s_1 (X) t_1) , \dots , psi(s_s (X) t_s)) in R^s. Then psi_s(A) := (psi_s(a_{ij})) for every matrix A in Mat(n x m, R)$. Assume: The second component has to be an element of the first component. Purpose: This procedure is used for computing total divisors. Let {f_1, ..., f_n} be the generators of the first component and let the second component be called g. Then the returned list l = C, B = (b_1, ..., b_n); defines an affine set A = C + sum_i a_i b_i with (a_1,..,a_n) in the enveloping algebra of the basering R such that psi_s(a^T * (f_1 ... f_n)) = g for all a in A. For certain rings R, we csn find pure tensors within this set A, and if we do, liftenvelope() helps us to decide whether f is a total divisor of g. Note: To get list l = C, B. we set: def G = liftenvelope(); setring G; l; or l[1]; l[2];. Example:
    LIB "bimodules.lib";
    ring r = 0,(x,s),dp;
    def R = nc_algebra(1,s); setring R;
    ideal I = x*s;
    poly p = s*x*s*x;  // = (s (x) x) * x*s = (sX) * x*s
    p;
    ==> x2s2+3xs2+2s2
    def J = liftenvelope(I,p);
    setring J;
    print(l[1]);
    ==> 0
    //2s+SX = (2s (x) 1) + (1 (x) sx)
    print(l[2]);
    ==> sX-2s-SX,x-X+1,s2-2sS+S2
    // Groebnerbasis of BiSyz(I) as LeftSyz in R^{env}
    // We get : 2s+SX + ( sX - 2s -SX) = sX  - a pure tensor!!!!

User manual for Singular version 4.4.1, 2025, generated by texi2html.