I am a mathematics student who wants a tool on the side, either specifically aimed at, or well suited for abstract algebra (ring/ideal theory, module theory, but perhaps graphs and combinatorics as well). My purpose is mainly for learning/experimenting/exploring, but also somewhat to keep my programming skills up. I have the following loose requirements:

  1. Does abstract algebra "out of the box" (lots of built in functions) well
  2. Well supported and widely used; If a book has been published on it, it's a plus
  3. Used/preferred and/or respected by researchers/professionals in the field of mathematics
  4. Not too much of a steep learning curve, and somewhat swift to use, i.e. I should be able to put a script together to test out an idea rather quickly.
  5. It's free (unless it's Mathematica or Matlab where I have a student license)

I have used or briefly looked at the following:

  1. Mathematica (used rather frequently, but not for that much abstract algebra)
  2. Matlab (used rather frequently, but not for abstract algebra)
  3. Python (used frequently, but not for abstract algebra)
  4. SageMath (briefly looked at)
  5. Magma (only heard of)
  6. Lisp/Scheme, Haskell and other similar functional languages (used some, but not for algebra)

Question 1: What system, perhaps from or closely related to (but really not limited to) the list above, would you suggest I use, if I want to use it to test out things in abstract algebra for learning/exploring; But also perhaps want to have learnt something that I might actually use in a workplace?

Question 2: Actually I wouldn't mind using Python together with Spyder for this, so is this possible and advised?

Question 3: I am curious about Sage, and looked at this thread. In addition to what has been mentioned there, would you say Sage fits my criteria?

(I use both Linux and Windows, so operating system doesn't matter that much. Online interpreter is a plus, but not necessary.)

  • $\begingroup$ You may like GAP: gap-system.org $\endgroup$ Commented Feb 13, 2019 at 11:29
  • $\begingroup$ Maybe, GAP is useful for your purposes, although I only know group-theory commands. Concerning MAGMA, I only used it for number theory and elliptic curves, but it should support algebra as well. Unfortunately, the syntax of both tools is awful. PARI/GP is easy to use, but unfortunately mainly designed for number theory, I do not think it helps you much. $\endgroup$
    – Peter
    Commented Feb 13, 2019 at 11:30
  • $\begingroup$ I do not know SAGE very well, but I think it is mainly designed for number theory, such as PARI/GP. Another possibility however is JULIA. This could be what you want. $\endgroup$
    – Peter
    Commented Feb 13, 2019 at 11:32
  • $\begingroup$ Regarding resources available to study GAP, please see math.stackexchange.com/q/104195 $\endgroup$ Commented Feb 13, 2019 at 19:05
  • $\begingroup$ @Peter : So, I will probably look a bit more into GAP, Sage and Julia. Especially Julia sounds interesting just in general. Just straight away, I only found two packages for doing abstract algebra: github.com/wbhart/AbstractAlgebra.jl and oscar.computeralgebra.de/blogs/2018/06/15/AbstractAlgebra ; Not having had the time to dig deeper right now, the Oscar project was a little confusing. Not sure it's a Julia package, probably just written in Julia. So what to use with Julia for abstract algebra? ;And do you know any good julia books / intro resources emphasizing abstract alg? $\endgroup$ Commented Feb 17, 2019 at 12:29


You must log in to answer this question.