Macaulay2 » Documentation
Packages » Pullback :: pullback(RingMap,RingMap)
next | previous | forward | backward | up | index | toc

pullback(RingMap,RingMap) -- Compute the pullback of a diagram of rings

Synopsis

Description

The pullback functor in the category of rings. Given ring maps $f : A \to B$ and $g : C \to B$, this tries to compute the pullback of $\{A \to B \leftarrow C\}$ in the category of rings. It requires that $A \to B$ is a surjective map of rings (otherwise it will give an error) and it requires that $C \to B$ is finite (otherwise it will never terminate). Currently, it requires that the variable names of the rings $A$ and $C$ are distinct and that the variable names of $A$ are variable names of $B$ and those variables get sent to one another. If the Verbose option is turned on, then certain steps in the process will be specified.We begin by doing a pullback which glues two lines together.
i1 : A = QQ[x];
i2 : I = ideal(x);

o2 : Ideal of A
i3 : B = A/I;
i4 : C = QQ[y];
i5 : f = map(B, A);

o5 : RingMap B <-- A
i6 : g = map(B, C, {0});

o6 : RingMap B <-- C
i7 : (pullback(f,g))#0

     QQ[IGen1, CGensInA1]
o7 = --------------------
        IGen1*CGensInA1

o7 : QuotientRing
We next construct the pinch point, otherwise known as Whitneys umbrella, by gluing.
i8 : A = QQ[x,y];
i9 : I = ideal(x);

o9 : Ideal of A
i10 : B = A/I;
i11 : C = QQ[u];
i12 : f = map(B, A);

o12 : RingMap B <-- A
i13 : g = map(B, C, {y^2});

o13 : RingMap B <-- C
i14 : (pullback(f,g))#0

      QQ[IGen1, CGensInA1, KGens1]
o14 = ----------------------------
             2                  2
        IGen1 CGensInA1 - KGens1

o14 : QuotientRing
We include a final example showing how to create a cusp.
i15 : A = QQ[x];
i16 : I = ideal(x^2);

o16 : Ideal of A
i17 : B = A/I;
i18 : C = QQ[]; 
i19 : f = map(B, A); 

o19 : RingMap B <-- A
i20 : g = map(B, C, {});

o20 : RingMap B <-- C
i21 : (pullback(f,g))#0

      QQ[IGen1, KGens1]
o21 = -----------------
            3         2
       IGen1  - KGens1

o21 : QuotientRing

Ways to use this method: