# completeMatrix -- completes a unimodular matrix over a polynomial ring or Laurent polynomial ring to a square invertible matrix

## Synopsis

• Usage:
M = completeMatrix U
• Inputs:
• U, , a unimodular matrix over a polynomial ring with coefficients in QQ, ZZ, or ZZ/p for p a prime integer, or a Laurent polynomial ring over QQ or ZZ/p
• Optional inputs:
• Verbose (missing documentation) => an integer, default value 0, which controls the level of output of the method (0, 1, 2, 3, or 4)
• Outputs:
• M, , which completes U to a square invertible matrix

## Description

Given a unimodular m \times \ n matrix over a polynomial ring with coefficients in QQ, ZZ, or ZZ/p with p a prime integer, this method returns the inverse of the matrix returned by qsAlgorithm. The first m rows or columns (depending on whether m < n or m > n) of this matrix are equal to U and the determinant of the matrix is a unit in the polynomial ring.

 i1 : R = ZZ/101[x,y] o1 = R o1 : PolynomialRing i2 : U = 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 U o3 = true i4 : M = completeMatrix U o4 = {0} | x2y+1 x+y-2 2xy | {0} | 50x 0 -1 | {1} | 0 1 0 | 3 3 o4 : Matrix R <--- R i5 : det M o5 = 1 o5 : R

The method can also be used over a Laurent polynomial ring with coefficients in QQ or ZZ/p for p a prime integer. The following example demonstrates how to construct a Laurent polynomial ring and also how to use the method on a unimodular matrix over the ring.

 i6 : R = QQ[x,Inverses => true,MonomialOrder => Lex] o6 = R o6 : PolynomialRing i7 : U = matrix{{3*x^-1-2-2*x+2*x^2, 3*x^-1-2*x,2*x},{6*x^-1+25-23*x-16*x^2+20*x^3, 6*x^-1+29-4*x-20*x^2,2+4*x+20*x^2}} o7 = | 2x2-2x-2+3x-1 -2x+3x-1 2x | | 20x3-16x2-23x+25+6x-1 -20x2-4x+29+6x-1 20x2+4x+2 | 2 3 o7 : Matrix R <--- R i8 : M = completeMatrix U o8 = | 2x2-2x-2+3x-1 -2x+3x-1 2x | | 20x3-16x2-23x+25+6x-1 -20x2-4x+29+6x-1 20x2+4x+2 | | -1/270x2+1/108x-1/540-1/180x-1 1/270x-1/180-1/180x-1 -1/270x+1/180 | 3 3 o8 : Matrix R <--- R i9 : det M 1 o9 = --- 180 o9 : R

## See also

• qsAlgorithm -- computes a solution to the unimodular matrix problem

## Ways to use completeMatrix :

• "completeMatrix(Matrix)"

## For the programmer

The object completeMatrix is .