MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top
  1. Given a curve defined over the rationals, is it computationaly possible to find all its absolutely irreducible components?

  2. Is there an implementation of this in the MAGMA program?

share|cite|improve this question
SINGULAR does have an implementation of Gianni/Trager/Zacharias algorithm for absolute prime decomposition. – wishcow Aug 17 '11 at 7:51
In Magma, suppose that C is your curve and it is irreducible over the ground field. Then you can use the following commands: k:=FieldOfGeometricIrreducibility(C); IrreducibleComponents(BaseChange(C,k)); – M P Mar 27 '12 at 19:56
up vote 5 down vote accepted

There is a more-or-less standard algorithm for finding irreducible components. It is not necessarily quick and is a topic of current research to improve it or find alternatives. It goes as follows. First, find a smooth point on the curve. E.g. pick one coordinate at random and solve for the others. (Note you most likely will not get a rational point, just an algebraic point.) Next, compute many terms of the power series expansions, in terms of one coordinate, for the other coordinates around the point you found (e.g. using Hensel's lemma). Finally, using linear algebra, find the minimal degree equations satisfied by these power series. You have found the irreducible component passing through that point you found in the first step. Repeat.

I am not sure if this is implemented in Magma. They have an extensive on-line list of functions. Have you looked there? Alternatively, contact them. I assume that the license you paid for entitles you to costumer support.

I know something like that is implemented in Singular, which is used by Sage and that Sage was trying to come up with its own version.

share|cite|improve this answer

An algorithm to find irreducible components is described here:

On computing absolutely irreducible components of algebraic varieties with parameters, by Ali Ayad (published in "Computing", 2010)


This paper presents a new algorithm for computing absolutely irreducible components of n-dimensional algebraic varieties defined implicitly by parametric homogeneous polynomial equations over Q, the field of rational numbers. The algorithm computes a finite partition of the parameters space into constructible sets such that the absolutely irreducible components are given uniformly in each constructible set. Each component will be represented by two items: first by a parametric representative system, i.e., the equations that define the component and second by a parametric effective generic point which gives a parametric rational univariate representation of the elements of the component. The number of absolutely irreducible components is constant in each constructible set. The complexity bound of this algorithm is δO(r4)dr4dO(n3), being double exponential in n, where d (resp. δ) is an upper bound on the degrees of the input parametric polynomials w.r.t. the main n variables (resp. w.r.t. r parameters).

I don't know if this, or any other, algorithm is implemented in Magma, but I am guessing that a simple version is not so hard to implement.

share|cite|improve this answer

Magma (respectively, Sage!) can find the prime and primary components of a scheme $X$ (the irreducible components of a scheme $X$).

Look at the Magma documentation and also the Sage documentation on algebraic schemes. There are examples of usage in the documentation.

share|cite|improve this answer
Thanks for the answer Alvaro, I do not think it answers my question though. Notice that I wrote absolutely irreducible components. For example $x^2+y^2$ is an irreducible component over the rationals, even though it is reducible over the algebraic closure. Magma only checks for the irreducible components and not the absolutely irreducible ones. I will check Sage's function later today. – wishcow Aug 16 '11 at 16:12
Sorry but, as far as I can tell, there is currently no command that will output the absolutely irreducible components of a scheme over $\mathbb{Q}$, in either Sage and Magma. If you knew that all absolutely irreducible components are defined over a number field $K$, then you could define your scheme over $K$ and then you would be able to find the components. One can also define in Magma a scheme over an algebraic closure of $\mathbb{Q}$, but the functionality is restricted and the functions to find irred. components fail to work in this generality. Maybe some Magma/Sage developer can say more. – Álvaro Lozano-Robledo Aug 16 '11 at 17:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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