|
Dr. Janko Böhm
|
![tulogo1.gif](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.
|
|
|
|
|
|
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
|
|
|
|
Singular
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
|
|
|
|
|
|
|
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.
|
|