# productOfProjectiveSpaces -- Cox ring of a product of projective spaces and it Koszul dual exterior algebra

## Synopsis

• Usage:
(S,E)=productOfProjectiveSpaces N
(S,E)=productOfProjectiveSpaces n
• Inputs:
• N, a list, the list \{n_1,...,n_t\} \, of the dimensions of the factors
• n, an integer, Gives n copies of P^1
• Optional inputs:
• CoefficientField => a ring, default value ZZ/32003, ground field of S,E
• Variables => a list, default value {x, e}, list of 2 symbols
• CohomologyVariables => a list, default value {h, k}, list of 2 symbols
• Outputs:
• S, , homogeneous coordinate ring of P^{n_1}x ... x P^{n_t}
• E, , the corresponding exterior algebra

## Description

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 o6 = ideal (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 ------------------------------------------------------------------------ 2 2 u , u u , u ) 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)

## Ways to use productOfProjectiveSpaces :

• "productOfProjectiveSpaces(List)"
• "productOfProjectiveSpaces(ZZ)"

## For the programmer

The object productOfProjectiveSpaces is .