5
$\begingroup$

I need a reference for a good algebra program-software, especially for Galois theory. What I have found so far is PARI which calculates the galois group over $\mathbb Q$ of a polynomial up to degree 8, but what I am missing which I need, is to be able to calculate, say for $a=\sqrt{2}+\sqrt{3}+\sqrt{5}$, the irreducible polynomial $irr_{\mathbb{Q}, a}$(x), or even maybe over different fields. Maybe Pari can calculate that as well but personally I couldn't find how and the manual was not very illuminating. Other programs I have heard of for algebra are CoCoa and Macaulay but it 's really time consuming searching what are the capabilities of each one of them, so I decided to post this as a question, in case anyone could suggest such a program which he found most convenient.

So overall 2 questions: 1)In general, which program do you find most convenient for abstract algebra?

2)Specifically for Galois? (need not be different from the above)

$\endgroup$
1
$\begingroup$

I like SageMath for abstract algebra and Galois theory.

It has the functionality that you ask for (see field of algebraic numbers in the manual):

sage: f = QQbar(sqrt(2) + sqrt(3) + sqrt(5)).minpoly(); f
x^8 - 40*x^6 + 352*x^4 - 960*x^2 + 576

You can find the Galois group (this uses PARI, which is part of Sage, in the background):

sage: M.<a> = NumberField(f)
sage: M.is_galois()
True
sage: G = M.galois_group(type='pari')
sage: G.group()
PARI group [8, 1, 3, "E(8)=2[x]2[x]2"] of degree 8

You can also find the minimal polynomial over an intermediate field:

sage: L.<sqrt2>, L_to_M = M.subfield(sqrt(M(2)))
sage: M_over_L.<aa> = M.relativize(L_to_M)
sage: aa.minpoly()
x^4 - 4*sqrt2*x^3 - 4*x^2 + 24*sqrt2*x - 24

Documentation of further functionality can be found in the reference manual and the brief thematic tutorial.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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