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.