TransWikia.com

How to say a variable is invertible in Macaulay2?

Mathematics Asked by HLEE on September 14, 2020

I’m a very beginner in Macaulay2, so I apologize if this question is too trivial…

I’m using Macaulay2 for a computation involving over $30$ variables. Roughly speaking I have a $4times 4$ matrix where entries are polynomials while coefficients are also variables. It’s (minor) determinants give certain conditions and should simplify the form of the matrix.

I’m trying to solve this by creating a huge ring with many variables, compute an (again huge) ideal generated by the given conditions, and use "trim" to express the ideal in a simple way.

One important part of this computation is that some of the variables are invertible, like say $x$ is invertible if I know $xy=0$ , then $y=0$. I tried to put this condition by adding one more auxiliary variable, say $z$ , and give the condition $xz-1 = 0$ (as what we usually do in commutative algebra).

However, I found that Macaulay2 does not do this job; when it has $xy$ in the ideal, it does not provide $y$ in the ideal and so the set of generators does not get simplified well.

Are there some other way to put this condition, so that Macaulay2 reflects the invertibility in its computation?

One Answer

Here is a way to turn an indeterminate into a unit, however I can't say if it will be enough to do what you want to do.

Declare a ring in the indeterminate x which you want to invert, say R=QQ[x], take its fraction field F=frac R. Now you can test if x is a unit in F with isUnit x, and the returned answer is True. Now x will be a unit in any ring S=F[y,z,...].

Note however that something as simple as roots(x*y) will not work since the expected ring is one of ZZ, QQ, RR or CC.

Here is a small example in which everything works as intended

A=QQ[x]; B=frac A; R=B[y]; (note that something like R=frac(QQ[x])[y] or R=(frac(QQ[x]))[y] will not work properly, i.e. it will not consider x as a unit)

isUnit x returns True

isUnit y returns False (sanity check)

gens ideal(x) still returns ideal generated by x, however

gens gb ideal(x) returns ideal generated by 1.

Correct answer by Randy Marsh on September 14, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP