## Description

Given a regular element

* f * in

* R *,

* R * a regular ring, a

*matrix factorisation* of

* f * is a pair

* (A,B) * of square matrices of the same size over

* S * such that

* AB = fI = BA *, where

* I * is the identity matrix of the same dimension. Matrix factorisations of

* f * are equivalent to maximal Cohen-Macaulay (MCM) modules on the hypersurface defined by

* f *: given a matrix factorisation

* (A,B) * of

*f*, the cokernel of

* A * is an MCM-module over

* S/(f) *, and all MCM-modules over

* S/(f) * arise in this way.

Let * X * be a germ of a hypersurface at a point 0 and * M*_{0} be a maximal Cohen-Macaulay module over * X *. Let * Y → Σ* a flat map of germs of affine varieties at 0 whose fibre over 0 of *Σ* is isomorphic to *X*. A *deformation* of * M*_{0} (in the deformation theory defined by the map * Y → Σ*) is a pair * (S,M) * with * S * a germ equipped with a map * S → Σ* and * M * a module over * S ×*_{Σ} Y flat over * S *, whose restriction to * 0 ×*_{Σ} X is isomorphic to * M*_{0} .

A deformation * (T,M’) * is *induced from** (S,M) * if there exists a map * φ:T → S * commuting with the maps * T → Σ* and * S → Σ* and such that * M’ * is isomorphic to * (φ×*_{Σ} id_{Y})*M .

The deformation * (S,M) * is *versal* if any deformation of * M*_{0} is induced from * (S,M) *.

In this package, a germ is represented as the coordinate ring R of an affine variety and the distinguished point 0 of a germ is assumed to be the ideal generated by the variables of R. It is an error if the ideal generated by the variables of R is not prime, e.g. if it is all of R.

This package contains two entry points. One interface may be used only in the *absolute* case, where * Σ* is a reduced point, and the module * M*_{0} is deformed over * Y * only. The other interface may be used when * Σ* is the base space of a nontrivial deformation of * X * and * Y * is the total space of the deformation. In such a case, * M*_{0} is deformed also along the given deformation of * X *.

The implementation has been designed to take advantage of graded structure when available. Thus the user is highly recommended to assign degrees to the inputs so as to make the rings, homomorphism, and deformation module homogeneous when possible. Doing so may greatly improve performance.