It is known that every holonomic module is cyclic and there is an algorithm for computing a cyclic generator.
i1 : makeWA(QQ[x]) o1 = QQ[x, dx] o1 : PolynomialRing, 1 differential variables |
i2 : M = matrix {{dx,0,0},{0,dx,0},{0,0,dx}} -- coker M = QQ[x]^3
o2 = | dx 0 0 |
| 0 dx 0 |
| 0 0 dx |
3 3
o2 : Matrix (QQ[x, dx]) <--- (QQ[x, dx])
|
i3 : h = makeCyclic M
3
o3 = HashTable{AnnG => ideal dx }
Generator => | x2 |
| x |
| 1 |
o3 : HashTable
|
The module M must be holonomic.
The object makeCyclic is a method function.