Steenbrink/Estratos.ipynb
2024-03-06 08:32:33 +01:00

41 KiB

In [1]:
T.<t> = QQ[]
S.<x, y, z> = PolynomialRing(QQ, order='neglex')
R.<u, v> = PolynomialRing(QQ, order='neglex')
f = u^2 * v^2 + u^5 + v^5
g = u^3 * v^3 + u^7 + v^7
F = z^3 - 3 * f(u=x, v=y) * z + 2 * g(u=x, v=y)
In [2]:
F.jacobian_ideal().minimal_associated_primes()
Out[2]:
[Ideal (z, y, x) of Multivariate Polynomial Ring in x, y, z over Rational Field]
In [3]:
h = f^3 - g^2
F.discriminant(z)(x=u, y=v) - 108 * h
Out[3]:
0
In [4]:
F.jacobian_ideal().vector_space_dimension()
Out[4]:
65
In [5]:
h.jacobian_ideal().vector_space_dimension()
Out[5]:
148
In [6]:
load('/home/artal/Descargas/ZetaFunctionsNewtonND.py')
In [7]:
Z = ZetaFunctions(h)
In [8]:
[p.factor() for p in Z.get_polyfaces_dictionary(compact=True)]
Out[8]:
[(-1) * v^14,
 (-1) * u^14,
 (-2) * u^3 * v^10,
 (-2) * v^3 * u^10,
 (-1) * v^10 * (v^4 + 2*u^3),
 (-1) * u^10 * (2*v^3 + u^4),
 (-1) * (v + u) * u^3 * v^3 * (2*v^6 - 5*u*v^5 + 5*u^2*v^4 - 5*u^3*v^3 + 5*u^4*v^2 - 5*u^5*v + 2*u^6)]
In [9]:
Z.is_newton_degenerated(local=True)
Out[9]:
False
In [10]:
Z.newton_plot()
Out[10]:
No description has been provided for this image
In [11]:
Z.give_info_facets(compact=True)
    Facet 0: -42 + 4*v + 3*u >= 0
    Facet 1: -13 + v + u >= 0
    Facet 3: -42 + 3*v + 4*u >= 0
In [12]:
h1 = sum(h.monomial_coefficient(u^i * v^j) * u^i * v^j for i, j in h.exponents() if (i, j) == (14, 0) or (i, j) == (0, 14) or i + j == 13)
h1
Out[12]:
-v^14 - 2*u^3*v^10 + 3*u^4*v^9 + 3*u^9*v^4 - 2*u^10*v^3 - u^14
In [13]:
h1.jacobian_ideal().vector_space_dimension()
Out[13]:
148
In [14]:
h
Out[14]:
-v^14 + v^15 + 3*u^2*v^12 - 2*u^3*v^10 + 3*u^4*v^9 + 3*u^5*v^10 + 4*u^7*v^7 + 3*u^9*v^4 - 2*u^10*v^3 + 3*u^10*v^5 + 3*u^12*v^2 - u^14 + u^15
In [15]:
def estrato(ff, chi, pesos):
    Z1 = ZetaFunctions(ff)
    zetamon1 = Z1.monodromy_zeta().value()^chi
    zetatop1 = chi * Z1.topological_zeta(local=True, weights=pesos).value()
    return zetamon1, zetatop1
In [16]:
zetatop=0
zetamon=1

$\check{E}_1$

In [17]:
zetamon1, zetatop1 = estrato(z^3 + x^2 * z^2 + x^7, -7, [2, 1, 1])
zetamon *= zetamon1
zetatop += zetatop1
zetamon1.factor(), zetatop1.denominator().factor()
Out[17]:
((t + 1)^14 * (t^2 - t + 1)^7 * (t^6 - t^5 + t^4 - t^3 + t^2 - t + 1)^7,
 (s + 9/14) * (s + 1))

${E}_1\cap E_{4,i}$

In [18]:
zetamon14, zetatop14 = estrato(z^3 + x^2 * y^7 * z^2 + x^7 * y^21, 2, [2, 7, 1])
zetamon *= zetamon14
zetatop += zetatop14
zetamon14.factor(), zetatop14.denominator().factor()
Out[18]:
((t - 1)^2 * (t^2 + t + 1)^2, (s + 9/14) * (s + 2/3) * (s + 1))

${E}_1\cap\Delta$

In [19]:
zetamon1d, zetatop1d = estrato(z^3 + x^2 * z^2 + x^7 * y, 7, [2, 1, 1])
zetamon *= zetamon1d
zetatop += zetatop1d
zetamon1d.factor(), zetatop1d.denominator().factor()
Out[19]:
((t + 1)^-7 * (t^2 - t + 1)^-7, (s + 9/14) * (s + 1))
In [20]:
zetamone1= zetamon1*zetamon14*zetamon1d
zetatope1= zetatop1 + zetatop14 + zetatop1d
In [21]:
zetamone1.factor(), zetatope1.denominator().factor()
Out[21]:
((t - 1)^2 * (t + 1)^7 * (t^2 + t + 1)^2 * (t^6 - t^5 + t^4 - t^3 + t^2 - t + 1)^7,
 (s + 9/14) * (s + 2/3) * (s + 1))

$\check{E}_{2,i}$

In [22]:
zetamon2, zetatop2 = estrato(z^3 + x^5 * z + x^7, 2, [3, 1, 1])
zetamon *= zetamon2
zetatop += zetatop2
zetamon2.factor(), zetatop2.denominator().factor()
Out[22]:
((t - 1)^2 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2,
 (s + 16/21) * (s + 1))
In [23]:
cyclotomic_polynomial(21)
Out[23]:
x^12 - x^11 + x^9 - x^8 + x^6 - x^4 + x^3 - x + 1

${E}_{2,i}\cap E_{3,i}$

In [24]:
zetamon23, zetatop23= estrato(z^3 + x^5 * y^10 * z + x^7 * y^14, 2, [3, 5, 1])
zetamon *= zetamon23
zetatop += zetatop23
zetamon23.factor(), zetatop23.denominator().factor()
Out[24]:
((t - 1)^2 * (t^2 + t + 1)^2, (s + 29/42) * (s + 16/21) * (s + 1))
In [25]:
zetamone2= zetamon2*zetamon23
zetatope2= zetatop2 + zetatop23
In [26]:
zetamone2.factor(), zetatope2.denominator().factor()
Out[26]:
((t - 1)^4 * (t^2 + t + 1)^2 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2,
 (s + 29/42) * (s + 1))

$\check{E}_{3,i}$

In [27]:
zetamon3, zetatop3 = estrato(z^3 + x^10 * z + x^14, -2, [5, 1, 1])
zetamon *= zetamon3
zetatop += zetatop3
zetamon3.factor(), zetatop3.denominator().factor()
Out[27]:
((t - 1)^-2 * (t^2 - t + 1)^2 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^2 * (t^12 + t^11 - t^9 - t^8 + t^6 - t^4 - t^3 + t + 1)^2,
 (s + 29/42) * (s + 1))
In [28]:
cyclotomic_polynomial(42)
Out[28]:
x^12 + x^11 - x^9 - x^8 + x^6 - x^4 - x^3 + x + 1

${E}_{3,i}\cap E_{4,i}$

In [29]:
zetamon34, zetatop34 = estrato(z^3 + x^14 * y^10 * z + x^21 * y^14, 2, [7, 5, 1])
zetamon *= zetamon34
zetatop += zetatop34
zetamon34.factor(), zetatop34.denominator().factor()
Out[29]:
((t - 1)^2 * (t^2 + t + 1)^2, (s + 2/3) * (s + 29/42) * (s + 1))

${E}_{3,i}\cap f$

In [30]:
zetamon3f, zetatop3f = estrato(z^3 + x * y^10 * z + y^14, 2, [1, 5, 1])
zetamon *= zetamon3f
zetatop += zetatop3f
zetamon3f.factor(), zetatop3f.denominator().factor()
Out[30]:
((t - 1)^2 * (t^2 - t + 1)^-2 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2 * (t^12 + t^11 - t^9 - t^8 + t^6 - t^4 - t^3 + t + 1)^-2,
 (s + 29/42) * (s + 1))
In [50]:
zetamon3 * zetamon3f, zetatop3 + zetatop3f
Out[50]:
(1, 0)
In [31]:
zetamone23= zetamone2 * zetamon3 * zetamon34 * zetamon3f
zetatope23= zetatope2 + zetatop3 + zetatop34 + zetatop3f
In [32]:
zetamone23.factor(), zetatope23.denominator().factor()
Out[32]:
((t - 1)^6 * (t^2 + t + 1)^4 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2,
 (s + 2/3) * (s + 1))

$\check{E}_{4,i}$

In [33]:
zetamon4, zetatop4 = estrato(z^3 + x^14 * z + x^21, -4, [7, 1, 1])
zetamon *= zetamon4
zetatop += zetatop4
zetamon4.factor(), zetatop4.denominator().factor()
Out[33]:
((t - 1)^4 * (t^2 + t + 1)^4 * (t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)^8 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^8,
 (s + 2/3) * (s + 1))

${E}_{4,i}\cap g$

In [34]:
zetamon4g, zetatop4g = estrato(z^3 + x^14 * z + x^21 * y, 2, [7, 1, 1])
zetamon *= zetamon4g
zetatop += zetatop4g
zetamon4g.factor(), zetatop4g.denominator().factor()
Out[34]:
((t - 1)^-2 * (t^2 + t + 1)^-2 * (t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)^-4 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-4,
 (s + 2/3) * (s + 1))
In [52]:
zetamon4 * zetamon4g^2, zetatop4 + 2 * zetatop4g
Out[52]:
(1, 0)

${E}_4\cap\Delta$

In [35]:
zetamon4d, zetatop4d = estrato(z^3 + x^7 * z^2 + x^21 * y, 2, [7, 1, 1])
zetamon *= zetamon4d
zetatop += zetatop4d
zetamon4d.factor(), zetatop4d.denominator().factor()
Out[35]:
((t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)^-2 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2,
 (s + 2/3) * (s + 1))
In [36]:
zetamone4= zetamone23 * zetamon4 * zetamon4g * zetamon4d * zetamon14
zetatope4= zetatope23 + zetatop4 + zetatop4g + zetatop4d + zetatop14
In [37]:
zetamone4.factor(), zetatope4.denominator().factor()
Out[37]:
((t - 1)^10 * (t^2 + t + 1)^8 * (t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)^2,
 (s + 9/14) * (s + 2/3) * (s + 1))
In [38]:
zetamon /= (t^3 - 1)^7
In [39]:
zetamon
Out[39]:
t^66 - t^63 + 5*t^59 - 5*t^56 + 8*t^52 - 8*t^49 - 14*t^38 + 14*t^35 - 14*t^31 + 14*t^28 + 8*t^17 - 8*t^14 + 5*t^10 - 5*t^7 + t^3 - 1
In [40]:
zetatop.denominator().factor()
Out[40]:
(s + 9/14) * (s + 2/3) * (s + 1)
In [41]:
zetamon.factor()
Out[41]:
(t - 1)^3 * (t + 1)^7 * (t^2 + t + 1) * (t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)^2 * (t^6 - t^5 + t^4 - t^3 + t^2 - t + 1)^7
In [44]:
zetatope23.factor()
Out[44]:
(10/21) * (s + 2/3)^-1 * (s + 1)^-1 * (s + 6/5)
In [53]:
zetatop4.factor()
Out[53]:
(4/21) * (s + 2/3)^-1 * (s + 1)^-1 * (s - 2)
In [64]:
zetamonsing1, zetatopsing1 = estrato(z^3 + x^7, 2, [3, 1, 1])
zetamonsing2, zetatopsing2 = estrato(z^3 + x^14 * y^7, 2, [5, 3, 1])
zetamonsing3, zetatopsing3 = estrato(z^3 + x^14 * y^21, 2, [5, 7, 1])
In [65]:
zetatopsing = zetatopsing1 + zetatopsing2 + zetatopsing3
zetatopsing.factor()
Out[65]:
(10/21) * (s + 2/3)^-1 * (s + 1)^-1 * (s + 6/5)
In [66]:
zetatope23.factor()
Out[66]:
(10/21) * (s + 2/3)^-1 * (s + 1)^-1 * (s + 6/5)
In [67]:
zetamonsing = zetamonsing1 * zetamonsing2 * zetamonsing3
zetamonsing.factor()
Out[67]:
(t - 1)^6 * (t^2 + t + 1)^4 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2
In [68]:
zetamone23.factor()
Out[68]:
(t - 1)^6 * (t^2 + t + 1)^4 * (t^12 - t^11 + t^9 - t^8 + t^6 - t^4 + t^3 - t + 1)^-2
In [69]:
prueba = ZetaFunctions(v^3 - u^7)
In [83]:
prueba.topological_zeta(local=True, weights=[7 / 3, 1])
Out[83]:
(5/21) * (s + 2/3)^-1 * (s + 1)^-1 * (s + 6/5)
In [84]:
prueba1 = ZetaFunctions(v^3 - u^28)
prueba1.topological_zeta(local=True, weights=[28 / 3, 1])
Out[84]:
(5/84) * (s + 2/3)^-1 * (s + 1)^-1 * (s + 6/5)
In [ ]: