Goto Chapter: Top 1 2 3 4 5 A Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 Introduction
 1.1 What is SingularInterface?
 1.2 Conventions
 1.3 Obtaining and installing SingularInterface
 1.4 The noncommutative subsystems Plural and SCA
 1.5 TODO

1 Introduction

1.1 What is SingularInterface?

The GAP package SingularInterface is a highly efficient and robust unidirectional low-level interface to Singular [DGPS14]. It is the outcome of an intensive collaboration between core developers of both systems.

The goal of this interface is to map all of Singular’s powerful functionality into GAP. To achieve this it automatically wraps all Singular datatypes and exports all of Singular’s interface procedures to GAP. Furthermore, all procedures of any contributed library can be loaded on demand.

This package is a rather "faithful" image of Singular; it does not make an extensive attempt for a better integration of Singular into the GAP ecosystem. This is intentionally left to other packages, which are free to realize this in different ways.

The development of SingularInterface has reached a \beta-phase and is already actively used in some research projects. We hope to attract more users in the near future, whose feedback will be crucial for a successful further development.

The motivation behind developing SingularInterface is the increasing interest of various research projects in combining the strength of both systems: GAP users get access to Singular's polynomial arithmetic and highly optimized Gröbner basis engine. Singular users gain a second front end language for this engine -- in addition to the current Singular language -- with an advanced object model primarily designed for modeling higher mathematical structures, as well as access to GAP as an expert system for group and representation theory.

1.2 Conventions

Almost all functions provided by SingularInterface have a name starting with one of the following prefixes:

This makes it relatively easy to discover all functions provided by SingularInterface, namely by using GAP's tab completion feature: Just type a prefix, such as SI_, then press the TAB key twice and GAP displays all matching identifiers.

One notable exception to this naming scheme is the function Singular (2.1-1).

1.3 Obtaining and installing SingularInterface

The latest SingularInterface release can be downloaded from http://gap-system.github.io/SingularInterface/.

For instructions on how to compile the SingularInterface source code, please refer to the INSTALL file accompanying it. To check that the package has been successfully installed, start GAP and type:

gap> LoadPackage( "SingularInterface" );
true

1.4 The noncommutative subsystems Plural and SCA

The noncommutative extensions Plural and SCA of Singular (aka. noncommutative subsystems) decided to comply with Singular's column convention while implementing the noncommutative Gröbner basis algorithms for left ideals and modules. This is incompatible with matrix multiplication resulting in various annoying side-effects (see, e.g., SI_lift (4.2-6)).

These noncommutative subsystems should have either used the row convention (violating Singular's established convention) or should have implemented the Gröbner basis algorithms for right ideals and modules instead (breaking with the existing literature on the subject which usually describes algorithms for left ideals and modules).

SingularInterface makes no attempt to resolve this issue. Any higher implementation which needs the noncommutative subsystems will probably need to address this issue.

For example, the homalg project [hpa14] completely resolves this dilemma by mimicking the row convention. The details are too technical to be exposed here. The effect is that both left and right modules are properly supported in homalg, regardless of the commutativity of the ring. This is done in a way which is even compatible with base change from a commutative ring (in Singular) to a noncommutative ring extension (in Plural or SCA). The support for right modules depends on the existence of an involution of the noncommutative ring.

1.5 TODO

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 A Bib Ind

generated by GAPDoc2HTML