# kroneckerIndices -- data which classify a matrix pencil up to strict equivalence

## Synopsis

• Usage:
(L, dualL, d) = kroneckerIndices(P,x,y)
• Inputs:
• P, , a matrix of linear forms
• x,
• y,
• Outputs:
• L, a list, degrees of minimal generators of the kernel
• dualL, a list, degrees of minimal generators of the kernel of the dual
• d, a list, elementary divisors

## Description

This function gives data which classify a matrix pencil up to strict equivalence. That is, these data determine the Kronecker normal form of the pencil, up to rearranging the blocks.
 i1 : R = ZZ/101[x,y] o1 = R o1 : PolynomialRing i2 : A = matrix{{x,y,x,y},{y,x,y,x},{x,y,x,y},{y,y,y,y},{x,x,y,y}} o2 = | x y x y | | y x y x | | x y x y | | y y y y | | x x y y | 5 4 o2 : Matrix R <--- R i3 : kroneckerNormalForm(A, ChangeMatrix => {false,false}) o3 = | 0 0 0 0 | | 0 x 0 0 | | 0 y 0 0 | | 0 0 x-y 0 | | 0 0 0 x-y | 5 4 o3 : Matrix R <--- R i4 : kroneckerIndices(A,x,y) o4 = ({0}, {0, 1}, {x - y, x - y}) o4 : Sequence

## For the programmer

The object kroneckerIndices is .