Mathematical software wish list Like many other mathematicians I use mathematical software like SAGE, GAP, Polymake, and of course $\LaTeX$ extensively. When I chat with colleagues about such software tools, very often someone has an idea of how to extend an existing tool, what (non-existent) tool would be useful, or which piece of documentation should be (re)written. Due to lack of time & energy and often also programming expertise, these ideas rarely materialize.
On the other hand, every now and then I meet programmers with a strong interest in mathematics (who are often actually trained mathematicians), and who are looking for a software project to work on. However, normally they don't really know what's needed and end up doing a non-mathematical project.
This gave me the idea to ask the mathematical community to compile a wish list for mathematical software. Wishes can be very small or or something bigger. Just try to make sure that it's realistic and maybe also give an explanation why you consider your project as interesting.
And if you happen to be a programmer fulfilling one of the wishes, please leave a comment.
It would be great if you could also include an estimate on how complex your project and what the math/coding ratio is -- but this is optional.

tl;dr
  
  
*
  
*What software tool would you like to see created?
  
*What existent software tool would you like to see extended by what feature?
  
*What piece of documentation is missing or should be updated/extended?
  

One suggestion per answer, please.
 A: I think some aspects of math would be revolutionized by having a good math search engine. Recently, a question was asked on Meta.MathStackExchange about what they perceived as the greatest problems facing the site. The biggest response was that there was no search engine that indexed mathematics.
This is partly reasonable, since math is stored and documented in $\TeX$ and this can be taken as a standard. But this is also problematic, as there are multiple noncanonical ways to do things in $\TeX$. I would be remiss if I didn't say there are very many other challenging aspects of this.
As an example use case, I often have to look things up in the Gradshteyn and Ryzhik Table of Integrals and Series. It would be remarkable if there were a reasonable way to search for my expressions within the book. Even if I had to attempt multiple searches, it would almost certainly be faster. Taking it up a step, it would be great to search through TeX on the arXiv for certain expressions as well.
I think that even a relatively mediocre math search engine would be a handy start.⠀⠀⠀⠀⠀
A: What I think would be most useful to address this issue is improving the system to make requests and contributions to such software packages.  I'm sure many of these systems would be happy to have more help with development.
For instance, I found that the Sage implementation of computation of zeta functions of graphs is horribly slow and I wrote a much faster implementation (using Sage), and I wanted give Sage my code so they could use it a subsequent release, but after looking at the amount of effort required to contribute code, I decided I didn't want to spend that much time on it.  I was just hoping to submit my code with some comments, which an interested developer could revise to conform to standards, test and implement.
One example of something I would like implemented (say in Sage) is computation of $p$-adic integrals.  E.g., given a compact open subgroup $K$ of $GL_2(\mathbb Q_p)$ and a character $\psi$ on the upper unipotent $N$, compute $\int_N 1_K(n) \psi(n) \, dn$. (Some simple cases like basic character sums might be implemented, but possibly they are only implemented mod $p$.)  I once thought about trying to automate calculations for a highly computational project I had, but then decided it wasn't worth the development time for just that one project.
A: For the sake of searching mathematical texts one could create a purely auxiliary language sTeX, a simplified $\LaTeX$ -- just a software tool (not directly for people). Then one would add a "translator" (or rather a simplifier) from $\LaTeX$ into sTeX. Then search engines (like Google) can search texts in $\LaTeX$ by first obtaining the intermediate sTeX.
Mathematicians may learn just a little bit about sTeX to make mathematical searches still more efficient (but even without knowing anything about sTeX, the mathematical searches will be much easier to handle than without sTeX anyway).
A: A blog comment hosting service that supports MathJax in comments.
Currently most of the services uses iframes, making comments with MathJax impossible to render (unless the service provides native support for MathJax.)
A: Another thing I would like to see (not strictly math only) is a proper editor for .djvu (for all platforms) documents the way there are such editors for .pdf documents. Especially for bigger scanned documents (like many historical stuff in math), .djvu offers much better compression and much smoother viewing performance. To my knowledge, there is only one program that comes close to a .djvu editor, but unfortunately it is lacking in many regards.
On a related note, it would be nice to have a proper .pdf editor, native for Linux (there is one that comes close to the Windows ones, but it is not developed and has many problems, including usability ones), so that one does not need to use (the somewhat unstable) wine.
A: It would be great if mathematical plotting programs like gnuplot would support both mouse based zoom-in and mouse based zoom-out. I once tried to describe what I mean in a German post titled Zoom-out could be so easy, but the description is too incomplete. One issue of that post is that you normally want to keep the aspect ratio. And the concrete formulas are also missing. Both issues could be solved easily, but the principal issue that people don't understand why this would be important is much harder to address.
A: Idea generator using generative machine learning. If it can generate new art, lets give it a try with math. 

Using new techniques from machine learning's aspect of generating new data (eg. GAN networks), it would be very interesting to devise algorithms that input massive amounts of theorems and problems and combine them in various ways to output new statements. 


*

*As in supervised machine learning, the human will be labeling whether the output was helpful in giving them novel perspectives. 

*A first step in the algorithm would be rephrasing the theorem's and problem's statements in as many different ways as possible. Often big bridges in math are build because we managed to find equivalent problems from distinct areas that allowed an exchange of techniques. 
Related:


*

*Is there research on Machine Learning techniques to discover conjectures (theorems) in a wide range of mathematics beyond mathematical logic?

*Interesting conjectures "discovered" by computers and proved by humans?
A: A more modern typesetting language to replace $\TeX$. TeX is basically impossible to parse and its internals are really odd and difficult to work with, when one tries to do something advanced.
Knuth is a genius, and it was a really neat hack for the time, but, with all due respect, after 30 years of experience with computer typesetting I am sure it is possible to put together something better.
If not, at least a TeX compiler with better error messages.
A: I'd like to have on a usb key a user friendly software that could parse a math article to check the proofs in it without having to learn how to use stuff like Coq and highlight the possible gaps. But this may sound unrealistic, at least for now.
A: I always thought it would be nice to have a real-time virtual blackboard (supporting digitizer pen), say, as an extension of Skype or similar service, where you can not only talk with a colleague but also do math together over great distances.
A: A vastly improved support for handwritten math (e.g. via digitizer pen) incl. its conversion to typeset math would be awesome! In a long run, ideally it should be able to replace LaTeX. Just think of how much of researchers' time is spent on inputting math.
A: The website 
swmath.org 
helps in finding existing mathematical software and documentation.
From their website:

What is swMATH?
swMATH is a freely accessible, innovative information service for
  mathematical software. swMATH not only provides access to an extensive
  database of information on mathematical software, but also includes a
  systematic linking of software packages with relevant mathematical
  publications.
The intention is to offer a list of all publications that refer to a
  software recorded in swMATH. In particular, all articles are given,
  which are included in Zentralblatt MATH (zbMATH). It can be both,
  articles that describe the background and technical details of a
  program, as well as those publications in which a piece of software is
  applied or used for research.
In this way, swMATH provides information on actual use of the software
  that is otherwise impossible or very difficult to obtain. At the same
  time the documentation of literature referring to a software is a
  valuable source of information for the authors of the software about
  where their software is used. Moreover, if software is cited in
  scientific publications, this is also an important quality criterion,
  which is used by swMATH for software selection.
swMATH sees itself as a service to the mathematical community.
  Additions, corrections and other notes from authors and users of
  mathematical software can be communicated under 'Feedback' and are
  very welcome.
For more detailed information, we refer to the following article.

[...]

Project Information
swMATH is a project of the Mathematical Research Institute Oberwolfach
  (MFO) and FIZ Karlsruhe (FIZ), funded by the Leibniz Association
  2011-2013.
Project leader: Gert-Martin Greuel (MFO); Wolfram Sperber (FIZ)
  Concept, programming, design: Michael Brickenstein, Christoph Knoth
  (MFO); Sebastian Bönisch, Hagen Chrapary (FIZ)

A: I would like to have a feature in a (La)TeX IDE that would allow one to ``collapse" one's document tree into a single file.   I modularize my typesetting: I have separate files for definitions, lemmas, \newcommands, etc., and it is not convenient to share all of the separate files with others.
Uploading one's document tree to the arXiv--one file at a time--is a tedious chore.  Also,  some editors request that submissions be put into a single file for publication.   The ability to work modularly and then readily convert the corpus to a single file would be useful. 
A: An improved version of latexdiff
A good diff software is essential for collaboratively writing articles. Latexdiff takes two tex files and outputs a new tex file with the differences highlighted (additions are underlined in blue and deletions are crossed out in red). This is very useful since it facilitates viewing the changes that coauthors have made during a round of editing, especially if some of your coauthors are not super computer-savy (e.g., they don't use diff themselves) since you can just pass them the output PDF with the marked changes.
However, my experience with using latexdiff is that the output file usually requires some manual editing before it can be compiled into a PDF, since the diff markup algorithm often messes up the latex syntax. It would be useful to have a more user-friendly latexdiff.
A: I would like software that makes the specific job of managing mathematical references easier.
When I've looked, there are BibTeX and its relatives for making sure that the whole process stays under control; many tools for managing references; tools for pulling BibTeX from MathSciNet; tools for creating BibTeX from arxiv identifiers; tools for searching these places for papers; tools for merging BibTeX files; and so on. 
Using these individually simplifies individual parts of the process. But I always find that I need to:


*

*copy my bibliography from my previous paper, and maybe another one,

*merge in some more bibliography entries from my other previous paper where my coauthor managed the file, and eliminate the duplicates and inconsistencies,

*try to figure out which papers have moved from preprints to arXiv preprints to being published, and update their entries,

*go through new published references I'm adding, hunt them down, and copy-paste BibTeX from MathSciNet,

*create new entries for the arXiv preprints,

*and then some misc. extra jobs that always show up, like fixing tildes and putting capitals in braces and adding hyperlinks to bib entries that lack them because they date all the way back to my thesis.
The process is exhausting and the tools don't click together enough to make it much easier - e.g. automating pulling references from MathSciNet seems almost not worth the trouble because it involves firing up special-purpose software that's only useful for half of the new entries that I'm referencing.
A: I find it particularly cumbersome to produce good-looking mathematical illustrations. I know of several ways to make decent cartoon images in bitmap format with little hassle, but I prefer the image quality provided by vector graphics. TikZ seems to be the go-to for math-based vector graphics, but this is incredibly time consuming, even after climbing the learning curve.
I would very much like a bmp-to-tikz "converter."
Depending on the quality of the bitmap, the converter might need to iteratively suggest a vector-graphics interpretation for the user to evaluate. The user could then fine tune the TikZ code after conversion if he's extremely picky.
A: LaTeX support (or mode) in voice-recognition softwares for people with upper limb disabilities.
Maybe via Dragon NaturallySpeaking or something new entirely.
Something similar for coding as well!
A: It would be nice to have a pdf viewer which gave the user the option to collapse and also restore individual proof sections.
A: A wiki-like mathematical structure/example data base
I can imagine this better as an online service than a locally running software, but nevertheless I imagine it to be very useful.

You ever wondered (because of your research or out of curiosity) whether there is an example of a structure A (e.g. a topological space, graph, group, ...) which has the properties B, C and D, but not E? If Yes, what is an example of such a structure? If No, how can this be proven?

Wouldn't it be nice to have an online service, something like Wikipedia, where you can enter that you are browsing the database of structures A, and you specify the filters [B], [C], [D] and [not E]. You press enter and it spits out:


*

*Here is an example of such a structure: ...

*These structures are exactly the 3-dimensional compact manifolds. An example would be: ...

*No structure can have this combination of properties. Source: ...

*It is conjectured that no such structure exists. Source: ...

*It is a known open problem whether there is such a structure: Read more here: ...

*Property [B] and [C] imply [D] and [not E]. Hence you are actually looking for structures A with only [D] and [not E].

*The database does not contain information on this combination of properties. Do you want to extend the knowledge?


"wiki-like" means that the database's knowledge can be extended/corrected by anyone $-$ like in Wikipedia. Even though this might seem like a complicated semantic search engine, I think that the strong formalization we have in mathmatics enables us to choose a strict syntax for the input. 


*

*We always specify the general structure we are looking for, e.g. vector space, topological space, metric space, group, ring, field, graph, function $\Bbb R\to\Bbb R$, subset of $\Bbb R$, curve (in metric space), field-automorphism, ...

*It follows a list of properties, e.g. finite, compact, 3-dimensional, connected, Hausdorff, has inner point, metrizable, bijective, ... . Every such property can be suffixed with a [not]-operator. The listed properties are joined by conjunction.


The structures and property names are no free-form input, but chosen from a pop-up menu or by auto-completion, so that the users know what to input. The database should implement very basic reasoning, e.g.


*

*If a property A implies B, and B implies C, so does A imply C.

*If A and B contradict each other and C implies A, so C and B contradict each other too.

*The structures can be linked, e.g. every metric space is a topological space (by its induced topology). Hence, every property which is available for topological spaces, is also available for metric spaces.


I know of several such services of varying generality: e.g. for rings, groups, graphs (here and here), polyhedra, or general counterexamples. The differences to what I am looking for can mostly be described by the following points:


*

*General: I want a combined database for all/most structures. All this under a common interface.

*Extendable: I think everyone should be allowed to add his knowledge to the database.

*Searchable: Most of the time I know only the names (or some names or vague descriptions) of some properties of the desired structure. I do not know the structures name. Hence I want to filter by these properties. Sometimes I might be not even interested in examples, but in the relation between two properties: e.g. do they contradict each other, are they the same, does one imply the other, ...?

*Structured: Not a loose collection of examples/counterexamples/articles, but highly interconnected and analysable data.

*Userfriendly/Beautiful: I think mathcounterexamples and of course StackExchange is a good demonstration of these goals.


I once had an idea how this can be realized. I even asked a question on Computer Science StackExchange to see whether useful data structure for this kind of task already exist. I would love to realize such a project, but I am definitely lacking the web-developer skills, and currently also the time.
A: There should be $\LaTeX$-browsers. The (relatively) new HTML 5 is great. It'd be still wonderful to have both: HTML-browsers (as today) and $\LaTeX$-browsers.
A: [In short, a place we can find a more modern proof, or a proof with a different approach, than the original paper that is customary to cite.]
One of the comments mentioned moving LaTeX from PDF to an XHTML sort of environment (Stacks Project is a good example). It may be worth expanding on that as a separate answer.
One obvious advantage is that words in text mode can be searched. And it may be a step towards making LaTeX code searchable (the current top answer). Most of the non-mathematical TeX codes (bullet points, italic, include pictures) we can use markdown like here on MathOverflow.
But the real game-changer is to make it more like GitHub, where one can fork a proof in order to add missing details, or make more substantial rewriting, and "publish" it for all to see. The rest of us can vote on them. Eventually the platform should have sufficiently many of the basic theorems (with many different proofs) in all branches of mathematics that we can cite directly, instead of citing the original paper or a textbook. The citations can also be used to generate a "dependency graph", barring circular reasonings (It may not be as exhaustive in the details as in Stacks Project, or we'd lose the big pictures).
If we want to say a certain result (say, in a certain abstract theory) is important, we can just point to it and see how many important results—or results that you care about—are connected to it. It may be more fun to learn new mathematics this way, combining the best of all textbooks, old and new.
Aside from the theorems, there would be special pages that are more expository, giving historical context (say of a problem) and connecting different theorems into a coherent narrative without getting bogged down in the details of proofs.
Now, wouldn't that be the new publishing model that we have all wished for? Credit may be traced from the forking history. (Of course if we are 
"importing" or rewriting a proof in the literature we should give proper citations.)
