Dr. Janko Böhm

tulogo1.gif

 

Computeralgebra


I am a PI of the DFG project developing the computer algebra system Singular and the Singular/GPI-Space framework for massively parallel ccomputations in computer algebra.

I am a member of the DFG SFB-TRR 195 developing the next generation computer algebra system OSCAR. I also develop packages for Macaulay 2.

 

 

 

 

OSCAR_logo.png

 

 

 

I am also using Maple and GAP. For computer algebra code for teaching see my Teaching page.


Step by step instructions to compile Singular from the latest sources.

Step by step instructions for contributing to Singular.


classify2.lib

 


 

Description:

We classify isolated singularities of corank <=2 and modality <=2 with respect to right-equivalence over the complex numbers according to Arnold's list. We determine the type and, for positive modality, the parameter.

V.I. Arnold has described normal forms and has developed a classifier for, in particular, all isolated hypersurface singularities over the complex numbers up to modality 2. Building on a series of 105 theorems, this classifier determines the type of the given singularity. However, for positive modality, this does not fix the right equivalence class of the singularity, since the values of the moduli parameters are not specified.

This library implements an alternative classification algorithm for isolated hypersurface singularities of corank and modality up to two.  For a singularity given by a polynomial over the rationals, the algorithm determines its right equivalence class by specifying a polynomial representative in Arnold's list of normal forms. In particular, the algorithm also determines values for the moduli parameters.

The is joint work with Magdaleen Marais and Gerhard Pfister.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2018-02-14

 


polyclass.lib

 


 

Description:

This library implements a ring independent polynomial type used for the return value in classify2.lib and realclassify.lib. You can use +,  * and == for addition, multiplication and comparison. The key over contains the base ring of the polynomial, the key value its value as a polynomial of type poly. The constructor can be called by assigning a polynomial of type poly to a polynomial of type Poly via =.

Moreover the library implements a class NormalformEquation consisting out of a string type, an integer milnorNumber, a Poly normalFormEquation, and integer modality, a list of numbers parameters, a list variables, an integer corank, in the real case, an integer inertiaIndex, a list of open intervals represented as lists consisting out of two rationals used to select a real root of the minimal polynomial (which is stored in the variable minpoly of the polynomial ring containing normalFormEquation, that is, in normalFormEquation.in), or if no minimal polynomial is defined then an interval containing the rational parameter value.

The is joint work with Magdaleen Marais and Gerhard Pfister.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2017-02-14

 


realclassify.lib

 


 

Description:

A library for classifying isolated hypersurface singularities over the reals w.r.t. right equivalence, based on the determinator of singularities by V.I. Arnold. This library is based on classify2.lib by the first and second author and G. Pfister, but handles the real case, while classify2.lib does the complex classification..

The is joint work with Magdaleen Marais and Andreas Steenpaß.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2017-11-29

 


modules.lib

 


 

Description:

This library is used for the computation of graded free resolutions with an own graduation of the monomials. For these Resolution is a new class of modules needed. These modules, can be computed via the image, kernel, cokernel of a matrix or the subquotient of two matrices. The used matrices also have a free module as source and target, with graded generators if the matrix is homogenous. A matrix of this new form is created by a normal matrix, source, target and the graduatin, if the matrix is homogenous, are done automatically. With this matrices it is then possible to compute the new class of modules. This library also offers the opppurtunity to create R-module-homomorphisms betweens two modules. For these homorphisms the kernel can be computed an will be returned as a module of the new class.

This is experimental work in progress!

This is joint work with Daniel Wienholz, Cassandra Koenen und Max Mayer.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2018-01-09

 


nets.lib

 


 

Description:

Nets are arrays of characters, which are printed in a matrix format. They can be concatenated horizontally and vertically. When concatenating horizontally, empty rows are filled with spaces. All Singular types can be converted to a Net by applying the command net.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2018-01-09

 


sets.lib

 


 

Description:

We implement the new class set and all basic methods needed to work with sets. A set is generated from a list. After the generating of a set, the adding of an element or the union of two sets, automatically every double element is removed to secure that no element occurs in a set more than once.

There is a comparison operator, we access the operator via the function isEqual. This function isEqual can be used to compare two elements of the same type (Set, list, int, bigint, string, intmat, bigintmat, intvec, ring, map, poly, matrix, ideal, module, vector, resolution) and also works for comparing of int, bigint and number with each other, similarily for matrix, bigintmat and intmat.

The function size can be used to determine the number of elements.

The + operator is used for the union, the * operator for the intersection.

The operators < and > can be used for inclusion tests.

The print function can be used for printing sets.

Note that the implementation of the underlying data structure and algorithms is very trivial and will at some point be replaced with something more efficient.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2018-01-09

 


methods.lib

 


 

Description:

Methods select the function to execute by the types of the input tuple. The central function is installMethod, which takes a hashtable assocating a tuple of input types to function names and creates a corresponding procedure.

HashTables are lists with arbitrary index sets. They can be created by the command hashTable. Their size can be determined by the command size. Values can be extracted by selectKey or the * operator. HashTables can also be added using addHashTables or the + operator.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-1-0 on.

Current version:

2017-11-10

 


brillnoether.lib

 


 

Description:

Computes a vector space basis of the Riemann-Roch space of a divisor D on a projective curve C.

The is joint work with Isabel Stenger.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-0-0 on.

Current version:

2014-10-04

 


Poster Mega 2015: New Developments in Singular

 


 

linear system.jpgSingular is one of the leading open source computer algebra systems with a special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory.

On this poster we illustrate recent advances in Singular such as modular techniques in algebraic geometry, the support of polyhedral and tropical geometry via the polymake interface, computation of de Rham cohomology, and new algorithms for normalization and geometric invariant theory.

Furthermore, we outline plans for future developments such as a new interpreter with just-in-time compilation, implementation of generic recursive data structures, and interfacing to the Antic number theory library.

Joint work with Wolfram Decker, Hans Schönemann, and Mathias Schulze.

 


ellipticcovers.lib

 


 

Description:

This library implemens a formula for computing the number of covers of elliptic curves. It has beed obtained by proving mirror symmetry for arbitrary genus by tropical methods in http://arxiv.org/abs/1309.5893. A Feynman graph of genus g is a trivalent, connected graph of genus g (with 2g-2 vertices and 3g-3 edges). The branch type b=(b_1,...,b_(3g-3)) of a stable map is the multiplicity of the the edge i over a fixed base point.

Given a Feynman graph G and a branch type b, we obtain the number N_(G,b) of stable maps of branch type b from a genus g curve of topological type G to the elliptic curve by computing a path integral over a rational function. The path integral is computed as a residue. The sum of N_(G,b)/|Aut(G)| over all branch types b of sum d gives the Gromov-Witten invariant N_(G,d) of degree d stable maps from a genus g curve of topological type G to the elliptic curve. The sum of N_(G,d) over all such graphs gives the usual Gromov-Witten invariant N_(g,d) of degree d stable maps from a genus g curve to the elliptic curve.

The key function computing the numbers N_(G,b) and N_(G,d) is gromovWitten.

The is joint work with Kathrin Bringmann, Arne Buchholz and Hannah Markwig.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 4-0-0 on.

Current version:

2013-09-23

 


orbitparam.lib

 


 

Description:

This library implements the theorem of Chevalley-Rosenlicht. Given a set of strictly upper triangular n x n matrices L_1,...,L_c which generate a Lie algebra as a vector space, and a vector v of size n, we implement a function which constructs a parametrization of the orbit of v under the action of exp(<L_1,...,L_c>). To compute exp of the Lie algebra elements corresponding to the parameters we require that the characteristic of the base field is zero or larger than n. By determining the parameters from bottom to top we provide a function to find an element in the orbit with (at least) as many zeros as the dimension of the orbit.

This is joint work with Stavros Papadakis.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 3-1-6 on.

Current version:

2012-12-19

 


BettiBounds.m2

 


 

Description:

Using unprojection theory we give in http://arxiv.org/abs/1212.4358 bounds for the Betti numbers of the Stanley-Reisner ring of a stellar subdivision of a Gorenstein* simplicial complex. Applying this result we obtain a bound for the total Betti numbers of iterated stellar subdivisions of the boundary complex of a simplex. This bound depends only on the number of stellars and we construct examples which prove that it is sharp. The purpose of this package is to give an implementation of this construction. Using Kustin-Miller addition of Betti tables, we provide an efficient way to compute the graded Betti tables of the examples. This works far beyond the range in which the resolution or even ideal can be computed directly. 

This is joint work with Stavros Papadakis.

System:

Macaulay2

Requirements:

SimplicialComplexes.m2, version 1.2.

Format:

M2 package with documentation

Current version:

1.0

 


gitfan.lib

 


 

Description:

Consider a weighted homogeneous ideal I in a polynomial ring and the action by the torus T corresponding to the grading matrix. The GIT-fan classifies the good quotients U//T for open U in V(I). In the Singular package gitfan.lib we implement the algorithm by S. Keicher for computing the GIT-fan.

This is joint work with Simon Keicher and Yue Ren.

System:

Singular

Format:

Singular package with documentation, contained in the Singular distribution from version 3-1-6 on.

Current version:

2012-12-19

 


locnormal.lib

 


 

Description:

Suppose A is an affine domain over a perfect field. This library implements a local-to-global strategy for finding the normalization of A. Following http://arxiv.org/abs/1110.4299, the idea is to stratify the singular locus of A, apply the normalization algorithm given in http://arxiv.org/abs/0904.3561 locally at each stratum, and put the local results together. This approach is inherently parallel. Furthermore we allow for the optional modular computation of the local results as provided by modnormal.lib. See again http://arxiv.org/abs/1110.4299 for details.

This is joint work with Wolfram Decker, Santiago Laplagne, Gerhard Pfister, Andreas Steenpaß, and Stefan Steidel.

System:

Singular

Requirements:

Current version of normal.lib

Format:

Singular package with documentation, contained in the Singular distribution from version 3-1-5.

Current version:

2012-07-06

 


modnormal.lib

 


 

Description:

Suppose A is an affine domain over a perfect field. This library implements a modular strategy for finding the normalization of A. Following http://arxiv.org/abs/1110.4299, the idea is to apply the normalization algorithm given in http://arxiv.org/abs/0904.3561 over finite fields and lift the results via Chinese remaindering and rational reconstruction as described in http://arxiv.org/abs/1207.1651. This approch is inherently parallel. The strategy is available both as a randomized and as a verified algorithm.

This is joint work with Wolfram Decker, Santiago Laplagne, Gerhard Pfister, Andreas Steenpaß, and Stefan Steidel

System:

Singular

Requirements:

Current version of normal.lib

Format:

Singular package with documentation, contained in the Singular distribution from version 3-1-5 on.

Current version:

2012-07-06

 


divisors.lib

 


 

Description:

We implement a class divisor on an algebraic variety and methods for computing with them. Divisors are represented by tuples of ideals defining the positive and the negative part. In particular, we implement the group structure on divisors, computing global sections and testing linear equivalence. In addition to this we provide a class formaldivisor which implements integer formal sums of divisors (not necessarily prime). A formal divisor can be evaluated to a divisor, and a divisor can be decomposed into a formal sum. Finally we provide a class pdivisor which implements polyhedral formal sums of divisors (P-divisors) where the coefficients are assumed to be polyhedra with fixed tail cone. There is a function to evaluate a P-divisor on a vector in the dual of the tail cone. The result will be a formal divisor.

One goal of the package is to demonstrate and test the low-level Singular-Polymake interface provided by polymake.so.

This is joint work with Benjamin Lorenz, Lars Kastner, Yue Ren and Hans Schönemann.

System:

Singular

Requirements:

Polymake present in the system and polymake.so

Format:

Singular package with documentation, contained in the Singular distribution from version 3-1-6 on.

Current version:

2012-07-06

 


polymake.so

 


 

Description:

Interface from Singular to Polymake.

This is joint work with Yue Ren.

System:

Singular

Requirements:

Polymake present in the system.

Format:

Singular so-library with documentation, contained in the next Singular distribution.

Current version:

2012-07-06

 


MonomialAlgebras.m2

 


 

Description:

This package implements the decomposition of a monomial algebra as a module over a subalgebra. We use this decomposition to give a fast algorithm for computing the Castelnuovo-Mumford regularity. We apply this algorithm to test the Eisenbud-Goto conjecture in many new cases. This package is joint work with David Eisenbud and Max Nitsche. Details on the algorithm can be found in:
J. Boehm, D. Eisenbud, M. Nitsche: Decomposition of semigroup algebras, Experimental Mathematics 21(4), 385-394, 2012, http://arxiv.org/abs/1110.3653

System:

Macaulay2

Requirements:

This package requires Polyhedra.m2. For the current versions of the packages see also the M2 SVN. Contained in the M2 distribution from version 1.5 on.

Format:

M2 package with documentation.

Current version:

2.1

 


KustinMiller.m2

 


 

Description:

This package implements the Kustin-Miller complex, which constructs the resolution of a Gorenstein ring from simpler pieces. This package is joint work with Stavros Papadakis. Details on the algorithm can be found in:
J. Boehm, S. Papadakis: Implementing the Kustin-Miller complex construction, JSAG 4 (2012), 6-12, http://arxiv.org/abs/1103.2314
 

System:

Macaulay2

Requirements:

SimplicialComplexes.m2, version 1.2.

Format:

M2 package with documentation.
Contained in the M2 distribution from version 1.5 on. 

Current version:

1.2

 


integralbasis.lib

 


 

Description:

Given an irreducible polynomial f in two variables defining a plane curve, this library implements an algorithm to compute an integral basis of the integral closure of the affine coordinate ring in the algebraic function field via normalization. The algorithm has two strategies: I can be applied globally or the problem can be separated into smaller problems by localization and then combining the local results, which usually is much faster.

This is joint work with Wolfram Decker, Santiago Laplagne, and Frank Seelisch.

System:

Singular

Requirements:

none

Format:

Singular package with documentation, contained in the Singular distribution since version 3-1-3.

Current version:

2010-10-19

 


paraplanecurves.lib

 


 

Description:

This library provides functions to compute the adjoint ideal of a plane curve. In the case of a rational curve defined over the rational numbers the anticanonical system is used to map the curve to a rational normal curves, which then in turn is parametrized over a projective 1-space (in case that the degree of the curve is odd) or a conic (even degree). The paramerization function checks for the existence of a rational point on the conic and, if so, uses one to parametrize the conic.

This is joint work with Wolfram Decker, Santiago Laplagne, and Frank Seelisch.

System:

Singular

Requirements:

none

Format:

Singular package with documentation, contained in the Singular distribution since version 3-1-3.

Current version:

2010-10-19

 


CyclicPolytopeRes.m2

 


 

Description:

 This package computes the minimal resolution of the Stanley-Reisner ring of the boundary complexes Δ(d,m) of cyclic polytopes of dimension d on m vertices using unprojection theory. We implement the results of
J. Boehm, S. Papadakis: On the structure of Stanley-Reisner rings associated to cyclic polytopes, http://arxiv.org/abs/0912.2152, Osaka J. Math. 49-1, 81-100

This package is joint work with Stavros Papadakis.

System:

Macaulay2

Requirements:

none

Format:

M2 package with documentation

Current version:

0.85

 


SRdeformations.m2

 


 

Description:

 The goal of this package is to provide a basic framework for deformations of Stanley-Reisner rings, the deformations polytope, its tropical subcomplex and tropical mirror symmetry in general.
 This implements part of the results from
J. Boehm: Mirror symmetry and tropical geometry,
arXiv:0708.4402v1[math.AG].

System:

Macaulay2

Requirements:

Works stand alone, but for performance reasons the packages "MapleInterface" and "ConvexInterface" should be present.

Format:

M2 package with documentation, contained in the Macaulay2 distribution.

Current version:

0.52

 


MapleInterface.m2

 


 

Description:

 This package provides an interface to run Maple scripts from Macaulay2.

System:

Macaulay2

Requirements:

Maple has to be installed on the machine.

Format:

M2 package with documentation, contained in the Macaulay2 distribution.

Current version:

0.3

 


ConvexInterface.m2

 


 

Description:

 The goal of this package is to provide the functions of the Maple package Convex by Matthias Franz in Macaulay2.

System:

Macaulay2

Requirements:

Requires the MapleInterface package to be installed.

Format:

M2 package with documentation, contained in the Macaulay2 distribution.

Current version:

0.33

 


AdjointIdeal.m2

 


 

Description:

AdjointIdeal is a package to compute the adjoint ideal and the geometric genus of (singular) plane curves

System:

Macaulay2

Requirements:

Requires the MapleInterface package to be installed to compute integral bases.

Format:

M2 package with documentation, contained in the Macaulay2 distribution.

Current version:

0.5

 


Parametrization.m2

 


 

Description:

 Parametrization is a package to compute rational parametrizations of a rational curves defined over QQ.

System:

Macaulay2

Requirements:

Requires the AdjointIdeal package to be installed.

Format:

M2 package with documentation, contained in the Macaulay2 distribution.

Current version:

0.5

 


 Under the above links you can view the html documentation and obtain the source code.
All Macaulay2 packages are designed for version 1.4, or higher.