### E.2.2 Notes for Singular users

#### Coefficient rings

To allow for easy integration of new coefficient rings into Singular, the the way coefficient rings are being handled has been redesigned.

In general, the user syntax has not changed, however there are some changes in the behaviour of Singular:

- setting `minpoly` results in changing the current coefficient domain and clears all previously defined varaiables of that ring

- Minor changes in the output of coefficient ring description. Moreover the output of elements of certain rings has been improved (for example, reals).

- Algebraic and transcendental extensions of rationals and finite fields have been reimplemented. In particular, the heuristics for clearing denominators and factoring out content have been changed. In some cases this leads to a different, mathematically equivalent results of Groebner bases and related computations. For example a Groebner basis element may differ by a unit.

- Most noteably, due to the redesign of the coefficient rings, if the user sets the minimal polynomial all variables dependent on the current ring are deleted.

#### Ring-dependent options

Formally global Singular option now belong to individual polynomial rings. This includes:

- `intStrategy`
- `redTail`
- `redThrough`

Also the following settings now belong to individual (currently active) polynomial rings:

- `short`
- `minpoly`
- `noether`

Hence setting these options only affects the current ring. Be aware of this when switching between different rings, since the options affect the result of various computations (in particular Groebner bases).

#### New libraries depending on Singular 4

In Singular 4 there several new features are implemented within a dynamic module `syzextra.so`, not available in Singular 3. It implements the low-level functions for Schreyer resolutions and many auxiliary functions. The following new libraries deRham_lib, schreyer_lib depend on it:

- deRham_lib - computes de Rham cohomology
- schreyer_lib - computes Schreyer resolution via several approaches. It also serves as a high-level wrapper to the dynamic module `syzextra.so`

#### Path names

- The tree structure of the binary Singular distribution has been changed. The typical tree now looks as show at https://github.com/Singular/Sources/wiki/Sw-tree

- Accordingly Singular search paths (where Singular searches for libraries, dynamic modules, etc.) have been changed. You can display them by calling Singular by `Singular -v`.

- currently, multi-arch installations of Singular 4 aere not possible.

#### Library versioning

Due to switching from Subversion to GIT revision control system for the Singular source code, library version variables (displayed when loading a library) have changed.

#### New orderings for modules

The now can assign weights to module components, when defining a monomial ordering. For example

    ring R = 0, (x,y,z), (am(1,2,3,   10,20,30,40), dp, C);
    deg(x*gen(1));
    ==> 11

will assign weights 1,2,3 to x,y,z respectively, and weights 10,20,30,40,0,0,... to components of any free module defined over R. This ordering will first sort by this weighted degree, then by dp on the ring monomials and then will give priority to the large component index.

#### Future benefits of Singular 4

The redesign of Singular will allow us to provide new features in the future, for example:

- Interpreter type for coefficient rings.
- User defined coefficient rings.
- Improved syntax for defining polynomial rings.

User manual for Singular version 4-0-3, 2016, generated by texi2html.