*Bruns* is a package of functions for transforming syzygies.

A well-known paper of Winfried Bruns, entitled **”Jede” freie Auflösung ist freie Auflösung eines drei-Erzeugenden Ideals ** (J. Algebra 39 (1976), no. 2, 429-439), shows that every second syzygy module is the second syzygy module of an ideal with three generators.

The general context of this result uses the theory of ”basic elements”, a commutative algebra version of the general position arguments of the algebraic geometers. The ”Syzygy Theorem” of Evans and Griffiths (**Syzygies.** London Mathematical Society Lecture Note Series, 106. Cambridge University Press, Cambridge, 1985) asserts that if a module M over a regular local ring S containing a field (the field is conjecturally not necessary), or a graded module over a polynomial ring S, is a k-th syzygy module but not a free module, then M has rank at least k. The theory of basic elements shows that if M is a k-th syzygy of rank >k, then for a ”sufficiently general” element m of M the module M/Sm is again a k-th syzygy.

The idea of Bruns’ theorem is that if M is a second syzygy module, then factoring out (rank M) - 2 general elements gives a second syzygy N of rank 2. It turns out that three general homomorphisms from M to S embed N in S^{3} in such a way that the quotient S^{3}/N is an ideal generated by three elements.

This package implements this method.

- Functions and commands
- bruns -- Returns an ideal generated by three elements whose 2nd syzygy module is isomorphic to a given module
- brunsIdeal -- Returns an ideal generated by three elements whose 2nd syzygy module agrees with the given ideal
- elementary -- Elementary moves are used to reduce the target of a syzygy matrix
- evansGriffith -- Reduces the rank of a syzygy
- isSyzygy -- Tests if a module is a d-th syzygy