Typically it is inconvenient to have to use this function unless absolutely necessary. Consider whether the morphism you need may be built via one of the built-in maps, for example via map(FlagBundle,AbstractVariety,AbstractSheaf).
i1 : X = point o1 = point o1 : an abstract variety of dimension 0 |
i2 : RX = intersectionRing X o2 = RX o2 : PolynomialRing |
i3 : Y = abstractProjectiveSpace 3
o3 = Y
o3 : a flag bundle with subquotient ranks {1, 3}
|
i4 : RY = intersectionRing Y o4 = RY o4 : QuotientRing |
i5 : fUpper = map(RX, RY, splice{4:0_RX})
o5 = map(RX,RY,{0, 0, 0, 0})
o5 : RingMap RX <--- RY
|
i6 : fLower = method() o6 = fLower o6 : MethodFunction |
i7 : fLower RX := a -> promote(a,RY) * ctop last bundles Y; |
i8 : incl = abstractVarietyMap(Y,X,fUpper,fLower) o8 = incl o8 : a map to Y from point |
i9 : integral incl_* 1_RX o9 = 1 |
This same example can be done much more easily via:
i10 : X = point o10 = point o10 : an abstract variety of dimension 0 |
i11 : Y = abstractProjectiveSpace 3
o11 = Y
o11 : a flag bundle with subquotient ranks {1, 3}
|
i12 : incl = map(Y,X,OO_X) o12 = incl o12 : a map to Y from point |
The object abstractVarietyMap is a method function with options.