This commit is contained in:
Enrique Artal Bartolo 2024-09-20 18:00:27 +02:00
commit 2212957562
14 changed files with 3168 additions and 98 deletions

View File

@ -354,7 +354,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.4.rc0", "display_name": "SageMath 10.4.rc1",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },

View File

@ -1838,7 +1838,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.4.rc3", "display_name": "SageMath 10.5.beta3",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },
@ -1852,7 +1852,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.12.4" "version": "3.12.5"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -673,7 +673,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.3.rc4", "display_name": "SageMath 10.4.beta6",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },
@ -687,7 +687,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.1" "version": "3.12.3"
} }
}, },
"nbformat": 4, "nbformat": 4,

BIN
Mult3.pdf

Binary file not shown.

112
Mult3.tex
View File

@ -391,14 +391,17 @@ $$ \prod_{i=1}^n h_i^{2} \prod_{j=1}^m k_j^3 \left ( \prod_{i=1}^n h_i^{3n_i-2}
\begin{proposition} \begin{proposition}
The singular point is isolated if and only if the disciminant $D_zF$ is reduced. The singular point is isolated if and only if the discriminant $D_zF$ is reduced.
\end{proposition} \end{proposition}
\noindent \textcolor{red}{Proof. Ask Enrique.}
\begin{proposition}\label{prop.non-deg}
The monic Weierstrass polynomial $z^3 -3b_2z + 2b_3$ is non degenerate unless $M_1(c_1+A)$ and $b_3 = M_2(c_2 + B)$ with $M_1^3 = M_2^2$ and \textcolor{red}{$2c_1=3c_2$} \begin{proposition}\label{prop.non-deg} Let $b_2, b_3 \in \CC[[x, y]]$ with $b_2(0), b_3(0) = 0$. Let us write $b_2= M_2(c_2+A)$ and $b_3 = M_3(c_3 + B)$ with $M_2, M_3 \in \CC[x,y]$ (monic) monomials, $c_2, c_3 \in \CC^\ast$ and $A, B \in \CC[[x,y]]$ such that $A(0), B(0) = 0$.
The monic Weierstrass polynomial $z^3 -3b_2z + 2b_3$ is non degenerate unless $(c_2M_2)^3 = (c_3M_3)^2$.
\end{proposition} \end{proposition}
\noindent \textcolor{blue}{Proof. The Newton polyhedron of $z^3 -3b_2z + 2b_3$ can be 2-dimensional, polygonal with two segments or polygonal with a unique segment. In the two first cases, it is non degenerate. The compact faces of the Newton polyhedron of $z^3 -3b_2z + 2b_3$ lie on a segment if and only if $(M_2)^3 = (M_3)^2$. The condition of $z^3 -3b_2z + 2b_3$ being non degenerate is equivalent to $z^3 -3b_2z + 2b_3 \in \CC[z]$ having a double root. Notice a triple root is not possible because the degree 2 monomial is zero. Assume that $z^3 -3b_2z + 2b_3 =(z-a)^2(z-b)$ for some $a, b \in \CC^\ast$. Equivalently, we have $2a+b=0$, and therefor $c_2=(\frac{b}{2})^2}$ and $c_3=(\frac{-b}{2})^3$.}
\section{Jung´s method for power series of multiplicity three } \section{Jung´s method for power series of multiplicity three }
@ -415,7 +418,7 @@ where $\omega = dx \wedge dy$ is the standard volume form of $\CC^2$.
\begin{proposition} Let $\pi': X' \rightarrow \CC^2$ be the minimal resolution of $D_zF$. Then, $\pi'$ is a resolution of the meromorphic function $\mathcal{M} : \CC^2 \rightarrow \mathbb{P}^1$ defined by $\frac{b_2^3}{b_3^2}$ too. \begin{proposition} Let $\pi': X' \rightarrow \CC^2$ be the minimal resolution of $D_zF$. Then, $\pi'$ is a resolution of the meromorphic function $\mathcal{M} : \CC^2 \rightarrow \mathbb{P}^1$ defined by $\frac{b_2^3}{b_3^2}$ too.
\end{proposition} \end{proposition}
There are four possibilities for the behaviour of the numbers $N^0_j, N^\infty_j$ and $N^\Delta_j$ associated with an irreducible component $E_j$ of $(\pi \circ G)^{-1} \{G=0\}$ There are four possibilities for the behaviour of the numbers $N^0_j, N^\infty_j$ and $N^\Delta_j$ associated with an irreducible component $E_j$ of $(\pi)^{-1} \{G=0\}$
\begin{itemize} \begin{itemize}
\item $3 N^0_j > 2N^\infty_j = N^\Delta_j$ and it is called a \emph{zero} because in this case $\mathcal{M}(E_j)=0$; \item $3 N^0_j > 2N^\infty_j = N^\Delta_j$ and it is called a \emph{zero} because in this case $\mathcal{M}(E_j)=0$;
\item $2 N^\infty_j > 3N^0_j = N^\Delta_j$ and it is called a \emph{pole} because in this case $\mathcal{M}(E_j)=\infty$; \item $2 N^\infty_j > 3N^0_j = N^\Delta_j$ and it is called a \emph{pole} because in this case $\mathcal{M}(E_j)=\infty$;
@ -585,8 +588,8 @@ N^\Delta_i& 25& {\bf 26}& {\bf 52}& {\bf 78}& {\bf 104}& {\bf 130}& {\bf 156}& {
\hline \hline
\hline \hline
\nu_i&2&3&5&7&9&11&13&6&11\\ \nu_i&2&3&5&7&9&11&13&6&11\\
\chi()&-11&1&-1&0&0&0&-2&1&-1\\ \chi()&-13&1&-1&0&0&0&-2&1&-1\\
E_i^2& -7& -2& -2& -2& -2& -2& -1&-2&-1\\ E_i^2& -11& -2& -4& -2& -2& -2& -1&-2&-1\\
\hline \hline
\end{array}$$ \end{array}$$
@ -645,7 +648,7 @@ If the strata $E^\circ_{i,j} \ne \emptyset$ and $\mathcal{M}(E_i)=1$ then either
$$x_1= x_2, \quad y_1= y_2, \quad z = z_1 - x_2^\frac{N^0_i}{2} y_2^\frac{N^0_j}{2} + \cdots$$ $$x_1= x_2, \quad y_1= y_2, \quad z = z_1 - x_2^\frac{N^0_i}{2} y_2^\frac{N^0_j}{2} + \cdots$$
such that (\ref{quasi-trinomial}) becomes such that (\ref{quasi-trinomial}) becomes
either either
$$z_1^3 + x_2^{\frac{N^0_i}{2}} y_2^{\frac{N^0_j}{2}} u'_1(x_2,y_2) z_1^2 + x_2^{N_i^\infty + M_i^\Delta} y_2^{N_i^\infty + M_i^\Delta} u'_2(x_2,y_2)$$ $$z_1^3 + x_2^{\frac{N^0_i}{2}} y_2^{\frac{N^0_j}{2}} u'_1(x_2,y_2) z_1^2 + x_2^{N_i^\infty + M_i^\Delta} y_2^{N_j^\infty + M_j^\Delta} u'_2(x_2,y_2)$$
if both $\mathcal{M}(E_i) = \mathcal{M}(E_j)=1$ if both $\mathcal{M}(E_i) = \mathcal{M}(E_j)=1$
or or
$$z_1^3 + x_2^{\frac{N^0_i}{2}}y_2^{\frac{N^0_j}{2}} u'_1(x_2,y_2) z_1^2 + x_2^{N_i^\infty + M_i^\Delta}y_2^{N_j^\infty } u'_2(x_2,y_2)$$ $$z_1^3 + x_2^{\frac{N^0_i}{2}}y_2^{\frac{N^0_j}{2}} u'_1(x_2,y_2) z_1^2 + x_2^{N_i^\infty + M_i^\Delta}y_2^{N_j^\infty } u'_2(x_2,y_2)$$
@ -656,7 +659,7 @@ if $\mathcal{M}(E_i)=1$ and $E_j$ is dicritical
$$\begin{cases} $$\begin{cases}
z^3 - x^{N^\infty_{i}}, & \mathcal{M}(E_i) \ne 1, \infty \\ z^3 - x^{N^\infty_{i}}, & \mathcal{M}(E_i) \ne 1, \infty \\
z^3 - x^{N^0_{i}} z + x^{N^\infty_{i}}, & \mathcal{M}(E_i) = \infty \\ z^3 - x^{N^0_{i}} z + x^{N^\infty_{i}}, & \mathcal{M}(E_i) = \infty \\
z^3 - x_2^{\frac{N^0_i}{2}} + x^{N_i^\infty + M_i^\Delta} , & \mathcal{M}(E_i) = 1, \\ z^3 - x_2^{\frac{N^0_i}{2}}z^2 + x^{N_i^\infty + M_i^\Delta} , & \mathcal{M}(E_i) = 1, \\
\end{cases}$$ \end{cases}$$
in the case $I= \{i\}$ in the case $I= \{i\}$
and and
@ -670,6 +673,47 @@ in the case $I= \{i, j\}$.
\end{definition} \end{definition}
\begin{example} The following tables show all the trinomial forms and differential forms for the all the 0-dimensional strata and all the 1-dimensional strata with not zero Euler characteristic of Example \ref{extriplepole}
$$\begin{array}{c|c|c|c}
i&f_i&\omega_i& \chi()\\
\hline
1& z^3 + x^4z^2 + x^{13}& (2, 1, 1)& -13\\
2,10& z^3 + x^{10}z + x^{13}& (3, 1, 1)&1\\
3,11& z^3 + x^{20}z + x^{26}& (5, 1, 1)& -1\\
7,15& z^3 + \color{red}{x^{52}z} + x^{78}& (13, 1, 1)& -2\\
8, 16& z^3 + x^{21}z + x^{26}& (6, 1, 1)& 1\\
9,17& z^3 + x^{42}z + x^{52}& (11, 1, 1)& -1\\
\end{array}$$
$$\begin{array}{c|c|c}
(i,j)&f_{i,j}&\omega_{i,j}\\
\hline
&&\\
(1, 7), (1, 15)& z^3 + x^4y^{26}z^2 + x^{13}y^{78}& (2, 13, 1)\\
(2,3), (10, 11)& z^3 + x^{10}y^{20}z + x^{13}y^{26}& (3, 5, 1)\\
(3, 9), (11, 17)& z^3 + x^{20}y^{42}z + x^{26}y^{52}& (5, 11, 1)\\
(3, 4), (11,12)& z^3 + x^{20}y^{28}z + x^{26}y^{39}& (5, 7, 1)\\
(8, 9), (16,17)& z^3 + x^{21}y^{42}z + x^{26}y^{52}& (6, 11, 1)\\
(4, 5), (12,13)& z^3 + x^{28}y^{36}z + x^{39}y^{52}& (7, 9, 1)\\
(5, 6), (13,14)& z^3 + x^{36}y^{44}z + x^{52}y^{65}& (9, 11, 1)\\
(6, 7), (14,15)& z^3 + x^{44}y^{52}z + x^{65}y^{78}& (11, 13, 1)\\
(1, i), i=16, \dots, 28& z^3 + x^4z^2 + x^{13}y& (2, 1, 1)\\
(9, 31), (17, 32)& z^3 + x^{42}yz + x^{52}& (11, 1, 1)\\
(7, 33), (15, 34)& z^3 + x^{52}z + x^{78}y& (13, 1, 1)\\
(7, 29) (15, 30)& z^3 + x^{26}z^2 + x^{78}y& (13, 1, 1)\\
%(12, 'f')& z^3 + x^{42}yz + x^{52}& (11, 1, 1)\\
%(16, 'g')& z^3 + x^{52}z + x^{78}y& (13, 1, 1)\\
%(16, 'd')& z^3 + x^{26}z^2 + x^{78}y& (13, 1, 1)
\end{array}$$
\end{example}
\section{The quasi-trinomial case}\label{3nomial} \section{The quasi-trinomial case}\label{3nomial}
@ -926,8 +970,8 @@ In this case, the Newton polyhedra of $F$ contains a unique two dimensional comp
\item If $M_1^3 = M_2^2$, the point corresponding to the monomial $M_1z$ lies in the unique dimensional compact face of the Newton polyhedron of $F$. The face equation is equal to \item If $M_1^3 = M_2^2$, the point corresponding to the monomial $M_1z$ lies in the unique dimensional compact face of the Newton polyhedron of $F$. The face equation is equal to
$$z^3 + c_1z + c_2.$$ $$z^3 -3 c_1z + 2 c_2.$$
Therefore, $F$ is non degenerate with respect to its Newton polyhedron if and only if $3(c_1)^2 \ne 2(c_2)^3$. Therefore, $F$ is non degenerate with respect to its Newton polyhedron if and only if \textcolor{blue}{$(c_1)^3 \ne (c_2)^2$}.
\begin{tikzpicture} \begin{tikzpicture}
@ -1003,15 +1047,18 @@ The monodromy zeta function $\zeta_F(t)$ and the local topological zeta functio
$$(1 - t^3)^{\alpha} \prod_{I} \zeta_{f_I}(t)^{-\chi(E_I^\circ)}$$ $$(1 - t^3)^{\alpha} \prod_{I} \zeta_{f_I}(t)^{-\chi(E_I^\circ)}$$
$$\sum_I \chi(E^\circ_I) Z(f_I, \omega_I)_{o_I}$$ $$\sum_I \chi(E^\circ_I) Z(f_I, \omega_I)_{o_I}$$
where $I$ varies over the statification associated to the resolution $\pi$ of $b_2b_3D_zF$, the exponent $\alpha$ is the number of points of blow-ups needed to obtain $\pi$, and $o_I$ is a point in $E^\circ_I$. where $I$ varies over the statification associated to the resolution $\pi$ of $b_2b_3D_zF$, the exponent $\alpha$ is the number of points of blow-ups needed to obtain $\pi$, and $o_I$ is a point in $E^\circ_I$.
\end{proposition}
\begin{proof} It follows from the the formula for $\zeta_f$ in terms of a partial resolution \cite[Theorem 1]{GSLM97} and the Stratum principle for topological zeta functions \cite[Stratum Principle 1.2]{ABCNLM02}. Each of the $\alpha$ factors of the form $(1-t^3)$ of $\zeta_f$ comes from the intersection of Milnor fiber of $F$ at $o$ and the line thru a center of blow-up of $\pi$. Each of these intersection sets consists of 3 points that are cyclically permuted by the monodromy.
\end{proposition} \end{proof}
\begin{example} The resolution $\pi$ of Example \ref{extriplepole} consist of $\alpha=15$ blow-ups and the associated stratification has 35 strata. According to Proposition \ref{formestrpi} we have \begin{example} The resolution $\pi$ of Example \ref{extriplepole} consist of $\alpha=15$ blow-ups and the associated stratification has 35 strata. According to Proposition \ref{formestrpi} we have
$$\zeta_F(t) = \frac{(1-t^3)^{15} \zeta^{}_{f_{2}} \zeta^{2}_{f_{4}} \zeta^{2}_{f_{5}} \zeta^{2}_{f_{6}} \zeta^{}_{f_{8}} \zeta^{}_{f_{10}} \zeta^{2}_{f_{12}} \zeta^{2}_{f_{13}} \zeta^{2}_{f_{14}} \zeta^{}_{f_{16}} } $$\zeta_F(t) = \frac{(1-t^3)^{15} \zeta^{}_{f_{2}} \zeta^{2}_{f_{4}} \zeta^{2}_{f_{5}} \zeta^{2}_{f_{6}} \zeta^{}_{f_{8}} \zeta^{}_{f_{10}} \zeta^{2}_{f_{12}} \zeta^{2}_{f_{13}} \zeta^{2}_{f_{14}} \zeta^{}_{f_{16}} }
{\zeta^{13}_{f_{1}} \zeta^{}_{f_{3}} \zeta^{4}_{f_{7}} \zeta^{}_{f_{9}} \zeta^{}_{f_{11}} \zeta^{4}_{f_{15}} \zeta^{}_{f_{17}} }$$ {\zeta^{13}_{f_{1}} \zeta^{}_{f_{3}} \zeta^{4}_{f_{7}} \zeta^{}_{f_{9}} \zeta^{}_{f_{11}} \zeta^{4}_{f_{15}} \zeta^{}_{f_{17}} }= \Phi^3_1 \Phi^{15}_2 \Phi_3 \Phi^2_6 \Phi^2_{13} \Phi^{15}_{26} \Phi^2_{78}$$
$$Z(F,s)_0=-11Z(f_1,s)_0 + \sum_{i=2,8,10,16}Z(f_i,s)_0 - \sum_{i=3, 9,11,17} Z(f_i,s)_0 - 2 \sum_{i=7,15}Z(f_i,s)_0 + \sum_{(i,j) \in S} Z(f_{i,j},s)_0,$$ where $\Phi_i$ is $i$-th the cyclotomic polymonial, and $Z(F,s)_0$ equals
$$-13Z(f_1,s)_0 + \sum_{i=2,8,10,16}Z(f_i,s)_0 - \sum_{i=3, 9,11,17} Z(f_i,s)_0 - 2 \sum_{i=7,15}Z(f_i,s)_0 + \sum_{(i,j) \in S} Z(f_{i,j},s)_0=$$
$$\frac{-1/26s^3 + 2749/6084s^2 + 1969/4056s + 1/8}{(s+1)(s+1/2)^3}$$
where $S$ is the subset indexing the 0-dimensional strata of Example \ref{extriplepole} and we have omitted the symbols of differential forms associated to each strata for shortness sake. where $S$ is the subset indexing the 0-dimensional strata of Example \ref{extriplepole} and we have omitted the symbols of differential forms associated to each strata for shortness sake.
\end{example} \end{example}
@ -1093,7 +1140,7 @@ $$J_{\check \tau_0}=\frac{2}{\nu_1(3m_2s + 2\nu_1+m_2)}$$
We remark that this case it is equivalent to $f=z(z^2 - x^{m_2})$. We remark that this case it is equivalent to $f=z(z^2 - x^{m_2})$.
\subsubsection{Third case $f= z^3 - x^{m_1}z^2 - x^{m_3}$ and $\omega = x^{\nu_1-1}dxdz$ such that $m_3 > m_1$} \subsubsection{Third case $f= z^3 - x^{m_1}z^2 - x^{m_3}$ and $\omega = x^{\nu_1-1}dxdz$ such that $m_3 > 3 m_1$}
Newton polyhedra has five compact faces: the 0-dimensional faces $\tau_0$ corresponding to the monomial $z^3$, $\tau_1$ corresponding to the monomial $x^{m_1}z^2$, and $\tau_2$ corresponding to the monomial $ x^{m_3}$, and the 1-dimensional faces $\sigma_1$ contained in the hyperplanes Newton polyhedra has five compact faces: the 0-dimensional faces $\tau_0$ corresponding to the monomial $z^3$, $\tau_1$ corresponding to the monomial $x^{m_1}z^2$, and $\tau_2$ corresponding to the monomial $ x^{m_3}$, and the 1-dimensional faces $\sigma_1$ contained in the hyperplanes
$$p + m_1r = 3m_1$$ $$p + m_1r = 3m_1$$
and $\sigma_2$ contained in the hyperplanes and $\sigma_2$ contained in the hyperplanes
@ -1135,9 +1182,9 @@ $$J_{\check \tau_0}=\frac{m_1}{\nu_1(3m_1s + \nu_1+m_1)}$$
Similarly we have Similarly we have
$$\zeta_f (t) = $$ $$\zeta_f (t) = \frac{(t^{3m_1}-1)(t^{m_3}-1) }{(t-1)(t^3-1)} $$
$$\zeta_f (t) = \frac{(t^{3m_1}-1)(t^{2m_3}-1) }{(t-1)(t^3-1)(t^{m_3}-1)}$$
We remark that this case is equivalent to $f=(z-x^{m_1})(z^2 - x^{m_3-m_2})$ We remark that this case is equivalent to $f=(z-x^{m_1})(z^2 - x^{m_3-m_1})$
\subsection{Trinomial forms for strata $E^\circ_{i,j}$} \subsection{Trinomial forms for strata $E^\circ_{i,j}$}
@ -1223,25 +1270,40 @@ $$\frac{1}{\nu_1\nu_2(3s+1)} - \frac{2}{(3m_2s + 2\nu_1+m_2)(3n_2s + 2\nu_2+m_2)
\section{Reductions} \section{Reductions}
\subsection{First reduction: Elimination of the 0-dimensional strata due to the strict transforms of $b_2$ and of $b_3$} The following Proposition shows that the o-dimensional strata associated to the strict transforms of $b_2$ and $b_3$ can eliminated from the computations of \ref{}. Each of these points can be added to the 1-dimensional strata satisfying that its clousere contains it, and the invariant is conputed with the trinomial form of the 1-dimensional strata. \subsection{First reduction: Elimination of the 0-dimensional strata due to the strict transforms of $b_2$ and of $b_3$} The following Proposition shows that the o-dimensional strata associated to the strict transforms of $b_2$ and $b_3$ can eliminated. Each of these points can be added to the 1-dimensional strata satisfying that its clousure contains it, and the invariant is computed with the trinomial form of the 1-dimensional strata.
\begin{proposition}\label{red1}Assume that $E_i$ is an exceptional divisor of the resolution $\pi$ with $\pi(E_i)=0$ (resp. $\pi(E_i)=\infty$) and that $F^0_j$ is an strict transform of $b_2$ (resp. $b_3$) such that $E_i \cap F_j \ne \emptyset$. Then \begin{proposition}\label{red1}Assume that $E_i$ is an exceptional divisor of the resolution $\pi$ with $\pi(E_i)=0$ (resp. $\pi(E_i)=\infty$) and that $F^0_j$ is an strict transform of $b_2$ (resp. $b_3$) such that $E_i \cap F_j \ne \emptyset$. Then
$$Z(F_i, \omega_i)_{o_i}=Z(F_{i,j}, \omega_{i,j})_{o_{i,j}} $$ $$Z(F_i, \omega_i)_{o_i}=Z(F_{i,j}, \omega_{i,j})_{o_{i,j}} $$
\end{proposition} \end{proposition}
\begin{example} The proposition \ref{red1} can be applied to the strata \begin{example} The proposition \ref{red1} can be applied to the strata
$$E^\circ_{9,32}=E_9 \cap F^0_{32}, \quad E^\circ_{17,33}=E_{17} \cap F^0_{33}, \quad E^\circ_{7,34}= E_7 \cap F^\infty_{34} \quad \hbox{ and } \quad E^\circ_{15,35}=E_{15} \cap F^\infty_{35}$$ $$E^\circ_{9,31}=E_9 \cap F^0_{31}, \quad E^\circ_{17,32}=E_{17} \cap F^0_{32}, \quad E^\circ_{7,33}= E_7 \cap F^\infty_{33} \quad \hbox{ and } \quad E^\circ_{15,34}=E_{15} \cap F^\infty_{34}$$
of Example \ref{extriplepole}. For instance, ifrom the formulas given in the previous section; we have of Example \ref{extriplepole}.
$$Z(F_9, \omega_9)_{o_9}=Z(F_{9,31}, \omega_{9,31})_{o_{9,31}}$$
$$ Z(F_{15}, \omega_{15})_{o_{15}}=Z(F_{15,34}, \omega_{15,34})_{o_{15,34}}$$ For the strata due to the strict transforms $F^0_{31}$ and $F^0_{32}$ of $b_2$, note that $\mathcal{M}(E_9)= \mathcal{M}(E_{17})=0$. The corresponding trinomial forms and differential forms are
$$f_9=f_{17}=f_{9,31}=f_{17,32}=z^3 - x^{52}, \qquad \omega_9=\omega_{17}=\omega_{9,31}=\omega_{17,32}= x^{11}yzdxdydz,$$
From the formulas given in the previous section; we have
$$Z(F_9, \omega_9)_{o_9}=Z(F_{9,31}, \omega_{9,31})_{o_{9,31}}= Z(F_{17}, \omega_{17})_{o_{15}}=Z(F_{17,32}, \omega_{17,32})_{o_{17,32}} = \frac{37/858s + 85/1716}{s^2 +241/156 s + 85/156}.$$
For the strata due to the strict transforms $F^\infty_{33}$ and $F^\infty_{34}$ of $b_3$, note that $\mathcal{M}(E_7)= \mathcal{M}(E_{15})=0$. The corresponding trinomial forms and differential forms are
$$f_7=f_{15}=z^3 - x^{78}, \quad f_{7,33}=f_{15,34}=z^3 - x^{52}z + x^{78}y,$$
and $$\omega_7=\omega_{15}=\omega_{7,33}=\omega_{15,34}= x^{13}yzdxdydz,$$
From the formulas given in the previous section; we have
$$Z(F_7, \omega_7)_{o_7}=Z(F_{7,33}, \omega_{7,33})_{o_{7,33}}= Z(F_{15}, \omega_{15})_{o_{15}}=Z(F_{15,34}, \omega_{15,34})_{o_{15,34}} = \frac{1}{26(s^2 +3/2 s + 1/2}.$$
\end{example} \end{example}
\subsection{Second reduction: Elimination of connected components of exceptional divisors containing a $(-1)$-curve} \subsection{Second reduction: Recursive elimination of exceptional $(-1)$-curve not intersecting the strict transform of the discrimiant}
After performing the First reduction, connected components of exceptional divisors After performing the First reduction, exceptional $(-1)$-curves that do not intersect the strict transform of the discriminant may appear. The next proposition shows that we can eliminante these divisors..
\begin{proposition}\label{red2} \begin{proposition}\label{red2}
\end{proposition} \end{proposition}
\begin{example} The Proposition \ref{red2} can be applied twice to eliminate the curves $E_9$ and $E_8$. First, $E_9$ is an exceptional $(-1)$-curve that does not intersect the strict transform of the discriminant, and $E_8$ is an exceptional with $E_8^2=-2$ After blowing down $E_9$, the exceptional curve $E_8$ becomes a $(-1)$-curve. It does not intersect the strict transform of the discriminant.
\end{example}
\subsection{Third reduction: $\QQ$-resolution of the discriminant}
\section{On generic projections} \section{On generic projections}

View File

@ -18,8 +18,8 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": null,
"id": "cad50def-ecb8-403f-b50c-ce026fbd216d", "id": "fdc11d23-4114-49ef-828a-b7a165169c46",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -28,8 +28,8 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 5, "execution_count": 14,
"id": "5ec9dd77-8118-4439-b8cb-4c475a2a645e", "id": "b67cebe5-4b5a-46be-9055-9ecbdecf96f1",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -38,7 +38,7 @@
"((0, 0, 0, 0, 0, 0, 1), (0, 0, 4, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 3))" "((0, 0, 0, 0, 0, 0, 1), (0, 0, 4, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 3))"
] ]
}, },
"execution_count": 5, "execution_count": 14,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
@ -53,27 +53,53 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 6, "execution_count": 13,
"id": "dbf2120c-5214-48e1-a93f-a5079753d5f5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((0, 0, 0, 0, 1, 0, 0), (0, 0, 0, 1, 1, 0, 0), (0, 0, 0, 0, 1, 0, 2))"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Vfa, Vga, Vda = [vector(QQ, 7) for i in (1, 2, 3)]\n",
"Vfa[4] = Vga[3] = Vga[4] = Vda[4] = 1\n",
"Vda[6] = 2\n",
"Vfa, Vga, Vda"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "c5104650-44eb-4c9c-b016-c34994f72f38", "id": "c5104650-44eb-4c9c-b016-c34994f72f38",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"n, Nf, Ng, Nd, Nhs, Nks, euler, nus, pols = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)" "n, Nf, Ng, Nd, Nhs, Nks, euler, nus, pols = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)\n",
"na, Nfa, Nga, Nda, Nhsa, Nksa, eulera, nusa, polsa = trinomiales_general(A, Vfa, Vga, (), (), Vda, total=False)"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 7, "execution_count": 16,
"id": "8dccac88-2fa3-4365-990a-2571f643b9dc", "id": "8dccac88-2fa3-4365-990a-2571f643b9dc",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"zetatop, zetamon, dic = zetas(n, pols, info=True)" "zetatop, zetamon, dic = zetas(n, pols, info=True)\n",
"zetatopa, zetamona, dica = zetas(na, polsa, info=True)"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8, "execution_count": 17,
"id": "097214a4-61e4-4939-bad0-4e5b3c8ac716", "id": "097214a4-61e4-4939-bad0-4e5b3c8ac716",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -81,16 +107,16 @@
"data": { "data": {
"text/plain": [ "text/plain": [
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n", "((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
" {1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1})" " (-43/175) * (s + 16/21)^-1 * (s + 4/5)^-1 * (s + 1)^-1 * (s^2 - 292/129*s - 320/129))"
] ]
}, },
"execution_count": 8, "execution_count": 17,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"zetatop.factor(), dic" "zetatop.factor(), zetatopa.factor()"
] ]
}, },
{ {
@ -129,7 +155,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 25, "execution_count": 8,
"id": "558ef7c7-39cf-47bf-b224-479f1ff365d4", "id": "558ef7c7-39cf-47bf-b224-479f1ff365d4",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -429,27 +455,6 @@
" print(\"=======================\")" " print(\"=======================\")"
] ]
}, },
{
"cell_type": "code",
"execution_count": 26,
"id": "8f5e2324-c385-4a99-a4a4-96cc9aa35c12",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(z^3 + x^8*z^2 + x^24*y, (11, 1, 1), 3)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pols[6, 'd']"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 27, "execution_count": 27,
@ -678,6 +683,377 @@
"dic, dic2" "dic, dic2"
] ]
}, },
{
"cell_type": "code",
"execution_count": 85,
"id": "1eda8668-939a-49ff-9741-eecb16b95c29",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A2 = A1.matrix_from_rows_and_columns([0..5], [0..5])\n",
"A2[4, 5] = A2[5, 4] = 1\n",
"#A1[4, 6] = A1[6, 4] = A1[5, 6] = A1[6, 5] = 1\n",
"#A1[4, 4] = -3\n",
"A2[4, 4] = -2\n",
"A2[5, 5] = -1\n",
"A2.det()"
]
},
{
"cell_type": "code",
"execution_count": 86,
"id": "f79af679-b261-4e6f-9dcb-5775bccb1c8c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((0, 0, 0, 0, 1, 0), (0, 0, 0, 1, 1, 0), (0, 0, 0, 0, 1, 2))"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Vf, Vg, Vd = [vector(QQ, 6) for i in (1, 2, 3)]\n",
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = 1\n",
"Vd[5] = 2\n",
"Vf, Vg, Vd"
]
},
{
"cell_type": "code",
"execution_count": 87,
"id": "f4f2d497-55d6-42cc-a3c1-6ee815579be8",
"metadata": {},
"outputs": [],
"source": [
"n2b, Nf2b, Ng2b, Nd2b, Nhs2b, Nks2b, euler2b, nus2b, pols2b = trinomiales_general(A2, Vf, Vg, (), (), Vd, total=False)"
]
},
{
"cell_type": "code",
"execution_count": 88,
"id": "6d1f647d-c103-4ffc-97da-bdcac4e0625e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2, 4, 6, 7, 14, 14)\n",
"(3, 6, 9, 11, 21, 21)\n",
"(6, 12, 18, 21, 42, 44)\n"
]
}
],
"source": [
"print(Nf2b)\n",
"print(Ng2b)\n",
"print(Nd2b)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "27a012cc-2e37-4545-98a4-7f1ffd7f8566",
"metadata": {},
"outputs": [],
"source": [
"zetatop2b, zetamon2b, dic2b = zetas(n2b, pols2b, info=True)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "696efeb0-7276-449a-903d-c2e02cdb16f9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
" (-39/161) * (s + 16/21)^-1 * (s + 18/23)^-1 * (s + 1)^-1 * (s^2 - 274/117*s - 32/13))"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zetatop.factor(), zetatop2b.factor()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "7d299478-15d6-439a-a0ee-38557a6e303b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
" {1: 1, 7: 1, 21: 1, 23: 1})"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dic, dic2b"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "d236b526-d636-455a-8030-301f39e27f96",
"metadata": {},
"outputs": [],
"source": [
"A = Matrix(8, [-2, 1, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 1, -3, 0, 1, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 1, 1, -2, 1, 0, 0, 0, 0, 0, 0, 1, -3, 0, 1, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 1, 1, -1])\n",
"A1 = A.matrix_from_rows_and_columns([0..6], [0..6])\n",
"A1[4, 5] = A1[5, 4] = 0\n",
"A1[4, 6] = A1[6, 4] = A1[5, 6] = A1[6, 5] = 1\n",
"A1[4, 4] = -3\n",
"A1[5, 5] = -2\n",
"A1[6, 6] = -1"
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "0f6ae8eb-46d6-4d8b-85ff-8b93432f88f5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((0, 0, 0, 0, 1, 0, 0), (0, 0, 0, 1, 1, 0, 0), (0, 0, 0, 0, 1, 0, 1))"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Vf, Vg, Vd = [vector(QQ, 7) for i in (1, 2, 3)]\n",
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = Vd[6] = 1\n",
"Vf, Vg, Vd"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "5d18a75f-7a9b-4ada-b28f-f79e9fb69292",
"metadata": {},
"outputs": [],
"source": [
"n2a, Nf2a, Ng2a, Nd2a, Nhs2a, Nks2a, euler2a, nus2a, pols2a = trinomiales_general(A1, Vf, Vg, (), (), Vd, total=False)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "d3af6603-a5ca-45da-8122-5e0973563b88",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2, 4, 6, 7, 14, 14, 28)\n",
"(3, 6, 9, 11, 21, 21, 42)\n",
"(6, 12, 18, 21, 42, 43, 86)\n"
]
}
],
"source": [
"print(Nf2a)\n",
"print(Ng2a)\n",
"print(Nd2a)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "4412f281-4696-4dc1-91ed-0069b58bffa0",
"metadata": {},
"outputs": [],
"source": [
"zetatop2a, zetamon2a, dic2a = zetas(n2a, pols2a, info=True)"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "c39bf1b5-1ed0-4d84-8e81-5f4e4bf3fd9b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
" (-37/154) * (s + 16/21)^-1 * (s + 17/22)^-1 * (s + 1)^-1 * (s^2 - 265/111*s - 272/111))"
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zetatop.factor(), zetatop2a.factor()"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "441864d8-5be6-4570-8a30-b9612c0ebcb1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
" {1: 1, 2: 1, 7: 1, 22: 1, 11: 1, 21: 1})"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dic, dic2a"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "faed71a4-b703-4416-8c86-ce2d989999b0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 1, 1, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0, 1))"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Vf, Vg, Vd = [vector(QQ, 8) for i in (1, 2, 3)]\n",
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = Vd[7] = 1\n",
"Vf, Vg, Vd"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "aa0267bd-3f48-4167-94f4-b6079b77cc46",
"metadata": {},
"outputs": [],
"source": [
"n2, Nf2, Ng2, Nd2, Nhs2, Nks2, euler2, nus2, pols2 = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "f819b1f2-2342-4951-99ee-c62a978d2308",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6, 12, 18, 21, 42, 42, 42, 84)\n",
"(6, 12, 18, 22, 42, 42, 42, 84)\n",
"(6, 12, 18, 21, 42, 44, 45, 90)\n"
]
}
],
"source": [
"print(3 * Nf2)\n",
"print(2 * Ng2)\n",
"print(Nd2)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "1a340b4a-c984-46e1-a708-0c962a0912bc",
"metadata": {},
"outputs": [],
"source": [
"zetatop2, zetamon2, dic2 = zetas(n2, pols2, info=True)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "e737e117-0285-429e-8800-eab63eff90fc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
" (-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123))"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zetatop.factor(), zetatop2.factor()"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "535f3607-b56b-4557-b60b-28889a8795c4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
" {1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1})"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dic, dic2"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 43, "execution_count": 43,
@ -768,24 +1144,24 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 48, "execution_count": 49,
"id": "0870be50-c79c-48c9-80b7-24bfd6914737", "id": "0870be50-c79c-48c9-80b7-24bfd6914737",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n", "((-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5),\n",
" (-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5))" " (-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5))"
] ]
}, },
"execution_count": 48, "execution_count": 49,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"zetatop.factor(), zetatop3.factor()" "zetatop1.factor(), zetatop3.factor()"
] ]
}, },
{ {
@ -861,7 +1237,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.4.beta9", "display_name": "SageMath 10.4.rc1",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 113, "execution_count": 1,
"id": "4778e32e-f561-4e4d-b63a-d4d60f91abde", "id": "4778e32e-f561-4e4d-b63a-d4d60f91abde",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -12,7 +12,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 115, "execution_count": 2,
"id": "f042e81b-abf8-4e09-bc67-a19d778033e6", "id": "f042e81b-abf8-4e09-bc67-a19d778033e6",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -22,7 +22,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 116, "execution_count": 7,
"id": "0733b364-bbf6-486c-a5d1-e72c7a5d48ca", "id": "0733b364-bbf6-486c-a5d1-e72c7a5d48ca",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -34,7 +34,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 117, "execution_count": 8,
"id": "b81e1db9-883e-4a03-a38c-1ca296c9d25b", "id": "b81e1db9-883e-4a03-a38c-1ca296c9d25b",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -45,7 +45,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 118, "execution_count": 9,
"id": "f97fbf75-4da5-45db-8f66-cdccdd052326", "id": "f97fbf75-4da5-45db-8f66-cdccdd052326",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -60,7 +60,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 119, "execution_count": 10,
"id": "04072945-1ada-4d66-b44e-95318f073634", "id": "04072945-1ada-4d66-b44e-95318f073634",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -70,7 +70,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 120, "execution_count": 11,
"id": "d9834ff4-e09f-4cf9-abd0-9b1eea6ca033", "id": "d9834ff4-e09f-4cf9-abd0-9b1eea6ca033",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -88,16 +88,32 @@
}, },
"metadata": {}, "metadata": {},
"output_type": "display_data" "output_type": "display_data"
},
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} a_{1} a_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2})\\)</html>"
],
"text/latex": [
"$\\displaystyle \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} a_{1} a_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2})$"
],
"text/plain": [
"nu2^-1 * nu1^-1 * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (3*ss*a1*a2 + a1*a2 + 3*a2*nu1 + 3*a1*nu2)"
]
},
"metadata": {},
"output_type": "display_data"
} }
], ],
"source": [ "source": [
"vertical = cono3(e1, e2, e3, V1, nu) - cono3(Q1, Q2, e3, V1, nu)\n", "vertical = cono3(e1, e2, e3, V1, nu) - cono3(Q1, Q2, e3, V1, nu)\n",
"show(vertical.subs(sb).factor())" "show(vertical.subs(sb).factor())\n",
"show(vertical.factor())"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 121, "execution_count": 13,
"id": "fe5aa4f3-db61-4a38-a1d1-dd100d819937", "id": "fe5aa4f3-db61-4a38-a1d1-dd100d819937",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -115,12 +131,28 @@
}, },
"metadata": {}, "metadata": {},
"output_type": "display_data" "output_type": "display_data"
},
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\left(9\\right) \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\left(9\\right) \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1}$"
],
"text/plain": [
"(9) * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1"
]
},
"metadata": {},
"output_type": "display_data"
} }
], ],
"source": [ "source": [
"horizontal = cono3(Q1, Q2, e3, V0, nu)\n", "horizontal = cono3(Q1, Q2, e3, V0, nu)\n",
"horizontal = (horizontal.numerator() / 9) / (horizontal.denominator() / 9)\n", "horizontal = (horizontal.numerator() / 9) / (horizontal.denominator() / 9)\n",
"show(horizontal.subs(sb).factor())" "show(horizontal.subs(sb).factor())\n",
"show(horizontal.factor())"
] ]
}, },
{ {
@ -151,7 +183,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 123, "execution_count": 14,
"id": "29605b7d-37f7-4f22-80bd-1694134cd9b7", "id": "29605b7d-37f7-4f22-80bd-1694134cd9b7",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -161,7 +193,7 @@
"[9/(alpha1*alpha2), 3*a2/(alpha1*alpha2), (-3*a1)/(alpha1*alpha2)]" "[9/(alpha1*alpha2), 3*a2/(alpha1*alpha2), (-3*a1)/(alpha1*alpha2)]"
] ]
}, },
"execution_count": 123, "execution_count": 14,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
@ -172,7 +204,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 124, "execution_count": 15,
"id": "83121ff8-547c-424b-b3ce-860a80f0541e", "id": "83121ff8-547c-424b-b3ce-860a80f0541e",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -182,7 +214,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 125, "execution_count": 16,
"id": "b3963226-7397-4cb5-bdff-5382f74df8df", "id": "b3963226-7397-4cb5-bdff-5382f74df8df",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -192,7 +224,7 @@
"(3*a1/alpha1, 3*a1/alpha1, 3*a2/alpha2, 3*a2/alpha2, (a1 + 3*nu1)/alpha1)" "(3*a1/alpha1, 3*a1/alpha1, 3*a2/alpha2, 3*a2/alpha2, (a1 + 3*nu1)/alpha1)"
] ]
}, },
"execution_count": 125, "execution_count": 16,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
@ -203,7 +235,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 126, "execution_count": 17,
"id": "36201bc7-a7e2-4c9e-a8e9-5865cb9686f9", "id": "36201bc7-a7e2-4c9e-a8e9-5865cb9686f9",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -214,7 +246,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 127, "execution_count": 18,
"id": "d77f48f5-2236-4cb6-a211-14f3623539c0", "id": "d77f48f5-2236-4cb6-a211-14f3623539c0",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -241,7 +273,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 128, "execution_count": 19,
"id": "c18631c1-f18a-48a2-8e9a-727d347ef89a", "id": "c18631c1-f18a-48a2-8e9a-727d347ef89a",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -259,12 +291,102 @@
}, },
"metadata": {}, "metadata": {},
"output_type": "display_data" "output_type": "display_data"
},
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\left(-1\\right) \\cdot \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2})\\)</html>"
],
"text/latex": [
"$\\displaystyle \\left(-1\\right) \\cdot \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2})$"
],
"text/plain": [
"(-1) * nu2^-1 * nu1^-1 * (ss + 1)^-1 * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (3*ss*nu1*nu2*cd^2 - 3*ss^2*a1*a2 - 4*ss*a1*a2 - 3*ss*a2*nu1 - 3*ss*a1*nu2 - 9*ss*nu1*nu2 - a1*a2 - 3*a2*nu1 - 3*a1*nu2 - 9*nu1*nu2)"
]
},
"metadata": {},
"output_type": "display_data"
} }
], ],
"source": [ "source": [
"prueba = horizontal - arista + vertical\n", "prueba = horizontal - arista + vertical\n",
"# prueba.numerator().variables() + prueba.denominator().variables()\n", "# prueba.numerator().variables() + prueba.denominator().variables()\n",
"show(prueba.subs(sb).factor())" "show(prueba.subs(sb).factor())\n",
"show(prueba.factor())"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "5c36c8a4-f5f0-43d8-bbfc-35e889012f6e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle 3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2}\\)</html>"
],
"text/latex": [
"$\\displaystyle 3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2}$"
],
"text/plain": [
"3*ss*nu1*nu2*cd^2 - 3*ss^2*a1*a2 - 4*ss*a1*a2 - 3*ss*a2*nu1 - 3*ss*a1*nu2 - 9*ss*nu1*nu2 - a1*a2 - 3*a2*nu1 - 3*a1*nu2 - 9*nu1*nu2"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"uuu= (ss + 1) * ((3 * ss + 1) * a1 * a2 + 3 * (nu1 * a2 + nu2 * a1 + 3 * nu1 * nu2)) - 3 * nu1 * nu2 * cd^2 *ss\n",
"show(-uuu)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "52254bac-4ce0-473f-a6c8-9853e4180df9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} + 3 \\mathit{ss}^{2} a_{1} a_{2} + 4 \\mathit{ss} a_{1} a_{2} + 3 \\mathit{ss} a_{2} \\nu_{1} + 3 \\mathit{ss} a_{1} \\nu_{2} + 9 \\mathit{ss} \\nu_{1} \\nu_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2} + 9 \\nu_{1} \\nu_{2}"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"latex(uuu)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "b4f731bf-7872-4e7f-a8dc-f1a7666fcd31",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\left(-1\\right) \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (\\mathit{ss} \\nu_{1} \\mathit{cd}^{2} - \\mathit{ss} a_{1} - 3 \\mathit{ss} \\nu_{1} - a_{1} - 3 \\nu_{1})\\)</html>"
],
"text/latex": [
"$\\displaystyle \\left(-1\\right) \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (\\mathit{ss} \\nu_{1} \\mathit{cd}^{2} - \\mathit{ss} a_{1} - 3 \\mathit{ss} \\nu_{1} - a_{1} - 3 \\nu_{1})$"
],
"text/plain": [
"(-1) * nu1^-1 * (ss + 1)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (ss*nu1*cd^2 - ss*a1 - 3*ss*nu1 - a1 - 3*nu1)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show(prueba(a2=0, nu2=1).factor())"
] ]
}, },
{ {
@ -944,9 +1066,9 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.3.rc3", "display_name": "SageMath 10.4.beta6",
"language": "sage", "language": "sage",
"name": "sagemath-310" "name": "sagemath-devel"
}, },
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {
@ -958,7 +1080,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.1" "version": "3.12.3"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -723,9 +723,9 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)", "display_name": "SageMath 10.4.rc1",
"language": "python", "language": "sage",
"name": "python3" "name": "sagemath-devel"
}, },
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {

517
deformaciones3Edwin.ipynb Normal file

File diff suppressed because one or more lines are too long

View File

@ -468,7 +468,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.4.beta3", "display_name": "SageMath 10.4.beta6",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },
@ -482,7 +482,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.12.2" "version": "3.12.3"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -987,7 +987,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "SageMath 10.4.beta3", "display_name": "SageMath 10.4.beta4",
"language": "sage", "language": "sage",
"name": "sagemath-devel" "name": "sagemath-devel"
}, },

458
zetas_triples_trenzas.py Normal file
View File

@ -0,0 +1,458 @@
def trinomiales_general(A, Vf, Vg, Vhs, Vd, total=True):
r"""
Return data necessary to compute the zeta functions of
a triple singularity defined by
.. math::
z^3 -3 \prod_{i=1}^h h_i^{n_i} f z^2
+ \prod_{i=1}^h h_i g,
where :math:`f, g, h_i` are polynomials in two variables,
and :math:`n_i \geq 1`.
We consider an embedded resolution of :math:`fg(f^3 - g^2)` with
a stratification of the exceptional divisor:
- :math:`\check{E}_i`: the smooth part of the total divisor
- :math:`E_i\cap E_j`: the double points of the divisor
- :math:`E_i\cap \{f=0\}`: the intersections with the strict
transform of :math:`f`
- :math:`E_i\cap \{g=0\}`: the intersections with the strict
transform of :math:`g`
- :math:`E_i\cap \{f^3=g^2\}`: the intersections with the strict
transform of :math:`f^3-g^2`
It is also possible to forget the strict transforms of :math:`f, g`
and even to consider only resolutions of :math:`f^3 - g^2`.
INPUT:
- ``A`` -- the incidence matrix of a resolution
- ``Vf`` -- the vector with the intersection numbers of the strict
transform of :math:`f` with the divisors of the resolution
- ``Vg`` -- the vector with the intersection numbers of the strict
transform of :math:`g` with the divisors of the resolution
- ``Vhs`` -- a list of tuple whose elements are tuples `(h_i, n_i)`
- ``Vd`` -- the vector with the intersection numbers of the strict
transform of :math:`f^3 - g^2` with the divisors of the resolution
- ``total`` -- boolean (default: ``True``), whether we consider also
the strata corresponding to the strict transforms of :math:`f, g`.
OUTPUT:
Polynomials :math:`z^3 + M_1 z + M_0` or :math:`z^3 + M_2 z^2 + M_0` are
assigned to each strata. The monomials are of the form :math:`x^k` for the
smooth parts of the divisors and :math:`x^k y^l` for the double points.
Each variable is associated to a divisor or to a strict transform
- ``n`` -- the number of irreducible components of the exceptional divisor
- ``Nf`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`f`
- ``Ng`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`g`
- ``Nhs`` -- a list of tuple whose elements are tuples, the first element
is the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`h_i` and the second is :math:`n_i`
- ``Nd`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`f^3 - g^2`
- ``euler`` -- the vector in :math:`\mathbb{Z}^n` of the Euler
characteristic of the smooth part of the strata. If ``total=True`` this
smooth part does not contain the intersections with total transform
of :math:`f, g`
- ``nus`` -- the vector in :math:`\mathbb{Z}^n` of the canonical
multiplicities
- ``pols`` -- a dictionary with keys ``(i, )``, ``(i, j)``, ``(i, 'f')``
(if ``total=True``), ``(i, 'g')`` (if ``total=True``), and ``(i, 'd')``
assigning the polynomial of the stratum (non-degenerated with respect
to its Newton polytope), the weights ``(nui, nuj, 1)`` coding
the form
:math:`x^{\nu_i-1}y^{\nu_j-1}\operatorname{d}\! x \operatorname{d}\! y \operatorname{d}\! z`
EXAMPLES::
sage: R.<x, y, z> = QQ[]
sage: f, g = (x, y)
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
sage: Vf = vector(QQ, [1, 0, 0])
sage: Vg = vector(QQ, [0, 1, 0])
sage: Vd = vector(QQ, [0, 0, 1])
sage: trinomiales_general(A, Vf, Vg, (), Vd)
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (0, 0, -1), (2, 3, 5),
{(0, 'f'): (x + x*y*z + z^3, (2, 1, 1), 1),
(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
(1, 'g'): (x*z + x^2*y + z^3, (3, 1, 1), 1),
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
0: (x + x*z + z^3, (2, 1, 1), 0),
1: (x^2 + x*z + z^3, (3, 1, 1), 0),
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
sage: trinomiales(A, Vf, Vg, Vd, (), total=False)
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (1, 1, -1), (2, 3, 5),
{(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
0: (x + x*z + z^3, (2, 1, 1), 1),
1: (x^2 + x*z + z^3, (3, 1, 1), 1),
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
"""
R = PolynomialRing(QQ, 'x, y, z', order='negdeglex')
x, y, z = R.gens()
n = A.nrows()
A1 = -A ** -1
Nf, Ng, Nd = [A1 * N0 for N0 in (Vf, Vg, Vd)]
Nhs = [(A1 * N0, h) for N0, h in Vhs]
ch = len(Nhs)
NNf = Nf + sum(j * V0 for V0, j in Nhs)
NNg = Ng + sum(V0 for V0, j in Nhs)
NNd = Nd + 2 * sum(V0 for V0, j in Nhs)
diag = vector(A.diagonal())
unos = vector(n * [1])
if total:
VV = Vf + Vg
else:
VV = Vf.parent()(0)
resta = VV + Vd + sum(V0 for V0, m in Vhs)
euler = (-A + 2 * identity_matrix(n)) * unos + diag - resta
nus = A1 * (diag + 2 * unos) + unos
expos = {}
for j in range(n):
a, b = (NNf[j], NNg[j])
eq = 3 * a == 2 * NNg[j]
nnd = min(3 * a, 2 * b) == NNd[j]
if nnd:
expos[j] = ((a, b), (a / 2, b), nus[j], eq, nnd)
else:
expos[j] = ((a, b), (a / 2, NNd[j] - b), nus[j], eq, nnd)
cadenas = ('d', )
cadenash = tuple(('h', h) for h in range(ch))
if total:
expos['f'] = ((1, 0), (0, 0), 1, False, True)
expos['g'] = ((0, 1), (0, 0), 1, False, True)
cadenas = ('f', 'g') + cadenas
expos['d'] = ((0, 0), (0, 1), 1, True, False)
for h, V0 in enumerate(Vhs):
expos['h', h] = ((V0[1], 1), (0, 0), 1, False, True)
pols = {}
for j in range(n):
if expos[j][-1]:
a, b = expos[j][0]
pols[j] = (z ** 3 + x ** a * z + x ** b, (expos[j][2], 1, 1),
euler[j])
else:
a, b = expos[j][1]
pols[j] = (z ** 3 + x ** a * z ** 2 + x ** b,
(expos[j][2], 1, 1), euler[j])
interdiv = [(i, j) for i, j in Combinations(n, 2) if A[i, j] != 0]
interstrict = [(i, j) for i in range(n) for j in cadenas
if eval('V' + j)[i] != 0]
interh = [(i, j) for i in range(n) for j in cadenash if Vhs[j[1]][0][i] != 0]
for i, j in interdiv + interstrict + interh:
if isinstance(j, str):
ep = eval('V' + j)[i]
else:
ep = 1
eqi, nndi = expos[i][-2:]
eqj, nndj = expos[j][-2:]
nd = eqi and eqj and not (nndi and nndj)
if not nd:
ai, bi = expos[i][0]
aj, bj = expos[j][0]
pols[i, j] = (z ** 3 + x ** ai * y ** aj * z + x ** bi * y ** bj,
(expos[i][2], expos[j][2], 1), ep)
else:
ai, bi = expos[i][1]
aj, bj = expos[j][1]
pols[i, j] = (z ** 3 + x ** ai * y ** aj * z ** 2 +
x ** bi * y ** bj, (expos[i][2], expos[j][2], 1), ep)
return n, Nf, Ng, Nd, Nhs, euler, nus, pols
def exp_trenza_dis(tau):
B = tau.parent()
m = tau.exponent_sum()
a, b = m.quo_rem(6)
no = False
while not no:
no = bool(tau.conjugating_braid(B.delta()**(2 * a) * B.gen(0)**b))
if not no:
a, b = a - 1, b + 6
return (2 * a, None, 3 * a + b)
def exp_trenza(tau):
B = tau.parent()
m = tau.exponent_sum()
if m.gcd(6) == 1:
return exp_trenza_dis(tau)
elif m.gcd(6) == 3:
polo = bool(tau.conjugating_braid(B.delta()**(m / 3)))
if polo:
return (None, m / 3, None)
else:
return exp_trenza_dis(tau)
elif m.gcd(6) == 2:
cero = bool(tau.conjugating_braid(B([1, 2])**(m / 2)))
if cero:
return (None, None, m / 2)
else:
return exp_trenza_dis(tau)
else:
ct = bool(tau.conjugating_braid(B.delta()**(m / 3)))
if ct:
return (m / 6, m / 3, m / 2)
else:
return exp_trenza_dis(tau)
def trinomiales_trenza(A, trenzas, Vhs, Vd):
r"""
Return data necessary to compute the zeta functions of
a triple singularity defined by
.. math::
z^3 -3 \prod_{i=1}^h h_i^{n_i} f z^2
+ \prod_{i=1}^h h_i g,
where :math:`f, g, h_i` are polynomials in two variables,
and :math:`n_i \geq 1`.
We consider an embedded resolution of :math:`fg(f^3 - g^2)` with
a stratification of the exceptional divisor:
- :math:`\check{E}_i`: the smooth part of the total divisor
- :math:`E_i\cap E_j`: the double points of the divisor
- :math:`E_i\cap \{f=0\}`: the intersections with the strict
transform of :math:`f`
- :math:`E_i\cap \{g=0\}`: the intersections with the strict
transform of :math:`g`
- :math:`E_i\cap \{f^3=g^2\}`: the intersections with the strict
transform of :math:`f^3-g^2`
It is also possible to forget the strict transforms of :math:`f, g`
and even to consider only resolutions of :math:`f^3 - g^2`.
INPUT:
- ``A`` -- the incidence matrix of a resolution
- ``Vf`` -- the vector with the intersection numbers of the strict
transform of :math:`f` with the divisors of the resolution
- ``Vg`` -- the vector with the intersection numbers of the strict
transform of :math:`g` with the divisors of the resolution
- ``Vhs`` -- a list of tuple whose elements are tuples `(h_i, n_i)`
- ``Vd`` -- the vector with the intersection numbers of the strict
transform of :math:`f^3 - g^2` with the divisors of the resolution
- ``total`` -- boolean (default: ``True``), whether we consider also
the strata corresponding to the strict transforms of :math:`f, g`.
OUTPUT:
Polynomials :math:`z^3 + M_1 z + M_0` or :math:`z^3 + M_2 z^2 + M_0` are
assigned to each strata. The monomials are of the form :math:`x^k` for the
smooth parts of the divisors and :math:`x^k y^l` for the double points.
Each variable is associated to a divisor or to a strict transform
- ``n`` -- the number of irreducible components of the exceptional divisor
- ``Nf`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`f`
- ``Ng`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`g`
- ``Nhs`` -- a list of tuple whose elements are tuples, the first element
is the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`h_i` and the second is :math:`n_i`
- ``Nd`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
the total transform of :math:`f^3 - g^2`
- ``euler`` -- the vector in :math:`\mathbb{Z}^n` of the Euler
characteristic of the smooth part of the strata. If ``total=True`` this
smooth part does not contain the intersections with total transform
of :math:`f, g`
- ``nus`` -- the vector in :math:`\mathbb{Z}^n` of the canonical
multiplicities
- ``pols`` -- a dictionary with keys ``(i, )``, ``(i, j)``, ``(i, 'f')``
(if ``total=True``), ``(i, 'g')`` (if ``total=True``), and ``(i, 'd')``
assigning the polynomial of the stratum (non-degenerated with respect
to its Newton polytope), the weights ``(nui, nuj, 1)`` coding
the form
:math:`x^{\nu_i-1}y^{\nu_j-1}\operatorname{d}\! x \operatorname{d}\! y \operatorname{d}\! z`
EXAMPLES::
sage: R.<x, y, z> = QQ[]
sage: f, g = (x, y)
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
sage: Vf = vector(QQ, [1, 0, 0])
sage: Vg = vector(QQ, [0, 1, 0])
sage: Vd = vector(QQ, [0, 0, 1])
sage: trinomiales_general(A, Vf, Vg, (), Vd)
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (0, 0, -1), (2, 3, 5),
{(0, 'f'): (x + x*y*z + z^3, (2, 1, 1), 1),
(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
(1, 'g'): (x*z + x^2*y + z^3, (3, 1, 1), 1),
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
0: (x + x*z + z^3, (2, 1, 1), 0),
1: (x^2 + x*z + z^3, (3, 1, 1), 0),
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
sage: trinomiales(A, Vf, Vg, Vd, (), total=False)
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (1, 1, -1), (2, 3, 5),
{(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
0: (x + x*z + z^3, (2, 1, 1), 1),
1: (x^2 + x*z + z^3, (3, 1, 1), 1),
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
"""
R = PolynomialRing(QQ, 'x, y, z', order='negdeglex')
x, y, z = R.gens()
n = A.nrows()
A1 = -A ** -1
Nd = A1 * Vd
Nhs = [(A1 * N0, h) for N0, h in Vhs]
ch = len(Nhs)
NNd = Nd + 2 * sum(V0 for V0, j in Nhs)
diag = vector(A.diagonal())
unos = vector(n * [1])
resta = Vd + sum(V0 for V0, m in Vhs)
euler = (-A + 2 * identity_matrix(n)) * unos + diag - resta
nus = A1 * (diag + 2 * unos) + unos
expos = {j: exp_trenza(trenzas[j]) for j in range(n)}
cadenas = ('d', )
cadenash = tuple(('h', h) for h in range(ch))
expos['d'] = (0, 0, 1)
for h, V0 in enumerate(Vhs):
expos['h', h] = (0, V0[1], 1)
pols = {}
for j in range(n):
p = z**3
for k, e in enumerate(expos[j]):
if e:
p += x**e * z**(2 - k)
pols[j] = (p, (nus[j], 1, 1), euler[j])
interdiv = [(i, j) for i, j in Combinations(n, 2) if A[i, j] != 0]
interstrict = [(i, j) for i in range(n) for j in cadenas
if eval('V' + j)[i] != 0]
interh = [(i, j) for i in range(n) for j in cadenash if Vhs[j[1]][0][i] != 0]
for i, j in interdiv + interstrict + interh:
if isinstance(j, str):
ep = eval('V' + j)[i]
nu = (nus[i], 1, 1)
else:
ep = 1
nu = (nus[i], nus[j], 1)
p = z**3
for k, (e1, e2) in enumerate(zip(expos[i], expos[j])):
if e1 and e2:
p += x**e1 * y**e2 * z**(2 - k)
pols[i, j] = (p, nu, ep)
return n, Nd, Nhs, euler, nus, pols
def estrato(pol, pesos, euler, info=False):
r"""
Return the topological and Igusa zeta functions associated to a stratum
INPUT:
- ``pol`` -- a trinomial non degenerated with respect to its Newton
polyhedron
- ``pesos`` -- the canonical weights :math:`\nu:i`
- `euler`` -- the Euler characteristic of the stratum
- ``info`` -- boolean (default: False), if ``True`` a dictionary giving
the powers of cyclotomic polynomials for the monodromy zeta function
is given
EXAMPLES::
sage: R.<x, y, z> = QQ[]
sage: F = z**3 + x**4 * y**6 * z + x**7 * y**9
sage: estrato(F, (1, 1, 1), 1, info=True)
((1/3*s**2 + 1/2*s + 2/9)/(s^3 + 35/18*s^2 + 7/6*s + 2/9), -t^3 + 1,
{1: 1, 3: 1})
"""
Z1 = ZetaFunctions(pol)
zetatop = euler * Z1.topological_zeta(local=True, weights=pesos)
zetamon = Z1.monodromy_zeta() ** euler
if info:
dic = {}
for p, j in zetamon.factor():
c = p.is_cyclotomic(certificate=True)
dic[c] = j
return zetatop, zetamon, dic
return zetatop, zetamon
def zetas(n, pols, info=False):
r"""
Return the topological and Igusa zeta functions from the data of
a stratification
INPUT:
- ``n`` -- the number of exceptional divisors
- ``pols`` -- a dictionary from ``trinomiales``
- ``info`` -- boolean (default: False), if ``True`` a dictionary giving
the powers of cyclotomic polynomials for the monodromy zeta function
is given
EXAMPLES::
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
sage: Vf = vector(QQ, [1, 0, 0])
sage: Vg = vector(QQ, [0, 1, 0])
sage: Vd = vector(QQ, [0, 0, 1])
sage: n, Nf, Ng, Nd, euler, nus, pols = trinomiales(A, Vf, Vg, Vd)
sage: zetas(n, pols, info=True)
(1/(s + 1), -t + 1, {1: 1})
"""
zetatop = 0
T = PolynomialRing(QQ, 't')
t = T.gen(0)
zetamon = 1 / (1 - t ** 3) ** n
for k in pols:
zt, zm = estrato(*pols[k])
zetatop += zt
zetamon *= zm
if info:
dic = {}
for p, j in zetamon.factor():
c = p.is_cyclotomic(certificate=True)
dic[c] = j
return zetatop, zetamon, dic
return zetatop, zetamon