#### D.11.2.10 genericity

Procedure from library `control.lib` (see control_lib).

Usage:
  genericity(M); M is a matrix/module

Return:
  list (of strings)

Purpose:
  determine parametric expressions which have been assumed to be non-zero in the process of computing the Groebner basis

Note:
  the output list consists of strings. The first string contains the variables only, whereas each further string contains a single polynomial in parameters.
  We strongly recommend to switch on the redSB and redTail options.
  The procedure is effective with the lift procedure for modules with parameters

Example:

    LIB "control.lib";
    // TwoPendula
    ring r=(0,m1,m2,M,g,L1,L2),Dt,dp;
    module RR =
    [m1*L1*Dt^2, m2*L2*Dt^2, -1, (M+m1+m2)*Dt^2],
    [m1*L1^2*Dt^2-m1*L1*g, 0, 0, m1*L1*Dt^2],
    [0, m2*L2^2*Dt^2-m2*L2*g, 0, m2*L2*Dt^2];
    module R = transpose(RR);
    module SR = std(R);
    matrix T = lift(R,SR);
    genericity(T);
    ==> [1]:
    ==>    m1,g,L1,L2
    ==> [2]:
    ==>    L1-L2
    //-- The result might be different when computing reduced bases:
    matrix T2;
    option(redSB);
    option(redTail);
    module SR2 = std(R);
    T2 =  lift(R,SR2);
    genericity(T2);
    ==> [1]:
    ==>    m1,g,L1,m2,L2
    ==> [2]:
    ==>    L1-L2

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