new developments in singular - university of liverpoolpjgiblin/vvg60/slides/2...complex on u, i.e....
TRANSCRIPT
-
New developments in Singular
H. SchönemannUniversity of Kaiserslautern, Germany
2016/03/31
1 / 43
-
What is Singular?A computer algebra system for polynomial computations, with specialemphasis 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
-
Open development model
3 / 43
-
Open development model
Singular issue tracker
Interaction with user base, bug & feature tracking
4 / 43
-
What is Singular?
Over 30 development teams worldwide, over 170 libraries for advancedtopics.
5 / 43
-
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 aconvenient way of user interaction and adding new mathematicalfeatures, and
a comprehensive online manual and help function.
6 / 43
-
Singular Libraries
7 / 43
-
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);
0
> 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
-
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
-
Example: Intersection Theory
Example (continued)
27
Some keywords
Schubert calculus, double point formulas, excess intersection formula,equivariant intersection theory using Bott’s formula, Gromov-Witteninvariants.
10 / 43
-
Key Algorithms in SingularBasic 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
-
Parallelization: Processes
processes, different memory areasProblem: data transfer
can use a cluster of machines
uses for Gröbner base computation:Chinese Remainder Theorem and Rational Reconstruction
12 / 43
-
Parallelization: Gröbner bases via Chinese RemainderTheorem
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
-
Parallelization: Threads
threads - same process, common memoryProblem: synchronization of data access
uses for Gröbner base computation:Matrix operations (Gauss, F4)
14 / 43
-
Parallelization: Threads
MathicGB (B. Roune): Gröbner basis computation via matrixoperations
matrix of machine size integers (modulo p)
pivot parts used by all threads
15 / 43
-
Parallelization: Thread safe interpreter
threads - same process, common memoryProblem: synchronization of data access
different memory domains
16 / 43
-
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
-
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
-
Example: Adjoint Ideals
We develop
Parallel local-to-global algorithm computing G as intersection of localadjoint ideals.
For C over Q, parallel modular approach with efficient verificationtest.
Implementation in adjointideal.lib.
Applications to computation of
Riemann-Roch spaces (brillnoether.lib)
rational parametrizations (paraplanecurves.lib).
19 / 43
-
Example: De Rham Cohomology
General implementation of the algorithm of Oaku/Takayama/Waltherfor computing the de Rham cohomology of the complement U of acomplex affine variety: deRham.lib.
De Rham cohomology of U is the hypercohomology of the de Rhamcomplex on U, i.e. the complex of algebraic differential forms on U.
Grothendieck and Deligne showed that it agrees with singularcohomology, hence, can be used to compute Betti numbers.
Ongoing: Compute Gauss-Manin systems (direct images ofD-modules), local monodromy.
20 / 43
-
New Libraries in SingularFramework 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) andover algebraic function fields (ffmodstd.lib,nfmodstd.lib)
Symbolic Computation with Chern Classes: chern.lib
...
21 / 43
-
Connections to other Systems
GAPGroups
SingularAlgebraic Geometry
polymakeConvex Geometry
ANTICNumber Theory
Included subsystems
Factory: Polynomial Factorization;
NTL: arithmetic for Number Theory;
Flint: arithmetic for Number Theory;
Plural: non-commutative stuff.
22 / 43
-
Homalg Example: From groups to vector bundles
gap> LoadPackage( "repsn" );;
gap> LoadPackage( "GradedModules" );;
gap> G := SmallGroup( 1000, 93 );
gap> Display( StructureDescription( G ) );
((C5 x C5) : C5) : Q8
23 / 43
-
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 );
24 / 43
-
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 );
25 / 43
-
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
-
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 . . . . . . . . 0 0 0 0
3: * . 2 10 10 5 . . . . . . 0 0 0
2: * * . . . . . 2 . . . . . 0 0
1: * * * . . . . . . 5 10 10 2 . 0
0: * * * * . . . . . . . . 4 35 100
----------|---|---|---|---|---|---|---|---|---|---|---|---|---|---S
twist: -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5
-------------------------------------------------------------------
Euler: 100 35 2 -10 -10 -5 0 2 0 -5 -10 -10 2 35 100
27 / 43
-
Computational Primary Decomposition: History
algorithm by Wu in Maple (Wu-Ritt-process, 1989): via characteristicsets
algorithm by Gianni,Traeger,Zacharias in AXIOM (1988) viafactorization
algorithm by Eisenbud, Huneke, Vasconcelos (1992) viaequidimensional decomposition
algorithm by Shimoyama, Yokoyama (1996) via characteristic series
Singular implements GTZ, SY (1998), EHV (2001)
28 / 43
-
Computational Primary Decomposition by the Algorithm ofEisenbud, Huneke, Vasconcelos
The algorithm by Eisenbud, Huneke, Vasconcelos decomposes intoequidimensional parts Its main splitting tools isProposition. If I ⊆ R = K [x1, ..xn] is an ideal, then the equidimensionalhull of I E (I ) = AnnExtn−dR (R/I ,R), where d = dim(I ).
29 / 43
-
Computational Primary Decomposition by CharacteristicSeries
Let < be the lexicographical ordering on R = K [x1, ..., xn] withx1 < ... < xn. For f ∈ R let lvar(f ) (the leading variable of f ) be thelargest variable in f , i.e., if f = as(x1, ..., xk−1)x
sk + ... + a0(x1, ..., xk−1) for
some k ≤ n then lvar(f ) = xk .
30 / 43
-
Computational Primary Decomposition by CharacteristicSeries
Let ini(f ) := as(x1, ..., xk−1). The pseudoremainder r = prem(g , f ) of gwith respect to f is defined by the equality ini(f )a · g = qf + r withdeglvar(f )(r) < deglvar(f )(f ) and a minimal. A set T = {f1, ..., fr} ⊂ R iscalled 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 thatini(T ) does not vanish on V (T ) \ V (U)(=: V (T \ U)).
31 / 43
-
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 6∈ prem({di , ini(f ′i ), ini(f ′′i )}, {f1, ..., fi−1}),
prem(di fi − f ′i f ′′i , {f1, ..., fi−1}) = 0.
(T ,U) is called irreducible if T is irreducible.
32 / 43
-
Irreducible characteristic series
The main result on triangular sets is the following: LetG = {g1, ..., gs} ⊂ R, then there are irreducible triangular sets T1, ...,Tlsuch that V (G ) =
⋃li=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
-
Preprocessing: The Factorizing Buchberger Algorithm
The factorizing Buchberger algorithm is the combination of Buchbergeralgorithm with factorization: each new element for the Gröbnerbasis willbe factorized, and, if reducible, used to split the computation into severalbranches 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 apreprocessing step.
34 / 43
-
Parallelizing: The Factorizing Buchberger Algorithm
input: S = {s1, ..., sr} partial Gröbner basisD set of non-zero constraints (may be empty)L set of pairs etc.
compute the Spoly h from L
try to factor hI if h does not factor: update S , L, continueI h = h1...hr : new sub-problems: Si = S ∪ {hi}, Di = D ∪ {h1...hi−1},
update LiI check for subproblems describing the empty set: discard (Si ,Di , Li ) if
(Di ) ⊆ (Si )
35 / 43
-
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 organizeseveral workers to process the sub-problems
36 / 43
-
Zero-dimensional Primary Decomposition
The lexicographical GB of a zero-dimensional ideal I contains onepolynomial f of only the last variable. Let f α11 ....f
αrr = f the
decomposition of f in irreducible factors.Then the minimal primary decomposition of I is given by
I = ∩rk=1(I , fαkk )
37 / 43
-
Primary Decomposition: Reduction to Dimension 0
Proposition Let I ( K [x ] = R be a proper ideal, and let u ⊂ x be asubset 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 Gbe a Gröbner basis for I with respect to >. Then G is a Gröbner basisfor I K (u)[x \u ] with respect to the monomial ordering obtained byrestricting > to the monomials in K [x \u ].
38 / 43
-
Primary Decomposition: Reduction to Dimension 0
If h ∈ K [u] is the least common multiple of the leading coefficients of theelements of G (regarded as polynomials in K (u)[x \u ]), then
I K (u)[x \u ] ∩ K [x ] = I : 〈h〉∞ .
39 / 43
-
Primary Decomposition: Reduction to Dimension 0
Proposition Let I ( K [x ] = R be a proper ideal, and let u ⊂ x be asubset 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 Gbe a Gröbner basis for I with respect to >. Then G is a Gröbner basisfor I K (u)[x \u ]
40 / 43
-
Primary Decomposition: Reduction to Dimension 0
All primary components of the ideal I K (u)[x \u ] ∩ K [x ] have thesame dimension, namely dim I . If I K (u)[x \u ] = Q1 ∩ . . . ∩ Qr is theminimal 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 ofprimary decomposition to the zero-dimensional case. In turn, if I ⊂ K [x ] isa zero-dimensional ideal “in general position” (with respect to thelexicographic order satisfying x1 > · · · > xn), and if hn is a generator forI ∩ K [xn], the minimal primary decomposition of I is obtained byfactorizing hn. In characteristic zero, the condition that I is in generalposition can be achieved by means of a generic linear coordinatetransformation
41 / 43
-
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
-
Thank you
43 / 43