next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Cremona :: invertBirMap

invertBirMap -- inverse of a birational map

Synopsis

Description

The method computes the inverse rational map of a birational map V(I)⊆ℙn=Proj(K[x0,...,xn]) ---> V(J) ⊆ℙm=Proj(K[y0,...,ym]) represented by a ring map φ:K[y0,...,ym]/J →K[x0,...,xn]/I. If the source variety is a projective space and if a further technical condition is satisfied, then the algorithm used is that described in the paper by Russo and Simis - On birational maps and Jacobian matrices - Compos. Math. 126 (3), 335-358, 2001. For the general case, the algorithm used is the same as for invertBirationalMap (missing documentation) in the package Parametrization (missing documentation). Note that if the passed map is not birational and the option MathMode is set to false, you might not get any error message.

i1 : -- A Cremona transformation of P^20 
     ringP20=QQ[t_0..t_20];
i2 : phi=map(ringP20,ringP20,{t_10*t_15-t_9*t_16+t_6*t_20,t_10*t_14-t_8*t_16+t_5*t_20,t_9*t_14-t_8*t_15+t_4*t_20,t_6*t_14-t_5*t_15+t_4*t_16,t_11*t_13-t_16*t_17+t_15*t_18-t_14*t_19+t_12*t_20,t_3*t_13-t_10*t_17+t_9*t_18-t_8*t_19+t_7*t_20,t_10*t_12-t_2*t_13-t_7*t_16-t_6*t_18+t_5*t_19,t_9*t_12-t_1*t_13-t_7*t_15-t_6*t_17+t_4*t_19,t_8*t_12-t_0*t_13-t_7*t_14-t_5*t_17+t_4*t_18,t_10*t_11-t_3*t_16+t_2*t_20,t_9*t_11-t_3*t_15+t_1*t_20,t_8*t_11-t_3*t_14+t_0*t_20,t_7*t_11-t_3*t_12+t_2*t_17-t_1*t_18+t_0*t_19,t_6*t_11-t_2*t_15+t_1*t_16,t_5*t_11-t_2*t_14+t_0*t_16,t_4*t_11-t_1*t_14+t_0*t_15,t_6*t_8-t_5*t_9+t_4*t_10,t_3*t_6-t_2*t_9+t_1*t_10,t_3*t_5-t_2*t_8+t_0*t_10,t_3*t_4-t_1*t_8+t_0*t_9,t_2*t_4-t_1*t_5+t_0*t_6})

o2 = map(ringP20,ringP20,{t  t   - t t   + t t  , t  t   - t t   + t t  , t t   - t t   + t t  , t t   - t t   + t t  , t  t   - t  t   + t  t   - t  t   + t  t  , t t   - t  t   + t t   - t t   + t t  , t  t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t  t   - t t   + t t  , t t   - t t   + t t  , t t   - t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t   - t t   + t t  , t t   - t t   + t t  , t t   - t t   + t t  , t t  - t t  + t t  , t t  - t t  + t t  , t t  - t t  + t t  , t t  - t t  + t t , t t  - t t  + t t })
                           10 15    9 16    6 20   10 14    8 16    5 20   9 14    8 15    4 20   6 14    5 15    4 16   11 13    16 17    15 18    14 19    12 20   3 13    10 17    9 18    8 19    7 20   10 12    2 13    7 16    6 18    5 19   9 12    1 13    7 15    6 17    4 19   8 12    0 13    7 14    5 17    4 18   10 11    3 16    2 20   9 11    3 15    1 20   8 11    3 14    0 20   7 11    3 12    2 17    1 18    0 19   6 11    2 15    1 16   5 11    2 14    0 16   4 11    1 14    0 15   6 8    5 9    4 10   3 6    2 9    1 10   3 5    2 8    0 10   3 4    1 8    0 9   2 4    1 5    0 6

o2 : RingMap ringP20 <--- ringP20
i3 : time psi=invertBirMap phi
     -- used 0.0769742 seconds

o3 = map(ringP20,ringP20,{- t  t   + t  t   - t  t  , - t  t   + t  t   - t  t  , - t  t   + t  t   - t t  , - t  t   + t  t   - t t  , - t  t   + t t   - t t  , - t  t   + t t   - t t  , - t  t   + t t   - t t  , - t  t   - t t   + t t   - t t   - t t  , - t  t   + t t   - t t  , - t  t   + t t   - t t  , - t t   + t t   - t t  , - t  t   + t  t   - t t  , - t t   - t t   + t t   - t t   - t t  , t t  + t t  - t t  + t t  - t t  , - t t   + t t   - t t  , - t t   + t t   - t t  , - t t  + t t   - t t  , - t t   + t t   - t t   + t t   - t t  , - t t  + t t   - t t   + t t   - t t  , - t t  + t t   - t t   + t t   - t t  , - t t  + t t   - t t  })
                             15 18    14 19    11 20     15 17    13 19    10 20     14 17    13 18    9 20     11 17    10 18    9 19     15 16    3 19    2 20     14 16    3 18    1 20     13 16    3 17    0 20     12 16    8 17    7 18    6 19    5 20     11 16    2 18    1 19     10 16    2 17    0 19     9 16    1 17    0 18     11 13    10 14    9 15     3 12    8 13    7 14    6 15    4 20   3 5    2 6    1 7    0 8    4 16     3 11    2 14    1 15     3 10    2 13    0 15     3 9    1 13    0 14     8 10    7 11    2 12    5 15    4 19     8 9    6 11    1 12    5 14    4 18     7 9    6 10    0 12    5 13    4 17     2 9    1 10    0 11

o3 : RingMap ringP20 <--- ringP20
i4 : time isInverseMap(phi,psi)
     -- used 0.0166458 seconds

o4 = true
i5 : -- A Cremona transformation of P^26 
     ringP26=QQ[t_0..t_26];
i6 : phi=map(ringP26,ringP26,{t_21*t_22-t_20*t_23-t_15*t_24-t_10*t_25-t_0*t_26,t_19*t_22-t_18*t_23-t_16*t_24-t_11*t_25-t_1*t_26,t_19*t_20-t_18*t_21-t_17*t_24-t_12*t_25-t_2*t_26,t_15*t_19-t_16*t_21+t_17*t_23-t_13*t_25-t_3*t_26,t_10*t_19-t_11*t_21+t_12*t_23+t_13*t_24-t_4*t_26,t_0*t_19-t_1*t_21+t_2*t_23+t_3*t_24+t_4*t_25,t_15*t_18-t_16*t_20+t_17*t_22-t_14*t_25-t_5*t_26,t_10*t_18-t_11*t_20+t_12*t_22+t_14*t_24-t_6*t_26,t_0*t_18-t_1*t_20+t_2*t_22+t_5*t_24+t_6*t_25,t_12*t_16-t_11*t_17-t_13*t_18+t_14*t_19-t_7*t_26,t_2*t_16-t_1*t_17-t_3*t_18+t_5*t_19+t_7*t_25,t_12*t_15-t_10*t_17-t_13*t_20+t_14*t_21-t_8*t_26,t_11*t_15-t_10*t_16-t_13*t_22+t_14*t_23-t_9*t_26,t_2*t_15-t_0*t_17-t_3*t_20+t_5*t_21+t_8*t_25,t_1*t_15-t_0*t_16-t_3*t_22+t_5*t_23+t_9*t_25,t_5*t_13-t_3*t_14+t_7*t_15-t_8*t_16+t_9*t_17,t_5*t_12-t_2*t_14-t_6*t_17-t_8*t_18+t_7*t_20,t_3*t_12-t_2*t_13-t_4*t_17-t_8*t_19+t_7*t_21,t_5*t_11-t_1*t_14-t_6*t_16-t_9*t_18+t_7*t_22,t_3*t_11-t_1*t_13-t_4*t_16-t_9*t_19+t_7*t_23,t_2*t_11-t_1*t_12-t_4*t_18+t_6*t_19-t_7*t_24,t_7*t_10-t_8*t_11+t_9*t_12+t_6*t_13-t_4*t_14,t_5*t_10-t_0*t_14-t_6*t_15-t_9*t_20+t_8*t_22,t_3*t_10-t_0*t_13-t_4*t_15-t_9*t_21+t_8*t_23,t_2*t_10-t_0*t_12-t_4*t_20+t_6*t_21-t_8*t_24,t_1*t_10-t_0*t_11-t_4*t_22+t_6*t_23-t_9*t_24,t_4*t_5-t_3*t_6-t_0*t_7+t_1*t_8-t_2*t_9})

o6 = map(ringP26,ringP26,{t  t   - t  t   - t  t   - t  t   - t t  , t  t   - t  t   - t  t   - t  t   - t t  , t  t   - t  t   - t  t   - t  t   - t t  , t  t   - t  t   + t  t   - t  t   - t t  , t  t   - t  t   + t  t   + t  t   - t t  , t t   - t t   + t t   + t t   + t t  , t  t   - t  t   + t  t   - t  t   - t t  , t  t   - t  t   + t  t   + t  t   - t t  , t t   - t t   + t t   + t t   + t t  , t  t   - t  t   - t  t   + t  t   - t t  , t t   - t t   - t t   + t t   + t t  , t  t   - t  t   - t  t   + t  t   - t t  , t  t   - t  t   - t  t   + t  t   - t t  , t t   - t t   - t t   + t t   + t t  , t t   - t t   - t t   + t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   + t t   - t t  , t t   - t t   + t t   + t t   - t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   - t t   + t t  , t t   - t t   - t t   + t t   - t t  , t t   - t t   - t t   + t t   - t t  , t t  - t t  - t t  + t t  - t t })
                           21 22    20 23    15 24    10 25    0 26   19 22    18 23    16 24    11 25    1 26   19 20    18 21    17 24    12 25    2 26   15 19    16 21    17 23    13 25    3 26   10 19    11 21    12 23    13 24    4 26   0 19    1 21    2 23    3 24    4 25   15 18    16 20    17 22    14 25    5 26   10 18    11 20    12 22    14 24    6 26   0 18    1 20    2 22    5 24    6 25   12 16    11 17    13 18    14 19    7 26   2 16    1 17    3 18    5 19    7 25   12 15    10 17    13 20    14 21    8 26   11 15    10 16    13 22    14 23    9 26   2 15    0 17    3 20    5 21    8 25   1 15    0 16    3 22    5 23    9 25   5 13    3 14    7 15    8 16    9 17   5 12    2 14    6 17    8 18    7 20   3 12    2 13    4 17    8 19    7 21   5 11    1 14    6 16    9 18    7 22   3 11    1 13    4 16    9 19    7 23   2 11    1 12    4 18    6 19    7 24   7 10    8 11    9 12    6 13    4 14   5 10    0 14    6 15    9 20    8 22   3 10    0 13    4 15    9 21    8 23   2 10    0 12    4 20    6 21    8 24   1 10    0 11    4 22    6 23    9 24   4 5    3 6    0 7    1 8    2 9

o6 : RingMap ringP26 <--- ringP26
i7 : time psi=invertBirMap phi
     -- used 0.237771 seconds

o7 = map(ringP26,ringP26,{- t t   + t t   + t  t   - t  t   - t t  , - t t   + t t   + t  t   - t  t   - t t  , - t t   + t t   + t  t   - t  t   - t t  , - t t   - t  t   + t  t   - t  t   - t t  , - t t   - t  t   + t  t   - t  t   - t t  , - t t   - t  t   + t  t   - t  t   - t t  , - t t   - t  t   + t  t   - t  t   - t t  , t  t   - t  t   + t  t   - t  t   - t t  , - t  t   + t  t   - t  t   + t  t   - t  t  , - t  t   + t  t   - t  t   + t  t   - t  t  , t t   - t t   + t t   + t  t   - t  t  , - t t   + t t   + t  t   + t t   - t t  , - t t   + t t   + t  t   + t t   - t t  , - t t   - t  t   + t  t   + t t   - t t  , - t t   - t  t   + t  t   + t t   - t t  , t  t   - t  t   + t t   - t t   + t t  , t  t   - t t   + t t   - t t   + t t  , t  t   - t t   + t t   - t t   + t t  , t t  - t t   + t t   - t t   + t t  , t t  - t t   + t t   - t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t   - t t   + t t   - t t   + t t  , t t  - t t  - t t   + t t   - t t  , - t t  + t t  + t t   - t t   + t t  , t t  - t t  - t t  + t t   - t t  })
                             5 22    8 23    14 24    13 25    0 26     5 18    8 19    14 20    10 25    1 26     5 16    8 17    13 20    10 24    2 26     5 15    14 17    13 19    10 23    3 26     5 21    20 23    19 24    17 25    4 26     8 15    14 16    13 18    10 22    6 26     8 21    20 22    18 24    16 25    7 26   17 18    16 19    15 20    10 21    9 26     13 21    17 22    16 23    15 24    11 26     14 21    19 22    18 23    15 25    12 26   0 21    4 22    7 23    12 24    11 25     4 18    7 19    12 20    1 21    9 25     4 16    7 17    11 20    2 21    9 24     4 15    12 17    11 19    3 21    9 23     7 15    12 16    11 18    6 21    9 22   12 13    11 14    0 15    3 22    6 23   10 12    9 14    1 15    3 18    6 19   10 11    9 13    2 15    3 16    6 17   8 9    7 10    1 16    2 18    6 20   5 9    4 10    1 17    2 19    3 20   8 11    7 13    0 16    2 22    6 24   5 11    4 13    0 17    2 23    3 24   8 12    7 14    0 18    1 22    6 25   5 12    4 14    0 19    1 23    3 25   5 7    4 8    0 20    1 24    2 25     5 6    3 8    0 10    1 13    2 14   4 6    3 7    0 9    1 11    2 12

o7 : RingMap ringP26 <--- ringP26
i8 : time isInverseMap(phi,psi)
     -- used 0.0470286 seconds

o8 = true

Ways to use invertBirMap :