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.