In the example below, we apply the method to check the birationality of a map (deterministically).
i1 : phi = quadroQuadricCremonaTransformation(5,1)
o1 = -- rational map --
source: Proj(QQ[x, y, z, t, u, v])
target: Proj(QQ[x, y, z, t, u, v])
defining forms: {
2
y*z - v ,
2
x*z - u ,
2
x*y - t ,
- z*t + u*v,
- y*u + t*v,
t*u - x*v
}
o1 : RationalMap (Cremona transformation of PP^5 of type (2,2))
|
i2 : K := frac(QQ[vars(0..5)]); phi = phi ** K
o3 = -- rational map --
source: Proj(frac(QQ[a..f])[x, y, z, t, u, v])
target: Proj(frac(QQ[a..f])[x, y, z, t, u, v])
defining forms: {
2
y*z - v ,
2
x*z - u ,
2
x*y - t ,
- z*t + u*v,
- y*u + t*v,
t*u - x*v
}
o3 : RationalMap (quadratic rational map from PP^5 to PP^5)
|
i4 : p = trim minors(2,(vars K)||(vars source phi))
-e -d -c -b -a
o4 = ideal (u + --*v, t + --*v, z + --*v, y + --*v, x + --*v)
f f f f f
o4 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i5 : q = phi p
2
b*e - d*f c*d - e*f - a*b + d
o5 = ideal (u + ---------*v, t + ---------*v, z + ----------*v, y +
d*e - a*f d*e - a*f d*e - a*f
------------------------------------------------------------------------
2 2
- a*c + e - b*c + f
----------*v, x + ----------*v)
d*e - a*f d*e - a*f
o5 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i6 : time phi^** q
-- used 0.137001s (cpu); 0.137294s (thread); 0s (gc)
-e -d -c -b -a
o6 = ideal (u + --*v, t + --*v, z + --*v, y + --*v, x + --*v)
f f f f f
o6 : Ideal of frac(QQ[a..f])[x, y, z, t, u, v]
|
i7 : oo == p
o7 = true
|