Top Banner
Singular Tutorial Andreas Steenpass TU Kaiserslautern Workshop on Computational Commutative Algebra IPM, Tehran, Iran July 2-7, 2011
156

Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Aug 07, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular Tutorial

Andreas Steenpass

TU Kaiserslautern

Workshop on Computational Commutative AlgebraIPM, Tehran, IranJuly 2-7, 2011

Page 2: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

Andreas Steenpass Singular Tutorial

Page 3: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

Andreas Steenpass Singular Tutorial

Page 4: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

Andreas Steenpass Singular Tutorial

Page 5: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

Andreas Steenpass Singular Tutorial

Page 6: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

Andreas Steenpass Singular Tutorial

Page 7: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

Andreas Steenpass Singular Tutorial

Page 8: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

Andreas Steenpass Singular Tutorial

Page 9: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 10: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 11: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

A first Singular session

Let’s assume that you have installed Singular successfully andthat you can start a Singular session:

SINGULAR / Development

A Computer Algebra System for Polynomial Computations / version 3-1-3

0<

by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann \ March 2011

FB Mathematik der Universitaet, D-67653 Kaiserslautern \

// ** executing /home/steenpas/Singular/trunk/Singular/LIB/.singularrc

>

Andreas Steenpass Singular Tutorial

Page 12: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Rings and Ideals

Almost all Singular functions are ring-dependend, so first of all,Singular needs to know which ring you want to compute in.For Q[x , y , z ] with the lexicographic ordering, simply type

> ring R = 0, (x,y,z), lp;

Andreas Steenpass Singular Tutorial

Page 13: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Rings and Ideals

Almost all Singular functions are ring-dependend, so first of all,Singular needs to know which ring you want to compute in.For Q[x , y , z ] with the lexicographic ordering, simply type

> ring R = 0, (x,y,z), lp;

An ideal in Singular is given by its generators, so for〈x + y + z − 1, x2 + y2 + z2− 1, x3 + y3 + z3− 1〉 ⊂ Q[x , y , z ]we type

> ideal I = x+y+z-1, x2+y2+z2-1, x3+y3+z3-1;

Andreas Steenpass Singular Tutorial

Page 14: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

The groebner command

Now compute a Groebner basis of this ideal:

> groebner(I);

_[1]=z3-z2

_[2]=y2+yz-y+z2-z

_[3]=x+y+z-1

Andreas Steenpass Singular Tutorial

Page 15: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

The groebner command

Now compute a Groebner basis of this ideal:

> groebner(I);

_[1]=z3-z2

_[2]=y2+yz-y+z2-z

_[3]=x+y+z-1

In the first equation of the new system, the variables x and y areeliminated. In the second equation, x is eliminated. As aconsequence, the solutions can, now, be directly read off:

(1, 0, 0), (0, 1, 0), (0, 0, 1).

Andreas Steenpass Singular Tutorial

Page 16: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

The groebner command

Now compute a Groebner basis of this ideal:

> groebner(I);

_[1]=z3-z2

_[2]=y2+yz-y+z2-z

_[3]=x+y+z-1

In the first equation of the new system, the variables x and y areeliminated. In the second equation, x is eliminated. As aconsequence, the solutions can, now, be directly read off:

(1, 0, 0), (0, 1, 0), (0, 0, 1).

Note: Groebner bases computations can produce unexpectedlylarge output!

Andreas Steenpass Singular Tutorial

Page 17: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

intersect

Many other computations in modern computer algebra rely onGroebner bases and their several generalisations. An example isintersect:

> ring R = 0, (x,y,z), dp;

> ideal I1 = x, y;

> ideal I2 = y2, z;

> intersect(I1, I2);

_[1]=yz

_[2]=xz

_[3]=y2

Andreas Steenpass Singular Tutorial

Page 18: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

factorize

Other algorithms such as factorization do not depend on Groebnerbases. We use Singular to factorize a polynomial in Q[x , y , z ].The second entry of the output indicates the multiplicities of thefactors:

> ring R = 0, (x,y,z), dp;

> poly f = x5y4-x4y5+2x3y6-2x2y7+xy8-y9+x8z-2x6y2z-7x4y4z-4x2y6z

. +2x3y4z2-2x2y5z2+2xy6z2-2y7z2+2x6z3-6x4y2z3-8x2y4z3+xy4z4-y5z4

. +x4z5-4x2y2z5;

> factorize(f);

[1]:

_[1]=1

_[2]=xy4-y5+x4z-4x2y2z

_[3]=x2+y2+z2

[2]:

1,1,2

Andreas Steenpass Singular Tutorial

Page 19: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

factorize

Other algorithms such as factorization do not depend on Groebnerbases. We use Singular to factorize a polynomial in Q[x , y , z ].The second entry of the output indicates the multiplicities of thefactors:

> ring R = 0, (x,y,z), dp;

> poly f = x5y4-x4y5+2x3y6-2x2y7+xy8-y9+x8z-2x6y2z-7x4y4z-4x2y6z

. +2x3y4z2-2x2y5z2+2xy6z2-2y7z2+2x6z3-6x4y2z3-8x2y4z3+xy4z4-y5z4

. +x4z5-4x2y2z5;

> factorize(f);

[1]:

_[1]=1

_[2]=xy4-y5+x4z-4x2y2z

_[3]=x2+y2+z2

[2]:

1,1,2

Note: factorize does not even depend on the monomial ordering.

Andreas Steenpass Singular Tutorial

Page 20: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Ideal Membership

Given an ideal I and a polynomial f , Groebner (or more general:standard) bases can be used to decide wether or not it f iscontained in I .

Andreas Steenpass Singular Tutorial

Page 21: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Ideal Membership

Given an ideal I and a polynomial f , Groebner (or more general:standard) bases can be used to decide wether or not it f iscontained in I .In terms of Singular code, the following holds:The polynomial f is contained in I if and only if NF(f, std(I));

evaluates to 0.

Andreas Steenpass Singular Tutorial

Page 22: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Ideal Membership

Given an ideal I and a polynomial f , Groebner (or more general:standard) bases can be used to decide wether or not it f iscontained in I .In terms of Singular code, the following holds:The polynomial f is contained in I if and only if NF(f, std(I));

evaluates to 0.

> ring R = 0, (x, y), dp;

> ideal I = x10+x9y2, y8-x2y7;

> ideal J = std(I);

> poly f = x2y7+y14;

> poly g = xy13+y12;

> NF(f, J);

-xy12+y8 // f is not in I

> NF(g, J);

0 // g is in I

Andreas Steenpass Singular Tutorial

Page 23: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 24: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

What is a Groebner Basis?

Andreas Steenpass Singular Tutorial

Page 25: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

What is a Groebner Basis?

Use monomial orders on K [x1, . . . , xn] which are well-orders.

Andreas Steenpass Singular Tutorial

Page 26: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

What is a Groebner Basis?

Use monomial orders on K [x1, . . . , xn] which are well-orders.For instance:

xα >lp xβ ⇐⇒ the first nonzero entry of α− β is positive

(lexicographic order).

Andreas Steenpass Singular Tutorial

Page 27: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

What is a Groebner Basis?

Use monomial orders on K [x1, . . . , xn] which are well-orders.For instance:

xα >lp xβ ⇐⇒ the first nonzero entry of α− β is positive

(lexicographic order). Or:

xα >dp xβ ⇐⇒ deg xα > deg xβ, or (deg xα = deg xβ and thelast nonzero entry of α− β ∈ Zn is negative).

(degree reverse lexicographic order).

Andreas Steenpass Singular Tutorial

Page 28: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

Given a monomial order on K [x1, . . . , xn], the terms of everypolynomial f ∈ K [x1, . . . , xn] are sorted accordingly.

Andreas Steenpass Singular Tutorial

Page 29: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

Given a monomial order on K [x1, . . . , xn], the terms of everypolynomial f ∈ K [x1, . . . , xn] are sorted accordingly. For instance:

f = xz + y2 + yz (lp)

orf = y2 + xz + yz . (dp)

We can, then, speak of the leading term L(f ).

Andreas Steenpass Singular Tutorial

Page 30: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

Given a monomial order on K [x1, . . . , xn], the terms of everypolynomial f ∈ K [x1, . . . , xn] are sorted accordingly. For instance:

f = xz + y2 + yz (lp)

orf = y2 + xz + yz . (dp)

We can, then, speak of the leading term L(f ).

Given an ideal

I = 〈f1, . . . , fr 〉 =

{

r∑

i=1

gi fi | gi ∈ K [x1, . . . , xn]

}

,

we have the leading ideal

L(I ) :=⟨

L(f )∣

∣ f ∈ I⟩

.

Andreas Steenpass Singular Tutorial

Page 31: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

A set g1, . . . , gs ∈ I of polynomials is called a Groebner basisfor I if the leading terms L(gi ) generate L(I ).

Andreas Steenpass Singular Tutorial

Page 32: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

A set g1, . . . , gs ∈ I of polynomials is called a Groebner basisfor I if the leading terms L(gi ) generate L(I ).

The use made of Groebner bases relies on the following two”facts”:

Andreas Steenpass Singular Tutorial

Page 33: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

A set g1, . . . , gs ∈ I of polynomials is called a Groebner basisfor I if the leading terms L(gi ) generate L(I ).

The use made of Groebner bases relies on the following two”facts”:

L(I ) carries plenty of information on I .

Andreas Steenpass Singular Tutorial

Page 34: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

A set g1, . . . , gs ∈ I of polynomials is called a Groebner basisfor I if the leading terms L(gi ) generate L(I ).

The use made of Groebner bases relies on the following two”facts”:

L(I ) carries plenty of information on I .

Information on I is typically obtained by purely combinatorialmeans.

Andreas Steenpass Singular Tutorial

Page 35: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Groebner Bases

A set g1, . . . , gs ∈ I of polynomials is called a Groebner basisfor I if the leading terms L(gi ) generate L(I ).

The use made of Groebner bases relies on the following two”facts”:

L(I ) carries plenty of information on I .

Information on I is typically obtained by purely combinatorialmeans.

For instance, due to a classical result of Macaulay, the monomialsnot contained in L(I ) define a K -basis of the quotient ringK [x1, . . . , xn]/I .

Andreas Steenpass Singular Tutorial

Page 36: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s criterion

Definition

Let f , g ∈ K [x1, . . . , xn] be polynomials and let lcm be the leastcommon multiple of their leading monomials LM(f ) and LM(g).We define the s-polynomial of f and g to be

spoly(f , g) :=lcm

LM(f )· f −

LC(f )

LC(g)·

lcm

LM(g)· g .

Andreas Steenpass Singular Tutorial

Page 37: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s criterion

Definition

Let f , g ∈ K [x1, . . . , xn] be polynomials and let lcm be the leastcommon multiple of their leading monomials LM(f ) and LM(g).We define the s-polynomial of f and g to be

spoly(f , g) :=lcm

LM(f )· f −

LC(f )

LC(g)·

lcm

LM(g)· g .

Theorem (Buchberger)

F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} is a Groebner basis of theideal I := 〈f1, . . . , fm〉 iff all s-polynomials spoly(fi , fj) reduce to 0w. r. t. F .

Andreas Steenpass Singular Tutorial

Page 38: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s criterion

Definition

Let f , g ∈ K [x1, . . . , xn] be polynomials and let lcm be the leastcommon multiple of their leading monomials LM(f ) and LM(g).We define the s-polynomial of f and g to be

spoly(f , g) :=lcm

LM(f )· f −

LC(f )

LC(g)·

lcm

LM(g)· g .

Theorem (Buchberger)

F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} is a Groebner basis of theideal I := 〈f1, . . . , fm〉 iff all s-polynomials spoly(fi , fj) reduce to 0w. r. t. F . (i. e. their remainder is 0 when divided by F .)

Andreas Steenpass Singular Tutorial

Page 39: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Andreas Steenpass Singular Tutorial

Page 40: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.

Andreas Steenpass Singular Tutorial

Page 41: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

Andreas Steenpass Singular Tutorial

Page 42: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

1 Compute all s-polynomials spoly(fi , fj) for fi , fj ∈ F .

Andreas Steenpass Singular Tutorial

Page 43: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

1 Compute all s-polynomials spoly(fi , fj) for fi , fj ∈ F .

2 Compute the remainders of these s-polys when divided by F .

Andreas Steenpass Singular Tutorial

Page 44: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

1 Compute all s-polynomials spoly(fi , fj) for fi , fj ∈ F .

2 Compute the remainders of these s-polys when divided by F .

3 If there are non-zero remainders, setF := F ∪ {non-zero remainders} and continue with step 1.

Andreas Steenpass Singular Tutorial

Page 45: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

1 Compute all s-polynomials spoly(fi , fj) for fi , fj ∈ F .

2 Compute the remainders of these s-polys when divided by F .

3 If there are non-zero remainders, setF := F ∪ {non-zero remainders} and continue with step 1.

4 If all the s-polynomials reduce to zero, set G := F .

Andreas Steenpass Singular Tutorial

Page 46: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Buchberger’s algorithm

Based on Buchberger’s criterion, there is an rather obviousalgorithm to compute Groebner bases:

Algorithm

Input: A set F := (f1, . . . , fm) ⊂ K [x1, . . . , xn] \ {0} of polys.Output: A Groebner basis G = (f1, . . . , fm, fm+1, . . . , fr ) of theideal I := 〈f1, . . . , fm〉.

1 Compute all s-polynomials spoly(fi , fj) for fi , fj ∈ F .

2 Compute the remainders of these s-polys when divided by F .

3 If there are non-zero remainders, setF := F ∪ {non-zero remainders} and continue with step 1.

4 If all the s-polynomials reduce to zero, set G := F .

This process stops due to K [x1, . . . , xn] being Noetherian.

Andreas Steenpass Singular Tutorial

Page 47: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal forms

When dividing a polynomial f by a set of polynomials F as above,the remainder is in general not uniquely determined.

Andreas Steenpass Singular Tutorial

Page 48: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal forms

When dividing a polynomial f by a set of polynomials F as above,the remainder is in general not uniquely determined.Groebner bases can help us to overcome this issue:

Proposition

Let I ⊂ K [x1, . . . , xn] be an ideal and letF = (f1, . . . , fm) ⊂ K [x1, . . . , xn] be a Groebner basis of I . Thenfor any polynomial f ∈ K [x1, . . . , xn], division by F yields auniquely determined remainder r ∈ K [x1, . . . , xn] with f − r ∈ I .

Andreas Steenpass Singular Tutorial

Page 49: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

Andreas Steenpass Singular Tutorial

Page 50: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

NF : R × G → R , (f ,G ) 7→ NF(f |G ) ,

is called a normal form on R if, for all f ∈ R and all G ∈ G,

Andreas Steenpass Singular Tutorial

Page 51: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

NF : R × G → R , (f ,G ) 7→ NF(f |G ) ,

is called a normal form on R if, for all f ∈ R and all G ∈ G,

1 NF(0|G ) = 0,

Andreas Steenpass Singular Tutorial

Page 52: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

NF : R × G → R , (f ,G ) 7→ NF(f |G ) ,

is called a normal form on R if, for all f ∈ R and all G ∈ G,

1 NF(0|G ) = 0,

2 NF(f |G ) 6= 0 ⇒ LM(NF(f |G )) /∈ L(G ).

Andreas Steenpass Singular Tutorial

Page 53: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

NF : R × G → R , (f ,G ) 7→ NF(f |G ) ,

is called a normal form on R if, for all f ∈ R and all G ∈ G,

1 NF(0|G ) = 0,

2 NF(f |G ) 6= 0 ⇒ LM(NF(f |G )) /∈ L(G ).

3 If G = {g1, . . . , gs}, then f − NF(f |G ) has a standardrepresentation with respect to G , that is,

f − NF(f |G ) =

s∑

i=1

aigi , ai ∈ R , s ≥ 0 ,

Andreas Steenpass Singular Tutorial

Page 54: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Definition

Let R := K [x1, . . . , xn] and let G be the set of all finite sets G ⊂ R .

NF : R × G → R , (f ,G ) 7→ NF(f |G ) ,

is called a normal form on R if, for all f ∈ R and all G ∈ G,

1 NF(0|G ) = 0,

2 NF(f |G ) 6= 0 ⇒ LM(NF(f |G )) /∈ L(G ).

3 If G = {g1, . . . , gs}, then f − NF(f |G ) has a standardrepresentation with respect to G , that is,

f − NF(f |G ) =

s∑

i=1

aigi , ai ∈ R , s ≥ 0 ,

satisfying LM(∑s

i=1 aigi ) ≥ LM(aigi ) for all i with aigi 6= 0.Andreas Steenpass Singular Tutorial

Page 55: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Thus in the above definition, the remainder r is a normal form of fon R .

Andreas Steenpass Singular Tutorial

Page 56: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Thus in the above definition, the remainder r is a normal form of fon R .Note, however, that in general there do exist several normal formson R .

Andreas Steenpass Singular Tutorial

Page 57: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Thus in the above definition, the remainder r is a normal form of fon R .Note, however, that in general there do exist several normal formson R .

Corollary

It follows directly from the definition that for any Groebner basis Git holds

f ∈ 〈G 〉 ⇔ NF(f |G ) = 0.

Andreas Steenpass Singular Tutorial

Page 58: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Normal Forms

Thus in the above definition, the remainder r is a normal form of fon R .Note, however, that in general there do exist several normal formson R .

Corollary

It follows directly from the definition that for any Groebner basis Git holds

f ∈ 〈G 〉 ⇔ NF(f |G ) = 0.

We have thus solved the ideal membership problem.

Andreas Steenpass Singular Tutorial

Page 59: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 60: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.

Andreas Steenpass Singular Tutorial

Page 61: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.It is free and open-source under the GNU General Public Licence.

Andreas Steenpass Singular Tutorial

Page 62: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.It is free and open-source under the GNU General Public Licence.

Singular consists of

a kernel, written in C/C++, and containing the corealgorithms,

Andreas Steenpass Singular Tutorial

Page 63: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.It is free and open-source under the GNU General Public Licence.

Singular consists of

a kernel, written in C/C++, and containing the corealgorithms,

libraries, written in Singular’s programming language withC-like syntax,

Andreas Steenpass Singular Tutorial

Page 64: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.It is free and open-source under the GNU General Public Licence.

Singular consists of

a kernel, written in C/C++, and containing the corealgorithms,

libraries, written in Singular’s programming language withC-like syntax, which have greatly augmented the kernelfunctionality, and which make Singular user-extendible,

Andreas Steenpass Singular Tutorial

Page 65: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Basic Facts

Singular is a computer algebra system for polynomialcomputations, with special emphasis on commutative andnon-commutative algebra, algebraic geometry, and singularitytheory.It is free and open-source under the GNU General Public Licence.

Singular consists of

a kernel, written in C/C++, and containing the corealgorithms,

libraries, written in Singular’s programming language withC-like syntax, which have greatly augmented the kernelfunctionality, and which make Singular user-extendible,

a comprehensive online manual and help function.

Andreas Steenpass Singular Tutorial

Page 66: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Capabilities

Singular’s main computational objects are ideals and modulesover a large number of baserings. These include

polynomial rings over various ground fields and a few rings(including the integers),

Andreas Steenpass Singular Tutorial

Page 67: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Capabilities

Singular’s main computational objects are ideals and modulesover a large number of baserings. These include

polynomial rings over various ground fields and a few rings(including the integers),

localizations of the above,

Andreas Steenpass Singular Tutorial

Page 68: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Capabilities

Singular’s main computational objects are ideals and modulesover a large number of baserings. These include

polynomial rings over various ground fields and a few rings(including the integers),

localizations of the above,

a very general class of non-commutative algebras (includingthe exterior algebra and the Weyl algebra),

Andreas Steenpass Singular Tutorial

Page 69: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular: Capabilities

Singular’s main computational objects are ideals and modulesover a large number of baserings. These include

polynomial rings over various ground fields and a few rings(including the integers),

localizations of the above,

a very general class of non-commutative algebras (includingthe exterior algebra and the Weyl algebra),

quotient rings of the above.

Andreas Steenpass Singular Tutorial

Page 70: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Singular Developer Teams

Andreas Steenpass Singular Tutorial

Page 71: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 72: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

Computer algebra systems such as CoCoA or Singular can be,and in fact they are, used quite successfully for theoreticalmathematical research.

Andreas Steenpass Singular Tutorial

Page 73: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

Computer algebra systems such as CoCoA or Singular can be,and in fact they are, used quite successfully for theoreticalmathematical research.There are also a lot of other scientific disciplines which make useof computational algebra such as e.g. phylogenetics, computerchip design, or cryptography.

Andreas Steenpass Singular Tutorial

Page 74: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

Computer algebra systems such as CoCoA or Singular can be,and in fact they are, used quite successfully for theoreticalmathematical research.There are also a lot of other scientific disciplines which make useof computational algebra such as e.g. phylogenetics, computerchip design, or cryptography.The computational problems which arise from these areas can bequite challenging; some of them even could not yet be solved byany software on any computer.

Andreas Steenpass Singular Tutorial

Page 75: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

What is needed to tackle these challenges are not (only) morepowerful computers and more involved implementations of thesame algorithms, but new, more advanced (mathematical)algorithms. This makes computer algebra a branch of mathematicsitself.

Andreas Steenpass Singular Tutorial

Page 76: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

What is needed to tackle these challenges are not (only) morepowerful computers and more involved implementations of thesame algorithms, but new, more advanced (mathematical)algorithms. This makes computer algebra a branch of mathematicsitself.E.g., in order to make use of computer clusters or modernprocessors which typically contain of several cores, we have todesign parallel algorithms. In the important case of Groebnerbases, this is not at all a trivial task because parallelimplementations of Buchberger’s algorithm are quite inefficient.

Andreas Steenpass Singular Tutorial

Page 77: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computer Algebra

What is needed to tackle these challenges are not (only) morepowerful computers and more involved implementations of thesame algorithms, but new, more advanced (mathematical)algorithms. This makes computer algebra a branch of mathematicsitself.E.g., in order to make use of computer clusters or modernprocessors which typically contain of several cores, we have todesign parallel algorithms. In the important case of Groebnerbases, this is not at all a trivial task because parallelimplementations of Buchberger’s algorithm are quite inefficient.One possible way to overcome this problem is to use modulartechniques. If we want to compute a Groebner basis incharacteristic 0, we can compute it modulo several primes first andthen lift the result via chinese remaindering.

Andreas Steenpass Singular Tutorial

Page 78: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 79: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

Andreas Steenpass Singular Tutorial

Page 80: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

2 delete unlucky primes:delete p if LM(Ip) 6= LM(Iq) for most primes q 6= p

Andreas Steenpass Singular Tutorial

Page 81: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

2 delete unlucky primes:delete p if LM(Ip) 6= LM(Iq) for most primes q 6= p

3 lift the result via Chinese remainder algorithm and Fareyrational map: obtain G

Andreas Steenpass Singular Tutorial

Page 82: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

2 delete unlucky primes:delete p if LM(Ip) 6= LM(Iq) for most primes q 6= p

3 lift the result via Chinese remainder algorithm and Fareyrational map: obtain G

4 pTestSB:test if (G mod p) is a s.b. of Ip for a new random prime p

Andreas Steenpass Singular Tutorial

Page 83: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

2 delete unlucky primes:delete p if LM(Ip) 6= LM(Iq) for most primes q 6= p

3 lift the result via Chinese remainder algorithm and Fareyrational map: obtain G

4 pTestSB:test if (G mod p) is a s.b. of Ip for a new random prime p

5 final verification tests:G is a standard basis of 〈G 〉 and I ⊆ 〈G 〉

Andreas Steenpass Singular Tutorial

Page 84: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Idea of modStd to compute a standard basis G of an ideal I :

1 compute standard bases Gp modulo several primes p

2 delete unlucky primes:delete p if LM(Ip) 6= LM(Iq) for most primes q 6= p

3 lift the result via Chinese remainder algorithm and Fareyrational map: obtain G

4 pTestSB:test if (G mod p) is a s.b. of Ip for a new random prime p

5 final verification tests:G is a standard basis of 〈G 〉 and I ⊆ 〈G 〉

6 reiterate with further new primes if verification fails

Andreas Steenpass Singular Tutorial

Page 85: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Andreas Steenpass Singular Tutorial

Page 86: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Theorem (Arnold (homogeneous)/ Idrees, Pfister, Steidel (generalfor global & local orderings))

Let G ⊆ Q[X ] be a set of polynomials such that

Andreas Steenpass Singular Tutorial

Page 87: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Theorem (Arnold (homogeneous)/ Idrees, Pfister, Steidel (generalfor global & local orderings))

Let G ⊆ Q[X ] be a set of polynomials such that

LM(G ) = LM(Gp) where Gp is a standard basis of Ip for someprime number p,

Andreas Steenpass Singular Tutorial

Page 88: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Theorem (Arnold (homogeneous)/ Idrees, Pfister, Steidel (generalfor global & local orderings))

Let G ⊆ Q[X ] be a set of polynomials such that

LM(G ) = LM(Gp) where Gp is a standard basis of Ip for someprime number p,

G is a standard basis of 〈G 〉,

Andreas Steenpass Singular Tutorial

Page 89: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Theorem (Arnold (homogeneous)/ Idrees, Pfister, Steidel (generalfor global & local orderings))

Let G ⊆ Q[X ] be a set of polynomials such that

LM(G ) = LM(Gp) where Gp is a standard basis of Ip for someprime number p,

G is a standard basis of 〈G 〉,

I ⊆ 〈G 〉.

Andreas Steenpass Singular Tutorial

Page 90: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases

Verification is the hardest part of the algorithm.Singular’s method for this task is due to the following result.

Theorem (Arnold (homogeneous)/ Idrees, Pfister, Steidel (generalfor global & local orderings))

Let G ⊆ Q[X ] be a set of polynomials such that

LM(G ) = LM(Gp) where Gp is a standard basis of Ip for someprime number p,

G is a standard basis of 〈G 〉,

I ⊆ 〈G 〉.

Then I = 〈G 〉.

Andreas Steenpass Singular Tutorial

Page 91: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Remark

The algorithm modStd can be parallelized in the following way:

Andreas Steenpass Singular Tutorial

Page 92: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Remark

The algorithm modStd can be parallelized in the following way:

1 Compute the standard bases Gp in parallel.

Andreas Steenpass Singular Tutorial

Page 93: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Remark

The algorithm modStd can be parallelized in the following way:

1 Compute the standard bases Gp in parallel.

2 Parallelize the final verification tests:

Andreas Steenpass Singular Tutorial

Page 94: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Remark

The algorithm modStd can be parallelized in the following way:

1 Compute the standard bases Gp in parallel.

2 Parallelize the final verification tests:

Check if I ⊆ 〈G〉 by checking if f ∈ 〈G〉 for each generator.

Andreas Steenpass Singular Tutorial

Page 95: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Remark

The algorithm modStd can be parallelized in the following way:

1 Compute the standard bases Gp in parallel.

2 Parallelize the final verification tests:

Check if I ⊆ 〈G〉 by checking if f ∈ 〈G〉 for each generator.

Check if G is a standard basis of 〈G〉 by checking if everys–polynomial not excluded by well-known criteria, vanishes byreduction w.r.t. G .

Andreas Steenpass Singular Tutorial

Page 96: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Example std modStd modStd∗4 modStd∗9

cyclic8 - 8271 4120 2927

Paris.ilias13 37734 1159 676 580

homog.cyclic7 3343 3436 886 408

- 6 3 3

Table: Total running times (in sec) for computing a standard basis ofexamples chosen from The SymbolicData Project (H.-G. Grabe) via std,modStd and its parallelized variant modStd∗n for n = 4, 9.

Andreas Steenpass Singular Tutorial

Page 97: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Modular Standard Bases and Parallel Computing

Example std modStd modStd∗4 modStd∗9

cyclic8 - 8271 4120 2927

Paris.ilias13 37734 1159 676 580

homog.cyclic7 3343 3436 886 408

- 6 3 3

Table: Total running times (in sec) for computing a standard basis ofexamples chosen from The SymbolicData Project (H.-G. Grabe) via std,modStd and its parallelized variant modStd∗n for n = 4, 9.

Ref.: N. Idrees, G. Pfister, S. Steidel: Parallelization of ModularAlgorithms. Journal of Symbolic Computation 46, 672-684 (2011).

Andreas Steenpass Singular Tutorial

Page 98: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 99: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Given any ring R and elements f1, . . . , fr of an R-module M, asyzygy on f1, . . . , fr is a relation

g1f1 + · · ·+ gr fr = 0 ∈ M,

with g1, . . . , gr ∈ R . We think of such a relation as a columnvector (g1, . . . , gr )

t ∈ R r :

Andreas Steenpass Singular Tutorial

Page 100: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Given any ring R and elements f1, . . . , fr of an R-module M, asyzygy on f1, . . . , fr is a relation

g1f1 + · · ·+ gr fr = 0 ∈ M,

with g1, . . . , gr ∈ R . We think of such a relation as a columnvector (g1, . . . , gr )

t ∈ R r :

Definition. Let R be a ring, let M be an R-module, and letf1, . . . , fr ∈ M. A syzygy on f1, . . . , fr is an element of the kernelof the homomorphism

φ : R r → M, ǫi 7→ fi ,

where {ǫ1, . . . , ǫr} is the canonical basis of R r . We call ker φ the(first) syzygy module of f1, . . . , fr , written

Syz(f1, . . . , fr ) = ker φ.

Andreas Steenpass Singular Tutorial

Page 101: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

If Syz(f1, . . . , fr ) is finitely generated, we regard the elements of agiven finite set of generators for it as the columns of a matrixwhich we call a syzygy matrix of f1, . . . , fr .

Andreas Steenpass Singular Tutorial

Page 102: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

If Syz(f1, . . . , fr ) is finitely generated, we regard the elements of agiven finite set of generators for it as the columns of a matrixwhich we call a syzygy matrix of f1, . . . , fr .

Note that if R is Noetherian, then every submodule of a finitelygenerated R-module is finitely generated again.

Andreas Steenpass Singular Tutorial

Page 103: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

If Syz(f1, . . . , fr ) is finitely generated, we regard the elements of agiven finite set of generators for it as the columns of a matrixwhich we call a syzygy matrix of f1, . . . , fr .

Note that if R is Noetherian, then every submodule of a finitelygenerated R-module is finitely generated again.

Problem. Determine a syzygy matrix of x , y , z ∈ K [x , y , z ].

Andreas Steenpass Singular Tutorial

Page 104: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

If Syz(f1, . . . , fr ) is finitely generated, we regard the elements of agiven finite set of generators for it as the columns of a matrixwhich we call a syzygy matrix of f1, . . . , fr .

Note that if R is Noetherian, then every submodule of a finitelygenerated R-module is finitely generated again.

Problem. Determine a syzygy matrix of x , y , z ∈ K [x , y , z ].

To handle syzygies over polynomial rings, one has to extend theconcept of Grobner bases to free modules. In what follows, letR = K [x1, . . . , xn], and let F be we the free R-module F = R s

with its canonical basis e1, . . . , es .

Andreas Steenpass Singular Tutorial

Page 105: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei .

Andreas Steenpass Singular Tutorial

Page 106: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei . A term in F is amonomial in F times a scalar, that is, an element of type axαei ,where a ∈ K .

Andreas Steenpass Singular Tutorial

Page 107: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei . A term in F is amonomial in F times a scalar, that is, an element of type axαei ,where a ∈ K . A submodule of F which is generated by monomialsis called a monomial submodule.

Andreas Steenpass Singular Tutorial

Page 108: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei . A term in F is amonomial in F times a scalar, that is, an element of type axαei ,where a ∈ K . A submodule of F which is generated by monomialsis called a monomial submodule. A monomial order on F maybe defined in the same way as a monomial ordering on R . That is,it is a total order > on the set of monomials in F satisfying

xαei > xβej =⇒ xγxαei > xγxβej for each γ ∈ Nn.

Andreas Steenpass Singular Tutorial

Page 109: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei . A term in F is amonomial in F times a scalar, that is, an element of type axαei ,where a ∈ K . A submodule of F which is generated by monomialsis called a monomial submodule. A monomial order on F maybe defined in the same way as a monomial ordering on R . That is,it is a total order > on the set of monomials in F satisfying

xαei > xβej =⇒ xγxαei > xγxβej for each γ ∈ Nn.

We require in addition that

xαei > xβei ⇐⇒ xαej > xβej ,

for all i , j = 1, . . . , s.

Andreas Steenpass Singular Tutorial

Page 110: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Definition. A monomial in F is a monomial in R times a basisvector of F , that is, an element of the form xαei . A term in F is amonomial in F times a scalar, that is, an element of type axαei ,where a ∈ K . A submodule of F which is generated by monomialsis called a monomial submodule. A monomial order on F maybe defined in the same way as a monomial ordering on R . That is,it is a total order > on the set of monomials in F satisfying

xαei > xβej =⇒ xγxαei > xγxβej for each γ ∈ Nn.

We require in addition that

xαei > xβei ⇐⇒ xαej > xβej ,

for all i , j = 1, . . . , s. In this way, each monomial ordering on Finduces a unique monomial ordering on R and notions like globaland local carry over to monomial orderings on free modules.

Andreas Steenpass Singular Tutorial

Page 111: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Finally, given a monomial order on F , we define the leading term,the leading coefficient, the leading monomial, and the tail of anelement of F in the same way as for a polynomial in R .

Andreas Steenpass Singular Tutorial

Page 112: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Known Facts and Definitions

Finally, given a monomial order on F , we define the leading term,the leading coefficient, the leading monomial, and the tail of anelement of F in the same way as for a polynomial in R .

With this basic notation, the whole concept of Grobner basesincluding its fundamental algorithms extend.

Andreas Steenpass Singular Tutorial

Page 113: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computing Syzygies

Suppose now that G = {g1, , . . . , gt} is a Grobner Basis for anideal of R (in a similar way, what we will do works for submodulesof a free R-module F ).

Andreas Steenpass Singular Tutorial

Page 114: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computing Syzygies

Suppose now that G = {g1, , . . . , gt} is a Grobner Basis for anideal of R (in a similar way, what we will do works for submodulesof a free R-module F ). Then, if we have standard expressions

spoly(gi , gj )− NF(spoly(gi , gj ) | G ) =t

i=1

aigi , ai ∈ R ,

all remainders NF(spoly(gi , gj ) | G ) are zero by Buchberger’scriterion.

Andreas Steenpass Singular Tutorial

Page 115: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computing Syzygies

Suppose now that G = {g1, , . . . , gt} is a Grobner Basis for anideal of R (in a similar way, what we will do works for submodulesof a free R-module F ). Then, if we have standard expressions

spoly(gi , gj )− NF(spoly(gi , gj ) | G ) =t

i=1

aigi , ai ∈ R ,

all remainders NF(spoly(gi , gj ) | G ) are zero by Buchberger’scriterion. We, thus, get syzygies G (ij) on g1, . . . , gt .

Andreas Steenpass Singular Tutorial

Page 116: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computing Syzygies

Suppose now that G = {g1, , . . . , gt} is a Grobner Basis for anideal of R (in a similar way, what we will do works for submodulesof a free R-module F ). Then, if we have standard expressions

spoly(gi , gj )− NF(spoly(gi , gj ) | G ) =t

i=1

aigi , ai ∈ R ,

all remainders NF(spoly(gi , gj ) | G ) are zero by Buchberger’scriterion. We, thus, get syzygies G (ij) on g1, . . . , gt . It turns out,that these syzygies generate all the syzygies on g1, , . . . , gt .

Andreas Steenpass Singular Tutorial

Page 117: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Computing Syzygies

Suppose now that G = {g1, , . . . , gt} is a Grobner Basis for anideal of R (in a similar way, what we will do works for submodulesof a free R-module F ). Then, if we have standard expressions

spoly(gi , gj )− NF(spoly(gi , gj ) | G ) =t

i=1

aigi , ai ∈ R ,

all remainders NF(spoly(gi , gj ) | G ) are zero by Buchberger’scriterion. We, thus, get syzygies G (ij) on g1, . . . , gt . It turns out,that these syzygies generate all the syzygies on g1, , . . . , gt .

In fact, we can say more.

Andreas Steenpass Singular Tutorial

Page 118: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer ordering

In the situation above, starting from a global monomial orderingon the free R-module F , consider the free R-module F0 = R t withits canonical basis ǫ1, . . . , ǫt .

Andreas Steenpass Singular Tutorial

Page 119: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer ordering

In the situation above, starting from a global monomial orderingon the free R-module F , consider the free R-module F0 = R t withits canonical basis ǫ1, . . . , ǫt . On F0, consider the inducedmonomial ordering defined as

xαǫi >0 xβǫj :⇐⇒ xαLM(fi) > xβLM(fj), or

(

xαLM(fi ) = xβLM(fj) and i > j)

.

Then >0 is a global monomial ordering on F0.

Andreas Steenpass Singular Tutorial

Page 120: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer ordering

In the situation above, starting from a global monomial orderingon the free R-module F , consider the free R-module F0 = R t withits canonical basis ǫ1, . . . , ǫt . On F0, consider the inducedmonomial ordering defined as

xαǫi >0 xβǫj :⇐⇒ xαLM(fi) > xβLM(fj), or

(

xαLM(fi ) = xβLM(fj) and i > j)

.

Then >0 is a global monomial ordering on F0.

The syzygies G (ij) and the induced monomial ordering are the keyingredients in Schreyer’s proof of Buchberger’s criterion. Thisproof also yields the following result:

Andreas Steenpass Singular Tutorial

Page 121: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer’s Algorithm

Theorem (Schreyer). Let g1, . . . , gt ∈ F \ {0} form a Grobnerbasis with respect to a global monomial ordering >. The syzygiesG (ij)∈ F0 arising from Buchberger’s criterion form a Grobner basisfor the syzygies on g1, . . . , gt with respect to the inducedmonomial ordering on F0. In particular, the G (ij) generate allsyzygies on g1, . . . , gt .

Andreas Steenpass Singular Tutorial

Page 122: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer’s Algorithm

Theorem (Schreyer). Let g1, . . . , gt ∈ F \ {0} form a Grobnerbasis with respect to a global monomial ordering >. The syzygiesG (ij)∈ F0 arising from Buchberger’s criterion form a Grobner basisfor the syzygies on g1, . . . , gt with respect to the inducedmonomial ordering on F0. In particular, the G (ij) generate allsyzygies on g1, . . . , gt .

If we start from an arbitrary set of generators f1, . . . , fr andcompute a Grobner basis f1, . . . , fr , fr+1, . . . , ft using Buchberger’salgorithm, the syzygies G (ij) either arise from a division withremainder zero or from a division leading to a new Grobner basiselement.

Andreas Steenpass Singular Tutorial

Page 123: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Schreyer’s Algorithm

Theorem (Schreyer). Let g1, . . . , gt ∈ F \ {0} form a Grobnerbasis with respect to a global monomial ordering >. The syzygiesG (ij)∈ F0 arising from Buchberger’s criterion form a Grobner basisfor the syzygies on g1, . . . , gt with respect to the inducedmonomial ordering on F0. In particular, the G (ij) generate allsyzygies on g1, . . . , gt .

If we start from an arbitrary set of generators f1, . . . , fr andcompute a Grobner basis f1, . . . , fr , fr+1, . . . , ft using Buchberger’salgorithm, the syzygies G (ij) either arise from a division withremainder zero or from a division leading to a new Grobner basiselement.

From the G (ij), the syzygies on the original generators are obtainedby means of linear algebra.

Andreas Steenpass Singular Tutorial

Page 124: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Example

Example.

> ring R = 0, (x,y,z), dp;

> ideal I = x,y,z;

> print(syz(I));

0, -y,-z,

-z,x, 0,

y, 0, x

By iterating the process of computing syzygies, starting from afinitely generated R-module M, we get a free resolution of M:

0 Moo F0ϕ0

oo F1ϕ1

oo . . .oo Fi−1oo Fi

ϕioo Fi+1

ϕi+1oo . . .oo

Andreas Steenpass Singular Tutorial

Page 125: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Example

We continue with our example:

> resolution FI = res(I, 0);

> print(FI);

[1]:

_[1]=z

_[2]=y

_[3]=x

[2]:

_[1]=-y*gen(1)+z*gen(2)

_[2]=-x*gen(1)+z*gen(3)

_[3]=-x*gen(2)+y*gen(3)

[3]:

_[1]=x*gen(1)-y*gen(2)+z*gen(3)

Andreas Steenpass Singular Tutorial

Page 126: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Syzygies: Example

> print(FI[2]);

-y,-x,0,

z, 0, -x,

0, z, y

> print(FI[3]);

x,

-y,

z

Andreas Steenpass Singular Tutorial

Page 127: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Ideal Intersections via Syzygies

Syzygies can also be used to compute ideal intersections and idealquotients.

Andreas Steenpass Singular Tutorial

Page 128: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Ideal Intersections via Syzygies

Syzygies can also be used to compute ideal intersections and idealquotients.

Given ideals I = 〈f1, . . . , fr 〉 and J = 〈g1, . . . , gs〉 of K [x1, . . . , xn],compute the syzygies on the columns of the matrix

(

1 f1 . . . fr 0 . . . 01 0 . . . 0 g1 . . . gs

)

.

The entries of the first row of the resulting syzygy matrix generateI ∩ J.

Andreas Steenpass Singular Tutorial

Page 129: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Quotient Ideals Syzygies

In the same way, we get generators for I : J from the matrix

g1 f1 . . . fr 0 . . . . . . 0g2 0 . . . 0 f1 . . . fr 0 . . . 0...

. . .

gs 0 . . . . . . 0 f1 . . . fr

.

Andreas Steenpass Singular Tutorial

Page 130: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 131: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

5 86 2 5

6 4 77 9 65 2 6 1

3 6 43 7 4

1 5 86 1

Andreas Steenpass Singular Tutorial

Page 132: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Andreas Steenpass Singular Tutorial

Page 133: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Associate to the places in a Sudoku the variables x1, . . . , x81and to each variable xi the polynomial Fi (xi) =

∏9j=1(xi − j).

Andreas Steenpass Singular Tutorial

Page 134: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Associate to the places in a Sudoku the variables x1, . . . , x81and to each variable xi the polynomial Fi (xi) =

∏9j=1(xi − j).

Let E = {(i , j) | i < j and (i , j) corresponds to a placein the same row, column or 3× 3− box}.

Andreas Steenpass Singular Tutorial

Page 135: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Associate to the places in a Sudoku the variables x1, . . . , x81and to each variable xi the polynomial Fi (xi) =

∏9j=1(xi − j).

Let E = {(i , j) | i < j and (i , j) corresponds to a placein the same row, column or 3× 3− box}.

For (i , j) ∈ E , let Gi ,j =Fi−Fj

xi−xj.

Andreas Steenpass Singular Tutorial

Page 136: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Associate to the places in a Sudoku the variables x1, . . . , x81and to each variable xi the polynomial Fi (xi) =

∏9j=1(xi − j).

Let E = {(i , j) | i < j and (i , j) corresponds to a placein the same row, column or 3× 3− box}.

For (i , j) ∈ E , let Gi ,j =Fi−Fj

xi−xj.

Let I ⊂ Q[x1, . . . , x81] be the ideal generated by the 891polynomials {Gi ,j}(i ,j)∈E and {Fi}i=1,...,9.

Andreas Steenpass Singular Tutorial

Page 137: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

To solve Sudokos, we proceed as follows:

Associate to the places in a Sudoku the variables x1, . . . , x81and to each variable xi the polynomial Fi (xi) =

∏9j=1(xi − j).

Let E = {(i , j) | i < j and (i , j) corresponds to a placein the same row, column or 3× 3− box}.

For (i , j) ∈ E , let Gi ,j =Fi−Fj

xi−xj.

Let I ⊂ Q[x1, . . . , x81] be the ideal generated by the 891polynomials {Gi ,j}(i ,j)∈E and {Fi}i=1,...,9.

Then a = (a1, . . . , a81) ∈ V (I ) iff ai ∈ {1, . . . , 9} and ai 6= ajfor (i , j) ∈ E .

Andreas Steenpass Singular Tutorial

Page 138: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

A well posed Sudoku has a unique solution.

Andreas Steenpass Singular Tutorial

Page 139: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

A well posed Sudoku has a unique solution.

Let L ⊂ {1, . . . , 81} be the set of pre-assigned places, and let{ai}i∈L be the corresponding numbers of an explicit Sudoku S.

Andreas Steenpass Singular Tutorial

Page 140: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

A well posed Sudoku has a unique solution.

Let L ⊂ {1, . . . , 81} be the set of pre-assigned places, and let{ai}i∈L be the corresponding numbers of an explicit Sudoku S.

Then IS = I + 〈{xi − ai}i∈L〉 is the ideal associated to theSudoku S.

Andreas Steenpass Singular Tutorial

Page 141: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Sudoku

A well posed Sudoku has a unique solution.

Let L ⊂ {1, . . . , 81} be the set of pre-assigned places, and let{ai}i∈L be the corresponding numbers of an explicit Sudoku S.

Then IS = I + 〈{xi − ai}i∈L〉 is the ideal associated to theSudoku S.

The reduced Grobner basis of IS with respect to thelexicographical ordering has the shape x1 − a1, . . . , x81 − a81,and (a1, . . . , a81) is the solution of the Sudoku.

Andreas Steenpass Singular Tutorial

Page 142: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Table of Contents

1 Getting started with Singular by examples

2 Basic concepts of the mathematical background

3 Singular as a Software: Ressources and the Singular Community

4 Challenges in Computer Algebra

5 Singular’s modstd.lib

6 Schreyer’s Algorithm for Syzygies

7 Sudoku

8 Primary Decomposition with Singular

Andreas Steenpass Singular Tutorial

Page 143: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

Definition. A proper ideal Q of a ring R is said to be primary iff , g ∈ R, fg ∈ Q and f 6∈ Q implies g ∈ rad Q. In this case,P = rad Q is a prime ideal, and Q is also said to be a P-primaryideal. Given any ideal I of R , a primary decomposition of I is anexpression of I as an intersection of finitely many primary ideals.

Andreas Steenpass Singular Tutorial

Page 144: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

Definition. A proper ideal Q of a ring R is said to be primary iff , g ∈ R, fg ∈ Q and f 6∈ Q implies g ∈ rad Q. In this case,P = rad Q is a prime ideal, and Q is also said to be a P-primaryideal. Given any ideal I of R , a primary decomposition of I is anexpression of I as an intersection of finitely many primary ideals.

Now suppose that R is Noetherian. Then every proper ideal I of Rhas a primary decomposition. We can always achieve that such adecomposition I =

⋂ri=1Qi is minimal. That is, the prime ideals

Pi = rad Qi are all distinct and none of the Qi can be left out. Inthis case, the Pi are uniquely determined by I and are referred toas the associated primes of I . If Pi is minimal among P1, . . . ,Pr

with respect to inclusion, it is called a minimal associated primeof I .

Andreas Steenpass Singular Tutorial

Page 145: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The minimal associated primes of I are precisely the minimal primeideals containing I . Their intersection is equal to rad I . Everyprimary ideal occuring in a minimal primary decomposition of I iscalled a primary component of I . The component is said to beisolated if its radical is a minimal associated prime of I .Otherwise, it is said to be embedded. The isolated componentsare uniquely determined by I , the others are far from being unique.

Andreas Steenpass Singular Tutorial

Page 146: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The minimal associated primes of I are precisely the minimal primeideals containing I . Their intersection is equal to rad I . Everyprimary ideal occuring in a minimal primary decomposition of I iscalled a primary component of I . The component is said to beisolated if its radical is a minimal associated prime of I .Otherwise, it is said to be embedded. The isolated componentsare uniquely determined by I , the others are far from being unique.

From the definitions, it is clear that there is a number of differenttasks coming with primary decomposition.

Andreas Steenpass Singular Tutorial

Page 147: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The minimal associated primes of I are precisely the minimal primeideals containing I . Their intersection is equal to rad I . Everyprimary ideal occuring in a minimal primary decomposition of I iscalled a primary component of I . The component is said to beisolated if its radical is a minimal associated prime of I .Otherwise, it is said to be embedded. The isolated componentsare uniquely determined by I , the others are far from being unique.

From the definitions, it is clear that there is a number of differenttasks coming with primary decomposition. These range fromcomputing radicals via computing the minimal associated primes tocomputing a full primary decomposition.

Andreas Steenpass Singular Tutorial

Page 148: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The minimal associated primes of I are precisely the minimal primeideals containing I . Their intersection is equal to rad I . Everyprimary ideal occuring in a minimal primary decomposition of I iscalled a primary component of I . The component is said to beisolated if its radical is a minimal associated prime of I .Otherwise, it is said to be embedded. The isolated componentsare uniquely determined by I , the others are far from being unique.

From the definitions, it is clear that there is a number of differenttasks coming with primary decomposition. These range fromcomputing radicals via computing the minimal associated primes tocomputing a full primary decomposition. A variety ofcorresponding algorithms is implemented in the Singular libraryprimdec.lib.

Andreas Steenpass Singular Tutorial

Page 149: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The minimal associated primes of I are precisely the minimal primeideals containing I . Their intersection is equal to rad I . Everyprimary ideal occuring in a minimal primary decomposition of I iscalled a primary component of I . The component is said to beisolated if its radical is a minimal associated prime of I .Otherwise, it is said to be embedded. The isolated componentsare uniquely determined by I , the others are far from being unique.

From the definitions, it is clear that there is a number of differenttasks coming with primary decomposition. These range fromcomputing radicals via computing the minimal associated primes tocomputing a full primary decomposition. A variety ofcorresponding algorithms is implemented in the Singular libraryprimdec.lib. The two main algorithms for computing a fullprimary decomposition are primdecSY and primdecGTZ.

Andreas Steenpass Singular Tutorial

Page 150: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The starting point of the GTZ-algorithm is the following simpleobservation:

Andreas Steenpass Singular Tutorial

Page 151: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The starting point of the GTZ-algorithm is the following simpleobservation:

Lemma (Splitting Tool). If I ⊂ K [x1, . . . , xn] is an ideal, ifh ∈ K [x1, . . . , xn] is a polynomial, and if m ≥ 1 is an integer suchthat I : 〈h〉∞ = I : 〈h〉m, then

I =(

I : 〈h〉m)

∩ 〈I , hm〉 .

Andreas Steenpass Singular Tutorial

Page 152: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

The starting point of the GTZ-algorithm is the following simpleobservation:

Lemma (Splitting Tool). If I ⊂ K [x1, . . . , xn] is an ideal, ifh ∈ K [x1, . . . , xn] is a polynomial, and if m ≥ 1 is an integer suchthat I : 〈h〉∞ = I : 〈h〉m, then

I =(

I : 〈h〉m)

∩ 〈I , hm〉 .

The key result on which the algorithm is based specifies whichpolynomials h are considered:

Andreas Steenpass Singular Tutorial

Page 153: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

Proposition Let I ( K [x] = K [x1, . . . , xn] be a proper ideal, andlet u ⊂ x be a subset of maximal cardinality such thatI ∩ K [u] = {0}. Then:

The ideal I K (u)[x\u] ⊂ K (u)[x\u] is zero-dimensional.

Let > = (>x\u , >u) be a global product ordering on K [x],and let G be a Grobner basis for I with respect to >. Then Gis a Grobner basis for I K (u)[x\u] with respect to themonomial ordering obtained by restricting > to the monomialsin K [x\u]. Further, if h ∈ K [u] is the least common multipleof the leading coefficients of the elements of G (regarded aspolynomials in K (u)[x\u]), then

I K (u)[x\u] ∩ K [x] = I : 〈h〉∞ .

Andreas Steenpass Singular Tutorial

Page 154: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

All primary components of the ideal I K (u)[x\u] ∩ K [x] havethe same dimension, namely dim I . Further, ifI K (u)[x\u] = Q1 ∩ . . . ∩ Qr is the minimal primarydecomposition, then

I K (u)[x\u] ∩ K [x] = (Q1 ∩ K [x]) ∩ . . . ∩ (Qr ∩ K [x])

is the minimal primary decomposition, too.

Andreas Steenpass Singular Tutorial

Page 155: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

All primary components of the ideal I K (u)[x\u] ∩ K [x] havethe same dimension, namely dim I . Further, ifI K (u)[x\u] = Q1 ∩ . . . ∩ Qr is the minimal primarydecomposition, then

I K (u)[x\u] ∩ K [x] = (Q1 ∩ K [x]) ∩ . . . ∩ (Qr ∩ K [x])

is the minimal primary decomposition, too.

Note that if > is a global monomial ordering on K [x], then everysubset u ⊂ x of maximal cardinality satisfyingLM>(I ) ∩ K [u] = {0} is also a subset of maximal cardinality suchthat I ∩ K [u] = {0}.

Andreas Steenpass Singular Tutorial

Page 156: Andreas Steenpass Workshop on Computational Commutative ...math.ipm.ac.ir/conferences/2011/cca2011/SlidesShow-Steenpass.pdf · > NF(g, J); 0 // g is in I Andreas Steenpass Singular

Primary Decomposition

By recursion, the proposition allows us to reduce the general caseof primary decomposition to the zero-dimensional case. In turn, ifI ⊂ K [x] is a zero-dimensional ideal “in general position” (withrespect to the lexicographic order satisfying x1 > · · · > xn), and ifhn is a generator for I ∩ K [xn], the minimal primary decompositionof I is obtained by factorizing hn. In characteristic zero, thecondition that I is in general position can be achieved by means ofa generic linear coordinate transformation

Andreas Steenpass Singular Tutorial