5
$\begingroup$

The Weierstrass preparation theorem for formal power series rings guarantees that if a given formal series $f(z) = \sum a_k z^k \in R[[z]]$ where $R$ is a complete local ring with maximal ideal $M$ has $a_k \in M$ for $k < n$ and $a_n \in R^* = M^c$, then

$$ f = (z^n + b_{n-1}z^{n-1} + \cdots + b_0)u $$ where $b_k \in M$ and $u$ is a unit in $R[[z]]$.

I need an explicit algorithm for calculating this Weierstrass polynomial (or distinguished polynomial) for a given $f$. In my case the coefficient ring is $R = \mathbb Z_3[[x]]$, formal power series over the 3-adics. So any algorithm would have to be robust enough to handle these coefficients.

Does anyone know of such an algorithm for a math software package?

$\endgroup$
3
  • $\begingroup$ Just a comment, since I don't know and don't have the time to check: maybe you want to look at the documentation of the constructor WEIER in FriCAS whether this is what you want. If so, the file weier.spad.pamphlet in the FriCAS distribution (fricas.sourceforge.net) contains the source. Don't hesitate to ask on [email protected] $\endgroup$ Oct 18, 2010 at 7:22
  • $\begingroup$ I don't think either MAGMA or SAGE have such functionality built in. But it should be trivial to code in any package which handles power series with not-necessarily-field coefficients. Look at Manin's proof in Ch.5 sec.2 of Lang's "Cyclotomic Field", (p.130 of the combined edition), which gives an explicit formula. $\endgroup$ Oct 18, 2010 at 14:23
  • $\begingroup$ It seems that Manin's method suggests an algoriithm to approximate the unit power series (that I called "u" above) to any finite degree of precision. But being interested in the polynomial I would need to calculate u exactly so that I could find f*(u^-1). The package WEIER seems to only work for field coefficients, though I had trouble executing it. Entreaties to the FriCAS development group haven't produced a response. $\endgroup$
    – R. Nendorf
    Nov 8, 2010 at 18:37

2 Answers 2

6
$\begingroup$

If you're still interested in the answer to this...I also needed an explicit algorithm for calculating associated Weierstrass polynomials and provide two such algorithms in http://arxiv.org/abs/1107.4860v2, Algorithms 5.2 and 5.4. The first one is simplest and is based on Manin's method and a result by Sumida.

$\endgroup$
6
$\begingroup$

Here's an algorithm that I use. Let's call $S$ the degree-$n$ shift operation, sending $\sum c_kz^k$ to $\sum c_{n+k}z^k$, in other words the quotient when you divide a power series by $z^n$. Step 0: divide $f$ by $Sf$, giving you a power series $f_1$ such that $Sf_1\equiv 1$ modulo $M$. Step $i$, for $i > 0$: repeat. At each stage, you get a power series $f_i$ for which $Sf_i\equiv 1 $ modulo $M^i$. For a quicker variant of Step $i$ (for $i > 0$), instead multiply by $2-Sf_i$. It works because you've constructed a convergent infinite product.

$\endgroup$
1
  • $\begingroup$ Dear Prof. Lubin, I would also like to thank you for this answer. I am now using this in a small computational project I'm working on. Though, I was wondering, in the "quicker variant", is the rate of convergence faster, or is it just quicker because multiplication is quicker than division? $\endgroup$ Mar 8, 2012 at 0:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.