Splitting Lemma 

SplitSysUnivariate splits (whenever possible) the input matrix in the specified variable up to the order chosen (6 in the following example). It returns the dimension of the first square block, the transformation matrix, and the equivalent block-digonalised system. 

> A := `/`(`*`(Matrix(2, 2, [`+`(`*`(2, `*`(`^`(t, 3))), 2), `+`(`-`(`*`(2, `*`(`^`(t, 2)))), `-`(2)), -2, `+`(`-`(`*`(`^`(t, 3))), `-`(`*`(4, `*`(t))), 2)])), `*`(`^`(t, 4))); 1; r, T, B := SplitSysUni...
 

 

Matrix(%id = 18446744078208211054)
1, Matrix(%id = 18446744078222450190), Matrix(%id = 18446744078222449110)
1, Matrix(%id = 18446744078222450190), Matrix(%id = 18446744078222449110)
(1.1)
 

> A := Matrix(3, 3, [`/`(1, `*`(z)), `/`(1, `*`(`^`(z, 4))), `+`(`-`(`/`(`*`(`+`(`*`(`^`(z, 2)), `-`(1))), `*`(`^`(z, 4))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(z, 2))), 1)), `*`(`^`(z, 4))))), 0, `+`(`...
 

 

Matrix(%id = 18446744078222452246)
2, Matrix(%id = 18446744078222497182), Matrix(%id = 18446744078222496342) (1.2)
 

SplitLemmaUnivariate decouples the equivalent system in the output: 

> r, T, B11, B22 := SplitLemmaUnivariate(A, z, 4); 1
 

2, Matrix(%id = 18446744078208206238), Matrix(%id = 18446744078208206358), Matrix(%id = 18446744078208206478) (1.3)
 

> A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
 

 

Matrix(%id = 18446744078229014758)
1, Matrix(%id = 18446744078229021750), Matrix(%id = 18446744078096939838)
1, Matrix(%id = 18446744078229021750), Matrix(%id = 18446744078096939838)
1, Matrix(%id = 18446744078229021750), Matrix(%id = 18446744078096939838)
(1.4)
 

> A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
 

 

Matrix(%id = 18446744078229018014)
3, Matrix(%id = 18446744078219407958), Matrix(%id = 18446744078221216934) (1.5)
 

The following system is not decoupled via the Splitting Lemma: 

> A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
A := Matrix(6, 6, [`+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 2))), 1)), `*`(`^`(x, 7))))), `+`(`-`(`/`(`*`(`+`(`*`(2, `*`(`^`(x, 5))), `*`(4, `*`(`^`(x, 2))))), `*`(`^`(x, 7))))), 0, 0, `/`(1, `*`(x)), `+...
 

 

Matrix(%id = 18446744078096940078)
6, Matrix(%id = 18446744078229012598), Matrix(%id = 18446744078229020414) (1.6)
 

>
 

> A := `/`(`*`(Matrix(4, 4, [`+`(`-`(`*`(2, `*`(x))), 2), `+`(`*`(6, `*`(`^`(x, 2))), `-`(x)), `+`(`*`(2, `*`(`^`(x, 2))), `-`(`*`(5, `*`(x))), 5), `*`(`^`(x, 2)), `+`(`*`(`^`(x, 2)), x), x, `+`(`*`(`^`...
A := `/`(`*`(Matrix(4, 4, [`+`(`-`(`*`(2, `*`(x))), 2), `+`(`*`(6, `*`(`^`(x, 2))), `-`(x)), `+`(`*`(2, `*`(`^`(x, 2))), `-`(`*`(5, `*`(x))), 5), `*`(`^`(x, 2)), `+`(`*`(`^`(x, 2)), x), x, `+`(`*`(`^`...
 

 

 

Matrix(%id = 18446744078222499702)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078208204798), Matrix(%id = 18446744078208210814)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
3, Matrix(%id = 18446744078223672734), Matrix(%id = 18446744078223672854), Matrix(%id = 18446744078223672974)
(1.7)
 

>