# fromDual -- Ideal from inverse system

## Synopsis

• Usage:
M = fromDual f
• Inputs:
• f, ,
• f, ,
• Optional inputs:
• DividedPowers => ..., default value true
• Outputs:
• M, , whose image is the inverse system

## Description

The matrix (or ring element) f is interpreted as an element of the linear dual of the base polynomial ring, where the monomial in f are interpreted as monomials in the divided power basis (the dual basis of the monomial basis of ring f. Thus

fromDual f = gens inverseSystem (f, DividedPowers => true).

See the documentation nodes for InverseSystems for the theory, and inverseSystem for the function. Note that the operation of fromDual is not equivariant with respect to the general linear group, acting by change of basis. This not a bug, but follows because fromDual uses the divided power basis. If equivariant behavior is desired, use the option DividedPowers=>false (which is the default behavior of inverseSystem):

 i1 : S = ZZ/101[x,y] o1 = S o1 : PolynomialRing i2 : f1 = x^2 2 o2 = x o2 : S i3 : f2 = (x+y)^2 2 2 o3 = x + 2x*y + y o3 : S i4 : betti res ideal fromDual f1 0 1 2 o4 = total: 1 2 1 0: 1 1 . 1: . . . 2: . 1 1 o4 : BettiTally i5 : betti res ideal fromDual f2 0 1 2 o5 = total: 1 2 1 0: 1 . . 1: . 2 . 2: . . 1 o5 : BettiTally i6 : betti res (I = ideal fromDual(f2, DividedPowers => false)) 0 1 2 o6 = total: 1 2 1 0: 1 1 . 1: . . . 2: . 1 1 o6 : BettiTally i7 : I == inverseSystem (f2, DividedPowers => false) o7 = true i8 : inverseSystem (f2, DividedPowers => true) 2 2 2 o8 = ideal (x*y - 2y , x - y ) o8 : Ideal of S i9 : ideal fromDual(f2, DividedPowers => false) 3 3 o9 = ideal (x - y, x , y ) o9 : Ideal of S i10 : ideal fromDual(f2, DividedPowers => true) 2 2 2 3 3 o10 = ideal (x*y - 2y , x - y , x , y ) o10 : Ideal of S

## Caveat

The Base ring of the input must be a standard graded polynomial ring over a field.

Logically, the output of fromDual should be an ideal, not a matrix, but the original function was converted from the classic Macaulay, where this distinction was not made.

## Ways to use fromDual :

• "fromDual(Matrix)"
• "fromDual(RingElement)"

## For the programmer

The object fromDual is .