Announcement of Symbolics.jl bring attention of many people and starts many lively discussion on Discourse and beyond, about Computer Algebra Systems (CAS). In this discusion casual many papers, blog post, talks on YouTube, already existing CAS implementations etc., were mentioned and they links posted, but finding one of them now can be a bit of the challenge.
Since this topic is important and looks like a source of fun, for convenience for people who want to learn more about computer algebras systems, as myself, I try to collect in this post as many of this materials as I can. I hope that someone find this list useful.
I also want to mention two acronyms, that can be found in announcement thread: SCAS = Scientistâs Computer Algebra System, MCAS = Mathematicianâs Computer Algebra System. As @dimpase point out such distinction is in many ways harmful, but we will probable use it a lot.
When I didnât know how order some entries in one of the lists, I just use to them alphabetic order. In the future I will try to improve this post.
Also I apologize for all errors in my English.
Papers
Bertrand Russell On Denoting, see also Wikipedia page of this work,
Papers of James Davenport, Robert Corless and David Jeffrey written together and in various combinations w/co-authors, about identities for function of complex variable; e.g. Robert M. Corless, et. al Reasoning About the Elementary Functions of Complex Analysis,
People that made/recommended these materials in alphabetic order: Christoph Buchner, Jacques Carette, Fredrik Bagge Carlson, JÄnis Erdmanis, Richard Fateman, Max Horn, ZdenÄk HurĂĄk, John Lapyre, Bernt Lie, Stefan Krastanov, Christopher Rackauckas, David P. Sanders, Chad Scherrer, Philip Zucker.
I apologized everyone who should be on this list, but he or she isnât on it.
Maybe I am missing something, but shouldnât mapple and mathematica be on that list? Also, why maxima.jl is mentioned? Itâs a wrapper to maxima, sure, but almost all other cas from the list have Julia wrappers. May be they should be in a separate list then.
Good questions and suggestions. Answers are quite prosaic.
Why Mathematica and Maple arenât on that list? I was thinking that are famous enough, so there is no need to listing them. But on the other hand, all means all, so I will add them to the list.
Why is Maxima.jl on the list? After few hours of collecting these links and putting them in order, I need to put this one somewhere and I just post it below link to Maxima. I will make new list of Julia wrappers around CAS and put this link there, thank you for the suggestion.
MuPAD, developed at University of Paderborn, Germany, and bought by MathWorks in 2008 and integrated into their Symbolic Math Toolbox
There are also various CAS systems in calculators from Texas Instruments, Hewlett Packard, and Casio. But these are relatively lightweight(??) (I think there was a PC version of Derive some years ago, though).
There is also the OSCAR system which consists of Oscar.jl and its various related packages AbstractAlgebra, Nemo, Hecke as well as wrapper packages for the external research/specialist CAS GAP, Polymake, Singular.
Thank you for mentioning these CAS. I have almost no knowledge about this field, outside struggling with Mathematica, so if some CAS wasnât mentioned in discussion or I overlooked this part, which isnât that hard, there is almost no chance that it be on the list.
A list of collected references without evaluating them or characterizing them is probably not adding to the knowledge already available by a pointer to Wikipedia. Perhaps if you or others can add annotations like âuseful - provides fundamental insightsâ or âexplains some hacksâ. it might help.
My 1972 thesis is, in my opinion, still relevant; it seems that putting it on or off your list should be based on evaluating its usefulness, not its age.
I think it is important to distinguish papers and other material by their intent and context. If we were talking about automobiles, you would distinguish material about âHow to drive the Ford model XXXâ from âEngineering innovations in the electronic ignition for the Ford model XXXâ. Similarly, a paper on CAS system XXX could be about the user-level interface, or it could be about the deep internal design decisions that represent breakthroughs in effectiveness, efficiency, etc.
To be specific, reading the user manual for some copy-cat system [ZZZ is like WWW but is written in C instead of lisp] that provides a modest symbolic mathematics capability is not likely to help understand the frontiers of the system-building challenges.
In some cases, finding and using the best state-of-the-art ideas may depend on quite the opposite end of the spectrum of available information. That is, reading the source code. Or mechanically translating the source code of some system to Julia.
It seemss Iâm heading into water that has already been explored ⊠putting together a Julia wrapper and eating the whole other system. Though, putting a wrapper on Maxima may not be the right approach â if it just gives a read-eval-print loop of Maxima. Is that it?
Instead, maybe there can be wrappers around lisp programs like solve, integrate, limit, taylor, simplify, display, plot. Thatâs how Iâve accessed (from Lisp/Maxima) the capabilities of FFTW, GMP and similar high-quality stuff that I was too lazy (or clever?) to reprogram.
In addition to being able invoke the lisp programs, you would also need to convert data between formats (conceptually, read/write) to/from lisp.
(I say Maxima because I know more about it. You could say the same things about Axiom or other systems.)
This approach would give you a reasonable level of capability without the need to learn all about CAS (I have online graduate course notes ⊠but that doesnât make you an expertâŠ) and to spend years programming stuff that has already been programmed. Of course if you want to become educated in this area of symbolic math system building, mechanization of mathematics, and its underpinnings, thatâs admirable, but itâs not everyoneâs cup of tea.
RJF
I agree wholehearted that just listing all things add little to 0 knowledge. My aim was very humble, just add a little bit order to dozens of links that are casually share during discussion and can soon be, for all practical reason, lost in the threads so long that they can rival with Leo Tolstoyâs book. Evaluating them is just beyond my abilities, I can only hope that people with true expertise will comment how to change the list, which one should be added, what removed, what is introduction, what is about deep internals, etc.
Classification by intent and content is orders of magnitudes better than by type of material, no question about, but this was only thing that I was able to do in this moment. And since people keep sharing more and more materials, I decided âBetter now than neverâ.
I never want to suggest that we should evaluate your thesis, or any other work, by its age, this would be sign of enormous hubris. I just donât have any true knowledge about CAS field, only some practical experience, so I canât evaluate value of anything. Every other link was posted by someone else and Iâm hoping that everyone evaluated material he/she sharing and found it useful. I found your thesis on Wikipedia and I was thinking âI post it in this thread with few words of commentary, so everyone can judge if he/she want to read it.â. Paul Wangâs thesis is a year older, but since you mention it discussion about Symbolics.jl as paper that one should read (at least that how I understood it) I put it without a doubt. I apologized if my post were rude, this was not at all my intention.