# PolyExt -- Ext groups between a holonomic module and a polynomial ring

## Synopsis

• Usage:
PolyExt M, PolyExt I; RatExt(i,M), RatExt(i,I)
• Inputs:
• M, , over the Weyl algebra D
• I, an ideal, which represents the module M = D/I
• i, an integer, nonnegative
• Optional inputs:
• Strategy => ..., default value Schreyer,
• Outputs:
• or , the Ext^i group(s) between holonomic M and the polynomial ring

## Description

The Ext groups between a D-module M and the polynomial ring are the derived functors of Hom, and are finite-dimensional vector spaces over the ground field when M is holonomic.

The algorithm used appears in the paper 'Polynomial and rational solutions of holonomic systems' by Oaku-Takayama-Tsai (2000). The method is to combine isomorphisms of Bjork and Kashiwara with the restriction algorithm.

 i1 : W = QQ[x, D, WeylAlgebra=>{x=>D}] o1 = W o1 : PolynomialRing, 1 differential variables i2 : M = W^1/ideal(x^2*D^2) o2 = cokernel | x2D2 | 1 o2 : W-module, quotient of W i3 : PolyExt(M) 2 o3 = HashTable{0 => QQ } 2 1 => QQ o3 : HashTable

## Caveat

Does not yet compute explicit representations of Ext groups such as Yoneda representation.

• PolySols -- polynomial solutions of a holonomic system
• RatExt -- Ext(holonomic D-module, polynomial ring localized at the sigular locus)
• DExt -- Ext groups between holonomic modules
• Dintegration -- integration modules of a D-module

## Ways to use PolyExt :

• "PolyExt(Ideal)"
• "PolyExt(Module)"
• "PolyExt(ZZ,Ideal)"
• "PolyExt(ZZ,Module)"

## For the programmer

The object PolyExt is .