New developments in Singular H. Sch onemann University of - - PowerPoint PPT Presentation

new developments in singular
SMART_READER_LITE
LIVE PREVIEW

New developments in Singular H. Sch onemann University of - - PowerPoint PPT Presentation

New developments in Singular H. Sch onemann University of Kaiserslautern, Germany 2016/03/31 1 / 43 What is Singular ? A computer algebra system for polynomial computations, with special emphasis on algebraic geometry, commutative and


slide-1
SLIDE 1

New developments in Singular

  • H. Sch¨
  • nemann

University of Kaiserslautern, Germany 2016/03/31

1 / 43

slide-2
SLIDE 2

What is Singular?

A computer algebra system for polynomial computations, with special emphasis on algebraic geometry, commutative and non-commutative algebra, singularity theory, and with packages for convex and tropical geometry. It is free and open-source under the GNU General Public Licence.

2 / 43

slide-3
SLIDE 3

Open development model

3 / 43

slide-4
SLIDE 4

Open development model

Singular issue tracker

Interaction with user base, bug & feature tracking

4 / 43

slide-5
SLIDE 5

What is Singular?

Over 30 development teams worldwide, over 170 libraries for advanced topics.

5 / 43

slide-6
SLIDE 6

What is Singular?

Singular consists of a kernel, written in C/C + +, and containing the core algorithms, libraries, written in the Singular language which provides a convenient way of user interaction and adding new mathematical features, and a comprehensive online manual and help function.

6 / 43

slide-7
SLIDE 7

Singular Libraries

7 / 43

slide-8
SLIDE 8

Example: Parametrizing Rational Curves

Example

> ring R = 0, (x,y,z), dp; > poly f = x5+10x4y+20x3y2+130x2y3-20xy4+20y5-2x4z-40x3yz-150x2y2z

  • 90xy3z-40y4z+x3z2+30x2yz2+110xy2z2+20y3z2;

> LIB "paraplanecurves.lib"; > genus(f); > paraPlaneCurve(f); // ’paraPlaneCurve’ created a ring together with an ideal PARA. > def RP1 = paraPlaneCurve(f);setring RP1;PARA; PARA[1]=25s5-1025s4t+14825s3t2-85565s2t3+146420st4-20780t5 PARA[2]=25s5-1400s4t+30145s3t2-305650s2t3+1396410st4-2023972t5 PARA[3]=25s5-1025s4t+15575s3t2-116205s2t3+562440st4-1898652t5

8 / 43

slide-9
SLIDE 9

Example: Intersection Theory

Example

> LIB "schubert.lib"; > variety G = Grassmannian(2,4); > def r = G.baseRing; > setring r; > sheaf S = makeSheaf(G,subBundle); > sheaf B = dualSheaf(S)^3; > integral(G,topChernClass(B));

9 / 43

slide-10
SLIDE 10

Example: Intersection Theory

Example (continued)

27

Some keywords

Schubert calculus, double point formulas, excess intersection formula, equivariant intersection theory using Bott’s formula, Gromov-Witten invariants.

10 / 43

slide-11
SLIDE 11

Key Algorithms in Singular

Basic stuff

Gr¨

  • bner and standard Bases;

free resolutions; polynomial factorization: Factory.

More advanced stuff

Primary decomposition: algorithms of Gianni-Trager-Zacharias, Shimoyama-Yokoyama, Eisenbud-Huneke-Vasconcelos: primdec.lib.; normalization: normal.lib, locnormal.lib, modnormal.lib. parametrization of rational plane curves: paraplanecurves.lib ...

11 / 43

slide-12
SLIDE 12

Parallelization: Processes

processes, different memory areas Problem: data transfer can use a cluster of machines uses for Gr¨

  • bner base computation:

Chinese Remainder Theorem and Rational Reconstruction

12 / 43

slide-13
SLIDE 13

Parallelization: Gr¨

  • bner bases via Chinese Remainder

Theorem

choose (lucky) primes according to available CPU cores/machines compute a complete reduced Gr¨

  • bner basis modulo these primes

combine by rational reconstruction (Farey)

13 / 43

slide-14
SLIDE 14

Parallelization: Threads

threads - same process, common memory Problem: synchronization of data access uses for Gr¨

  • bner base computation:

Matrix operations (Gauss, F4)

14 / 43

slide-15
SLIDE 15

Parallelization: Threads

MathicGB (B. Roune): Gr¨

  • bner basis computation via matrix
  • perations

matrix of machine size integers (modulo p) pivot parts used by all threads

15 / 43

slide-16
SLIDE 16

Parallelization: Thread safe interpreter

threads - same process, common memory Problem: synchronization of data access different memory domains

16 / 43

slide-17
SLIDE 17

Example: Coarse Grained Parallelism in Singular

Example

> LIB"parallel.lib"; > LIB"random.lib"; > ring R = 0,x(1..4),dp; > ideal I = randomid(maxideal(3),3,100); > proc sizeStd(ideal I, string monord) {def R = basering; list RL = ringlist(R); RL[3][1][1] = monord; def S = ring(RL); setring(S); return(size(std(imap(R,I))));}

17 / 43

slide-18
SLIDE 18

Example: Coarse Grained Parallelism in Singular

Example

> list commands = " sizeStd"," sizeStd"; > list args = list(I,"lp"),list(I,"dp"); > parallelWaitFirst(commands, args); [1] empty list [2] 11 > parallelWaitAll(commands, args); [1] 55 [2] 11

18 / 43

slide-19
SLIDE 19

Example: Adjoint Ideals

We develop Parallel local-to-global algorithm computing G as intersection of local adjoint ideals. For C over Q, parallel modular approach with efficient verification test. Implementation in adjointideal.lib. Applications to computation of Riemann-Roch spaces (brillnoether.lib) rational parametrizations (paraplanecurves.lib).

19 / 43

slide-20
SLIDE 20

Example: De Rham Cohomology

General implementation of the algorithm of Oaku/Takayama/Walther for computing the de Rham cohomology of the complement U of a complex affine variety: deRham.lib. De Rham cohomology of U is the hypercohomology of the de Rham complex on U, i.e. the complex of algebraic differential forms on U. Grothendieck and Deligne showed that it agrees with singular cohomology, hence, can be used to compute Betti numbers. Ongoing: Compute Gauss-Manin systems (direct images of D-modules), local monodromy.

20 / 43

slide-21
SLIDE 21

New Libraries in Singular

Framework for hyperplane arrangements: arr.lib; Riemann-Roch spaces: hess.lib, brillnoether.lib; Intersection theory: schubert.lib; New algorithms for computing tropical varieties: gfanlib.so; De Rham Cohomology: deRham.lib; GIT-fans in geometric invariant theory: gitfan.lib. Parallel Computation of Gr¨

  • bner Bases over Q (modstd.lib) and
  • ver algebraic function fields (ffmodstd.lib,nfmodstd.lib)

Symbolic Computation with Chern Classes: chern.lib ...

21 / 43

slide-22
SLIDE 22

Connections to other Systems

GAP

Groups

Singular

Algebraic Geometry

polymake

Convex Geometry

ANTIC

Number Theory

Included subsystems

Factory: Polynomial Factorization; NTL: arithmetic for Number Theory; Flint: arithmetic for Number Theory; Plural: non-commutative stuff.

22 / 43

slide-23
SLIDE 23

Homalg Example: From groups to vector bundles

gap> LoadPackage( "repsn" );; gap> LoadPackage( "GradedModules" );; gap> G := SmallGroup( 1000, 93 ); <pc group of size 1000 with 6 generators> gap> Display( StructureDescription( G ) ); ((C5 x C5) : C5) : Q8

23 / 43

slide-24
SLIDE 24

Homalg Example: From groups to vector bundles

gap> V := Irr( G )[6];; Degree( V ); 5 gap> T0 := Irr( G )[5];; Degree( T0 ); 2 gap> T1 := Irr( G )[8];; Degree( T1 ); 5 gap> mu0 := ConstructTateMap( V, T0, T1, 2 ); <A homomorphism of graded left modules>

24 / 43

slide-25
SLIDE 25

Homalg Example: From groups to vector bundles

gap> A := HomalgRing( mu0 ); Q{e0,e1,e2,e3,e4} (weights: [ -1, -1, -1, -1, -1 ]) gap> M:=GuessModuleOfGlobalSectionsFromATateMap(2, mu0);; gap> ByASmallerPresentation( M ); <A graded non-zero module presented by 92 relations for 19 generators>

25 / 43

slide-26
SLIDE 26

Homalg Example: From groups to vector bundles

gap> S := HomalgRing( M ); Q[x0,x1,x2,x3,x4] (weights: [ 1, 1, 1, 1, 1 ]) gap> ChernPolynomial( M ); ( 2 | 1-h+4*h^2 ) -> P^4 gap> tate := TateResolution( M, -5, 5 );;

26 / 43

slide-27
SLIDE 27

Homalg Example: From groups to vector bundles

gap> Display( BettiTable( tate ) ); total: 100 37 14 10 5 2 5 10 14 37 100 ? ? ? ?

  • ---------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

4: 100 35 4 . . . . . . . . 3: * . 2 10 10 5 . . . . . . 2: * * . . . . . 2 . . . . . 1: * * * . . . . . . 5 10 10 2 . 0: * * * * . . . . . . . . 4 35 100

  • ---------|---|---|---|---|---|---|---|---|---|---|---|---|---|---S

twist:

  • 9
  • 8
  • 7
  • 6
  • 5
  • 4
  • 3
  • 2
  • 1

1 2 3 4 5

  • Euler:

100 35 2 -10 -10

  • 5

2

  • 5 -10 -10

2 35 100

27 / 43

slide-28
SLIDE 28

Computational Primary Decomposition: History

algorithm by Wu in Maple (Wu-Ritt-process, 1989): via characteristic sets algorithm by Gianni,Traeger,Zacharias in AXIOM (1988) via factorization algorithm by Eisenbud, Huneke, Vasconcelos (1992) via equidimensional decomposition algorithm by Shimoyama, Yokoyama (1996) via characteristic series Singular implements GTZ, SY (1998), EHV (2001)

28 / 43

slide-29
SLIDE 29

Computational Primary Decomposition by the Algorithm of Eisenbud, Huneke, Vasconcelos

The algorithm by Eisenbud, Huneke, Vasconcelos decomposes into equidimensional parts Its main splitting tools is Proposition. If I ⊆ R = K[x1, ..xn] is an ideal, then the equidimensional hull of I E(I) = AnnExtn−d

R

(R/I, R), where d = dim(I).

29 / 43

slide-30
SLIDE 30

Computational Primary Decomposition by Characteristic Series

Let < be the lexicographical ordering on R = K[x1, ..., xn] with x1 < ... < xn. For f ∈ R let lvar(f ) (the leading variable of f ) be the largest variable in f , i.e., if f = as(x1, ..., xk−1)xs

k + ... + a0(x1, ..., xk−1) for

some k ≤ n then lvar(f ) = xk.

30 / 43

slide-31
SLIDE 31

Computational Primary Decomposition by Characteristic Series

Let ini(f ) := as(x1, ..., xk−1). The pseudoremainder r = prem(g, f ) of g with respect to f is defined by the equality ini(f )a · g = qf + r with deglvar(f )(r) < deglvar(f )(f ) and a minimal. A set T = {f1, ..., fr} ⊂ R is called triangular if lvar(f1) < ... < lvar(fr). Moreover, let U ⊂ T, then (T, U) is called a triangular system, if T is a triangular set such that ini(T) does not vanish on V (T) \ V (U)(=: V (T \ U)).

31 / 43

slide-32
SLIDE 32

Irreducible characteristic series

T is called irreducible if for every i there are no di,f ′

i ,f ′′ i

such that lvar(di) < lvar(fi) = lvar(f ′

i ) = lvar(f ′′ i ),

0 ∈ prem({di, ini(f ′

i ), ini(f ′′ i )}, {f1, ..., fi−1}),

prem(difi − f ′

i f ′′ i , {f1, ..., fi−1}) = 0.

(T, U) is called irreducible if T is irreducible.

32 / 43

slide-33
SLIDE 33

Irreducible characteristic series

The main result on triangular sets is the following: Let G = {g1, ..., gs} ⊂ R, then there are irreducible triangular sets T1, ..., Tl such that V (G) = l

i=1(V (Ti \ Ii)) where Ii = {ini(f ) | f ∈ Ti}. Such a

set {T1, ..., Tl} is called an irreducible characteristic series of the ideal (G).

33 / 43

slide-34
SLIDE 34

Preprocessing: The Factorizing Buchberger Algorithm

The factorizing Buchberger algorithm is the combination of Buchberger algorithm with factorization: each new element for the Gr¨

  • bnerbasis will

be factorized, and, if reducible, used to split the computation into several branches corresponding to the factors. Applied to an ideal I = (p1, ..., ps) it computes a list of Gr¨

  • bner bases G1, ..., Gr such that

V (I) = V (G1) ∪ ... ∪ V (Gr) . The V (Gi) need not be irreducible, so this algorithm is mainly used as a preprocessing step.

34 / 43

slide-35
SLIDE 35

Parallelizing: The Factorizing Buchberger Algorithm

input: S = {s1, ..., sr} partial Gr¨

  • bner basis

D set of non-zero constraints (may be empty) L set of pairs etc. compute the Spoly h from L try to factor h

◮ if h does not factor: update S, L, continue ◮ h = h1...hr: new sub-problems: Si = S ∪ {hi}, Di = D ∪ {h1...hi−1},

update Li

◮ check for subproblems describing the empty set: discard (Si, Di, Li) if

(Di) ⊆ (Si)

35 / 43

slide-36
SLIDE 36

Parallelizing: The Factorizing Buchberger Algorithm

number of sub-problems vary all sub-problems are independent of each other work stealing can be used as the scheduling strategy to organize several workers to process the sub-problems

36 / 43

slide-37
SLIDE 37

Zero-dimensional Primary Decomposition

The lexicographical GB of a zero-dimensional ideal I contains one polynomial f of only the last variable. Let f α1

1 ....f αr r

= f the decomposition of f in irreducible factors. Then the minimal primary decomposition of I is given by I = ∩r

k=1(I, f αk k )

37 / 43

slide-38
SLIDE 38

Primary Decomposition: Reduction to Dimension 0

Proposition Let I K[x] = R be a proper ideal, and let u ⊂ x be a subset of maximal cardinality such that I ∩ 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 Gr¨

  • bner basis for I with respect to >. Then G is a Gr¨
  • bner basis

for I K(u)[x \u] with respect to the monomial ordering obtained by restricting > to the monomials in K[x \u].

38 / 43

slide-39
SLIDE 39

Primary Decomposition: Reduction to Dimension 0

If h ∈ K[u] is the least common multiple of the leading coefficients of the elements of G (regarded as polynomials in K(u)[x \u]), then I K(u)[x \u] ∩ K[x] = I : h∞ .

39 / 43

slide-40
SLIDE 40

Primary Decomposition: Reduction to Dimension 0

Proposition Let I K[x] = R be a proper ideal, and let u ⊂ x be a subset of maximal cardinality such that I ∩ 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 Gr¨

  • bner basis for I with respect to >. Then G is a Gr¨
  • bner basis

for I K(u)[x \u]

40 / 43

slide-41
SLIDE 41

Primary Decomposition: Reduction to Dimension 0

All primary components of the ideal I K(u)[x \u] ∩ K[x] have the same dimension, namely dim I. If I K(u)[x \u] = Q1 ∩ . . . ∩ Qr is the minimal primary decomposition, then I K(u)[x \u] ∩ K[x] = (Q1 ∩ K[x]) ∩ . . . ∩ (Qr ∩ K[x]) is the minimal primary decomposition, too. By recursion, the proposition allows us to reduce the general case of primary decomposition to the zero-dimensional case. In turn, if I ⊂ K[x] is a zero-dimensional ideal “in general position” (with respect to the lexicographic order satisfying x1 > · · · > xn), and if hn is a generator for I ∩ K[xn], the minimal primary decomposition of I is obtained by factorizing hn. In characteristic zero, the condition that I is in general position can be achieved by means of a generic linear coordinate transformation

41 / 43

slide-42
SLIDE 42

Primary decomposition: Summary of basic operations

Gr¨

  • bner basis computation

factorizing polynomials over K resp K(x)) ideal operations: intersection, quotient, saturation coordinate transformation

42 / 43

slide-43
SLIDE 43

Thank you

43 / 43