# makeCyclic -- finds a cyclic generator of a D-module

## Synopsis

• Usage:
makeCyclic M
• Inputs:
• M, , that specifies a map such that coker M is a holonomic D-module
• Outputs:
• H, , where H.Generator is a cyclic generator and H.AnnG is the annihilator ideal of this generator

## Description

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

## Caveat

The module M must be holonomic.