-- -*- M2-comint -*- hash: 14694474637641074729

i1 : R = QQ[x,y,z]

o1 = R

o1 : PolynomialRing

i2 : P2 = Proj(R)

o2 = P2

o2 : ProjectiveVariety

i3 : phi = rationalMapping (P2, P2, {y*z,x*z,x*y})

o3 = P2 - - - > P2   {y*z, x*z, x*y}

o3 : RationalMapping

i4 : ident = rationalMapping (P2, P2, {x,y,z})

o4 = P2 - - - > P2   {x, y, z}

o4 : RationalMapping

i5 : phi*phi == ident

o5 = true

i6 : P5ring = ZZ/103[a..f];

i7 : R = ZZ/103[x,y,z];

i8 : P2 = Proj R;

i9 : identP2 = rationalMapping(P2, P2, {x,y,z});

i10 : M = matrix{{a,b,c},{d,e,f}};

                   2           3
o10 : Matrix P5ring  <-- P5ring

i11 : blowUp = Proj(P5ring/(minors(2, M)+ideal(b - d)));

i12 : identBlowUp = rationalMapping(blowUp, blowUp, {a,b,c,d,e,f});

i13 : tau = rationalMapping(P2, blowUp,{a, b, c});

i14 : tauInverse = tau^-1;

i15 : tau*tauInverse == identP2 --a map composed with its inverse is the identity

o15 = true

i16 : tauInverse*tau == identBlowUp

o16 = true

i17 : phi^3 == phi^-1

o17 = true

i18 : phi^-2 == ident

o18 = true

i19 : phi^1 == ident

o19 = false

i20 : 
