% Authors: R/"udiger Achilles and Davide Aliffi % achilles@dm.unibo.it, aliffi@dm.unibo.it COMMENT This is an example session demonstrating and testing the facilities offered by the module SEGRE, an extension of the REDUCE package CALI. END COMMENT; comment ################################################## ### ### ### Extended index of intersection ### ### ### ################################################## end comment; % The following example is taken from % [K.J. Nowak: Improper intersections in complex analytic geometry. % Dissertationes Math. 391 (2000)], p.55, Example 5. % Let us consider the following cubic surface v in P^3: setring(vars(z,3),{},lex); f:=z0*z1*z2+z1*z2*z3+z2*z3*z0+z3*z0*z1; setideal(v,{f}); dim v; codim v; % Let us compute the singular locus of v. singv:=singular_locus(v,1); setideal(singv,singv)$ radical singv; setideal(sing,ws); % Of course, the radical ideal sing cannot have embedded primary % components. Hence we may use easyprimarydecomposition. easyprimarydecomposition ws; % We see that the singular locus of v consists of the four points % P_0 = (1:0:0:0), P_1 = (0:1:0:0), P_2 = (0:0:1:0), P_3 = (0:0:0:1). % Let us "localize" at P_0. setring(rest first getring(v),{},lex); setideal(v0,sub({z0=1},v)); degree v0; % The correct way to calculate the multiplicity of v at P_0 is: samuelmult(v0,{z1,z2,z3}); % Now let us compute the extended index of the self-intersection % of v at P_0. int_segre{v0,v0}; % This means that d(v,v;P_0) = 2 + 2 = 4. % At the end, let us calculate the St\"uckrad-Vogel cycle of the % self-intersection of v in P^3. setring getring(v); int_segre{v,v}; % So we see in dimension 2 (= Krull-dimension 3) the global % contribution 3 of v and in dimension 1 a contribution of 6 % that comes from a movable polar curve (movable but passing % through the four singular points). % Let us check that v is the only distinguished (that is, fixed) % component of the intersection cycle. nc:=int_ncone{v,v}; setideal(nc,nc)$ isprime nc; ;end;