# isUnimodular -- determines if a given matrix is unimodular

## Synopsis

• Usage:
isUnimodular M
• Inputs:
• M, , a matrix over a polynomial ring
• Outputs:

## Description

An m \times \ n matrix over a polynomial ring is unimodular if its maximal minors generate the entire ring. If m \leq \ n then this property is equivalent to the matrix being right-invertible and if m \geq \ n then this property is equivalent to the matrix being left-invertible.

 i1 : R = QQ[x,y,z] o1 = R o1 : PolynomialRing i2 : A = matrix{{x^2*y+1,x+y-2,2*x*y}} o2 = | x2y+1 x+y-2 2xy | 1 3 o2 : Matrix R <--- R i3 : isUnimodular A o3 = true i4 : B = matrix{{x*y+x*z+y*z-1},{x^2+y^2}, {y^2+z^2}, {z^2}} o4 = | xy+xz+yz-1 | | x2+y2 | | y2+z2 | | z2 | 4 1 o4 : Matrix R <--- R i5 : isUnimodular B o5 = true i6 : I = ideal(x^2,x*y,z^2) 2 2 o6 = ideal (x , x*y, z ) o6 : Ideal of R i7 : isUnimodular presentation module I o7 = false