The degrees of the variables for the i-th projective space are indexed x_(i,0),..,x_(i,n_i-1), and have degree (0..0,1,0,..0) with a 1 in the i-th place. The script also caches some values in S.TateData and E.TateData, so that S and E can subsequently find each other and also their cohomology ring.
i1 : (S,E)=productOfProjectiveSpaces{1,2}
o1 = (S, E)
o1 : Sequence
|
i2 : vars S
o2 = | x_(0,0) x_(0,1) x_(1,0) x_(1,1) x_(1,2) |
1 5
o2 : Matrix S <--- S
|
i3 : vars E
o3 = | e_(0,0) e_(0,1) e_(1,0) e_(1,1) e_(1,2) |
1 5
o3 : Matrix E <--- E
|
i4 : (S,E) = productOfProjectiveSpaces({1,1},
Variables =>{getSymbol "u",getSymbol"v"},
CohomologyVariables =>{getSymbol "p",getSymbol "q"},
CoefficientField => QQ)
o4 = (S, E)
o4 : Sequence
|
i5 : (coefficientRing S) === (coefficientRing E) o5 = true |
i6 : trim (ideal vars S)^2
2 2 2 2
o6 = ideal (u , u u , u u , u u , u , u u , u u , u , u u , u )
1,1 1,0 1,1 0,1 1,1 0,0 1,1 1,0 0,1 1,0 0,0 1,0 0,1 0,0 0,1 0,0
o6 : Ideal of S
|
i7 : trim (ideal vars E)^2
o7 = ideal (v v , v v , v v , v v , v v , v v )
1,0 1,1 0,1 1,1 0,0 1,1 0,1 1,0 0,0 1,0 0,0 0,1
o7 : Ideal of E
|
i8 : peek S.TateData
o8 = MutableHashTable{BeilinsonBundles => MutableHashTable{}}
CohomRing => ZZ[p..q]
Rings => (S, E)
|
The object productOfProjectiveSpaces is a method function with options.