# multVar -- extract the sets of multiplicative variables for each generator (in several contexts)

## Synopsis

• Usage:
m = multVar(J) or m = multVar(C,n) or m = multVar(F)
• Inputs:
• Outputs:
• m, a list, list of sets of variables of the polynomial ring

## Description

If the argument of multVar is an instance of the type InvolutiveBasis, then the i-th set in m consists of the multiplicative variables for the i-th generator in J.

If the arguments of multVar are and an integer, where C is the result of either janetResolution or resolution called with the optional argument 'Strategy => Involutive', then the i-th set in m consists of the multiplicative variables for the i-th generator in the n-th differential of C.

If the argument of multVar is an instance of the type FactorModuleBasis, then the i-th set in m consists of the multiplicative variables for the i-th monomial cone in F.

 i1 : R = QQ[x,y]; i2 : I = ideal(x^3,y^2); o2 : Ideal of R i3 : J = janetBasis I; i4 : multVar J o4 = {set {y}, set {y}, set {x, y}, set {y}} o4 : List
 i5 : R = QQ[x,y,z]; i6 : I = ideal(x,y,z); o6 : Ideal of R i7 : C = res(I, Strategy => Involutive) 1 3 3 1 o7 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o7 : ChainComplex i8 : multVar(C, 2) o8 = {set {x, y, z}, set {x, y, z}, set {y, z}} o8 : List
 i9 : R = QQ[x,y,z]; i10 : M = matrix {{x*y,x^3*z}}; 1 2 o10 : Matrix R <--- R i11 : J = janetBasis M +---+---------+ o11 = |x*y|{z, y} | +---+---------+ | 2 | | |x y|{z, y} | +---+---------+ | 3 | | |x z|{z, x} | +---+---------+ | 3 | | |x y|{z, y, x}| +---+---------+ o11 : InvolutiveBasis i12 : F = factorModuleBasis J +--+------+ o12 = |1 |{z, y}| +--+------+ |x |{z} | +--+------+ | 2| | |x |{z} | +--+------+ | 3| | |x |{x} | +--+------+ o12 : FactorModuleBasis i13 : basisElements F o13 = | 1 x x2 x3 | 1 4 o13 : Matrix R <--- R i14 : multVar F o14 = {set {y, z}, set {z}, set {z}, set {x}} o14 : List

• janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• janetMultVar -- return table of multiplicative variables for given module elements as determined by Janet division
• pommaretMultVar -- return table of multiplicative variables for given module elements as determined by Pommaret division
• basisElements -- extract the matrix of generators from an involutive basis or factor module basis
• janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• Involutive -- compute a (usually non-minimal) resolution using involutive bases
• factorModuleBasis -- enumerate standard monomials

## Ways to use multVar :

• "multVar(ChainComplex,ZZ)"
• "multVar(FactorModuleBasis)"
• "multVar(InvolutiveBasis)"

## For the programmer

The object multVar is .