Open Source Math 352
An anonymous reader writes "The American Mathematical society has an opinion piece about open source software vs propietary software used in mathematics. From the article : "Increasingly, proprietary software and the algorithms used are an essential part of mathematical proofs. To quote J. Neubüser, 'with this situation two of the most basic rules of conduct in mathematics are violated: In mathematics information is passed on free of charge and everything is laid open for checking.'""
Lol (Score:5, Funny)
Re:Lol (Score:5, Funny)
Any software that contains i = i+1 must license my math.
Re:Lol (Score:4, Funny)
Re:Lol (Score:5, Funny)
Re:Lol (Score:5, Funny)
Re: (Score:3, Funny)
Re:Lol but... (Score:3, Funny)
Maths...... (Score:5, Funny)
That's how I learned maths in high school.
Re: (Score:3, Funny)
It's all... (Score:2, Insightful)
Math is "Free", MY LILY-WHITE ASS. (Score:5, Insightful)
I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense is just typical marxist university professor hypocrisy.
Let's price some math texts:
Or try a few titles which might be a little more familiar to Slashdotters:
Princeton, which has the finest mathematics department in the world [or at least had the finest mathematics department in the world, before Harold Shapiro & Shirley Tilghman decided they wanted to turn the
Re:Math is "Free", MY LILY-WHITE ASS. (Score:5, Insightful)
> I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense
> is just typical marxist university professor hypocrisy.
Taken out of context the quote might not make sense to you. The full quote from Neubuser is:
When Neubuser says that mathematics is "free of charge" he means that
one can use theorems one reads without having to pay to use those theorems.
He is of course not at all claiming that publishers do not charge for
books and papers that contain mathematics. Put simply, if I want to use
the "FactorN" function in Mathematica, I have to pay for the privilege
every time I use it. If I want to use the theorem that every integer
factors uniquely as a product of primes, then I never have to pay, even if
I am using that theorem in a published proof.
-- William
Re:Libraries are NOT FREE. (Score:5, Interesting)
Would these be the same kind of good-for-nothing, lazy, worthless asses who brought us Special Relativity while working in a lowly position in the Patent Office in Bern? You know, the kind who got together with friends to peruse and discuss the latest freely available scientific texts, the same texts that led him to revolutionise science more than anyone since Newton?
The books in the Princeton Library are free, thanks to the generousity of far-seeing individuals who realised that their money was better spent on a library than a new yacht. They, at least, saw the benefit of sharing knowledge with everyone, regardless of their means. I can only hope that, somewhere in that misanthropic little husk you call a heart, you will some day find room for a similar spirit of openness and sharing.
Re:I'm not the hypocrite here. (Score:5, Insightful)
As pointed out in the editorial, software developers make mistakes, and this is true regardless of whether that developer is a proprietary software vendor, or a free/open source software project. There is one key difference however, the validity of any given proof can be determined independently when using free/open source code by the very nature of the product (availability of source code). There is no validation for proprietary software beyond the assurances of the company involved.
When mathematic theory becomes applied mathematics (such as the creation of buildings, bridges, aircraft, or thermonuclear devices), which proof would you prefer to hang your life upon - Microsoft's guarantee, or independent verification and peer review? This becomes ever more critical as we create more complex systems that can not be easily verified by hand, yet rushed into applied use by the expediency/efficiencies they deem to provide.
Re:Math is "Free", MY LILY-WHITE ASS. (Score:5, Informative)
Prominent mathematicians have been complaining [ams.org] for [berkeley.edu] years [ams.org] (more links here [umd.edu]) about overpriced journals, and entire editorial boards of some journals have resigned in protest (see a list of mass resignations and similar changes here [ucsb.edu]). There are now plenty of entirely free journals in combinatorics [combinatorics.org], topology [www.emis.de], and other fields, and pretty much everything that gets published these days is either available on the author's website or on the arXiv [arxiv.org].
So modern research tends to be free, but what about all the books you need to read before you understand this research? Sure, a copy of Rudin may be expensive and there's not much we can do about that, but maybe you can learn from the free analysis course notes at MIT's OCW [mit.edu] site. You complain that EGA is out of print, but basically everything Grothendieck wrote is available for free [jussieu.fr], and you can even get them along with tons of other old French publications through NUMDAM [numdam.org]. (There's even a project to transcribe SGA [leidenuniv.nl] into LaTeX.) Lots of other books are free to download legally [gatech.edu] (and this is by no means a complete list), even though many are commercially published as well.
Finally, you can complain all you want about university tuition, but I really doubt that free tuition is going to open up mathematics to the masses. Ultimately the very top students who can't afford it are getting scholarships and grants to cover their education (and I do know some people who got free rides at Princeton because they couldn't afford it -- that school is definitely more generous than most), and since most other people couldn't get into Princeton anyway the tuition is never even an issue for them. The best way to make mathematics more accessible is to give everyone access to free textbooks and current research, and the "marxist university professors" you deride have been gradually moving in that direction for years now.
By the way, what do you think has been done to damage the Princeton math department's reputation? Whatever you think Shapiro and Tilghman have done to the university, nobody in their right mind would deny that it's one of the top few in the world and I doubt most people would openly proclaim any one department to be the best anyway.
Python is part of the answer (Score:5, Insightful)
I am no a mathematician but surely if you're going to submit a computer aided proof you must submit a full copy of the program. The are all manor of subtle mistakes that can be made in a program that could cause serious problems with a proof.
Suppose you inspect the source and find it to be faultless, how can you trust [cryptome.org] the compiler. And if you hand compile the compiler, how can you trust the CPU [wikipedia.org]? Surely it's turtles all the way down.
In many ways, establishing the correctness of a computer-aided proof is very much like security engineering. You want to verify that the whole software stack is operating correctly before you can trust the result. Having the source-code is a pre-requisite to this exercise.
Changing to topic slightly, I was particularly heartened to see that the open-source mathematics framework being developed one of the authors of the article involves the use of Python.
My immediate thought when seeing the title to the article was "Python is the answer." When some problem or algorithm intrigues me the first thing that happens is that I reach for the Python interpreter.
Python seems to deftly marry precision with looseness. When code is laid out in Python I find it is easier to see what it's trying to do than other languages. It's aesthetic qualities aside, it supports a number of features out of the box which I imagine would be ideal of mathematicians. To list a few, it's treating of lists and tuples as first class objects, support for large integers, complex numbers, it's ability to integrate with C for high-performance work.
I often think of Python as "basic done right" and it's ideal for mathematicians (or anybody) who don't want to think about programming but the problem at hand.
Simon
Re:Python is part of the answer (Score:5, Interesting)
The insidious thing about that particular result was that it looked very similar to the correct. In fact the difference would not have been found if two people did not run different versions of code independently (and more or less coincidentally) arriving to slightly different error rates.
Re: (Score:3, Informative)
Unless you were using an experimental compiler, that usually means a bug in the code, not a bug in the compiler. Run the code with valgrind, you'll probably find out-of-bound addressing, or uninitialized reads (the signs of the problem being in the code, not the compiler)... Or if you use thr
Re:Python is part of the answer (Score:5, Informative)
Re:Python is part of the answer (Score:5, Informative)
It's a GPL Computer Algebra System and it's in active development. I use it all the time.
Re: (Score:3, Informative)
Re: (Score:2)
Re:Python is part of the answer (Score:4, Insightful)
No mistakes. After all, the Ultimate Answer really is 42. My program proves it!
#define MYANSWER "42"
int main()
{
printf("The result is: %s.", MYANSWER);
}
No, you CAN'T have the source code... but look, my program proves it! LOOK AT THE PROGRAM!
Re: (Score:3, Funny)
Re: (Score:2)
Some *very* recent others that make me like it:
* I can now use versions of Ruby that work with dtrace on Leopard and Solaris/Opensolaris (haven't tried FreeBSD yet).
* Ruby on Rails, yes despite the hype I like it. Though there are annoyances.
* I can also build Ruby (and Python) programs in osx without Coacoa/Objective C. Supported too, yay.
* (Not recent, but the reason I prefer Ruby to Python) Whitespace is optional,
Re: (Score:2)
You have to be careful with Python and Ruby though. For example, I wrote a symbolic math interpreter for simplifying algebraic equations in Ruby. I then realized that I had reinvented LISP.
I do not actually program LISP, but in the end, LISP rules all as a programming language, especially when pure math is considered.
Re:Python is part of the answer (Score:4, Insightful)
I am a mathematician. Your referees might ask to inspect the source code. This is akin to a biologist being asked to produce her raw data. But it's pointless anyway. Because...
In many ways, establishing the correctness of a computer-aided proof is very much like security engineering. You want to verify that the whole software stack is operating correctly before you can trust the result. Having the source-code is a pre-requisite to this exercise.
The AMS isn't worried about the correctness of these "proofs." They aren't proofs. It is logically possible for one of these programs to return the wrong answer, even if the program is correctly implemented. Ergo, it is not a proof.
Computing, in mathematics, is a source of fresh problems and a vehicle to explore and gain insight about mathematical structures. The AMS is far more concerned about good exploratory algorithms getting swept up by Wolfram Inc., and Mathworks, and the like, and never being seen by mathematicians again.
Regarding which language is approriate for mathematics, the answer is whichever clearly expresses the idea you're trying to write. Lexical scoping is familiar to us. I know I prefer it, since it lessens my cognitive load. I prefer dynamically typed languages. I need the ability to construct anonymous functions efficiently. And I would prefer automatic memoization. Development time is always an issue. Most languages don't come with extensive mathematical algorithm libraries. So you'll either have to write them yourself (time consuming; boring, unless you're into that stuff) or find some. I've used Perl, Ruby, Scheme, and C.
Re: (Score:3, Interesting)
I fear you and/or the AMS are giving too much credit to the big names in mathematical software. Sure, they have some bright people and they do some useful research in their own right, but they're still only human. They make mistakes, their software has bugs, and they don't know lots of deep secrets that the rest of academia don't. In fact, the development practices at certain high profile mathematical software companies leave a lot to be desired; they tend to hire PhD types, who know a lot about mathematics
Re: (Score:2, Interesting)
I can see why you might think that, but my point had little to do with commercial software houses. My main point was that computer-assisted "proofs" are not proofs in the mathematical sense. They're "results" that rest "scientifically" on the software and hardware and real world. It really doesn't matter whether I use my implementation of Newton's Method or Mathematica's. Neither should be trusted in a proof.
I
Re: (Score:2)
Fair enough.
The thing that always gets me about the concept of a mathematical proof is that it seems to be turtles all the way down. Sure, if you're proving, say, a simple result in group theory derived trivially from axioms, then the proof can be quite convincing. But recent proofs for some famous results run to many pages, and as experience shows, a "proof" can turn out to be completely undermined by a simple flaw in the logic that the person presenting the proof missed. Even if you break the steps down
Re: (Score:3, Interesting)
Furthermore the advent of computers has made the illustrati
Re: (Score:3, Interesting)
Try reading books from the early 20th century [uni-bielefeld.de], and ask you
Re: (Score:2)
I might be wrong, but it occurs to me that a program which 'proves' a mathematical hypothesis can only, on inspection, be shown to be a proof of the program itself, not the initial hypothesis.
The problem with software is that it can be made to do anything. Want to model colliding
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
Ruby could be the answer as well (Score:5, Interesting)
There is one special feature of Ruby, that I miss in every single programming language I used since: iterator methods. Any time I want to iterate over elements of an array or hash I just do: That's it, instant "anonymous function" given as a parameter in estetically pleasing syntax. In fact, "for" loop in Ruby is just obfuscated way of calling method #each on an object. But the madness doesn't stop here: It's a pity that so many people disregard Ruby as a "platform for Rails". It is a feature complete countepart to Python, and as my company high volume systems can attest, can handle anything other languages can handle.
Robert
Re:Ruby could be the answer as well (Score:4, Informative)
Actually, dict.iterkeys() returns an iterator of that dict's keys alone. You wanted:
or even just:
Coq is another interesting tool (Score:4, Informative)
This is a tool that can help mathematician prove their theorems.
It was notably being used in the proof of the four color theorem [wikipedia.org], as mentioned on
Re: (Score:3, Insightful)
I disagree, it is certainly possible to prove to a reasonable certainty what a black box is doing. It may be easier, or more though to prove looking into the box.
As you say, for all practicality no one is going to be able to confirm the entire software stack, by looking at the code for any proof. unless your running the final step on a basic st
Re: (Score:2)
As to the compiler and CPU, so long as you use a combination that have been verified as correct by other mathematicians you should be fine.
Re: (Score:3, Funny)
Re:Python is part of the answer (Score:4, Informative)
Sage has a very good solution to this: Cython [cython.org]. It's a very easy language, almost identitical to Python, which can be used to bind C to Python (for instance, we use GMP and GSL extensively through Cython) as well as compile Python-like code to C, which can be accessed by Python & vice verse. It's very intuitive, and very fast.
speaking of proprietary (Score:3, Insightful)
Re:speaking of proprietary (Score:5, Funny)
"While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided."
Indeed. Now we are left wondering whether the TeX code is buggy. Like maybe an extra character accidentally slipped into the file.
therefore mathematics software should %not
be open source!
Now we'll never know.
PDF rant. (Score:5, Insightful)
Really, what is wrong with PDFs and why should they require a warning?
By the way, all scientific papers are disseminated by PDF.
Re: (Score:2)
Actually, most scientific papers I see are disseminated as PostScript (often with a PDF option for people without ghostscript or similar installed - basically, non-academics).
Re: (Score:2)
Not in my experience. PS is opten an option, but not always. LNCS (Springer?) for instance only offer as PDF. I think Elsevier and the IEEE are like that as well.
Re: (Score:2)
Perhaps it depends on the field. In my experience, in computer science all recent papers are provided either as PDF alone or PDF + PostScript, and in my (very limited) experience with refereed publications, PDF is the accepted standard.
PDF has a lot of advantages over PostScript, the most obvious of which is internal hyperlinks.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Re: (Score:3, Informative)
Then get a better PDF reader. Even on a very slow computer, xpdf or ghostview have subsecond load times. If you use mozilla related browsers, then plugger will let you "embed" decent PDF readers. In fact if you install mozplugger under Ubuntu, it uses evince by default.
Re: (Score:2)
For me, I find it particularly annoying because the default Adobe PDF plugin on Windows sometimes crash my browser. I think that's true for many others, too, though I don't know that
Re: (Score:2)
For me, I find it particularly annoying because the default Adobe PDF plugin on Windows sometimes crash my browser. I think that's true for many others, too, though I don't know that for s
Re: (Score:2)
Re:PDF rant. (Score:4, Interesting)
Re:speaking of proprietary (Score:4, Informative)
PDF is neither closed nor uneditable. Adobe publishes the complete PDF format for anyone to use free of charge. It may not be FSF Free (since Adobe requires that implementers adhere to certain rules that violate the principle of Free), but it's definitely not closed. Also, KWord will import it for further editing, text and images, so it's not uneditable (even if it's not ideal).
I agree with your main point, but let's cut PDF some slack.
Re: (Score:3, Informative)
I think (hope) you're joking, but several people who responded seem to be taking this at face value. It's wrong in several ways. PDF is an open format, and if you look at the file info, you see that this particular PDF was generated with Ghostscript. And it's quite simple to edit PDFs. Not as easy as, say HTML, but much
seriously, wtf? (Score:5, Informative)
1. The only reason you would need a "PDF warning" is that you use an operating system with poor support for the format (i.e. Windows). Switching to a real OS, among other benefits, will make reading math papers (which are almost always in PDF format) a pleasure.
2. PDF is an open standard [adobe.com], which has been implemented by many different parties: Adobe and Apple have closed-source implementations; freedesktop.org's poppler and cairo libraries are Free software.
3. The fontface chosen by AMS is orthogonal to the content of the paper - you can easily copy-paste the text and use Computer Modern, Dejavu, Liberation or any other open-source font of your choice. Why would a proprietary font embedded in a PDF file bother you any more than the proprietary fontface of a book?
4. First of all, PDF is editable [petricek.net]. And second, why would you want to edit this particular document? Remember, it's copyrighted by AMS - if you can't prove fair use, you do not have the right to distribute a modified version.
Openness is Fundamental to Mathematics (Score:2, Interesting)
It is fundamental to mathematics that other mathematicians in the same field can check a proof, and the use of closed source software makes that logically impossible, for without access to the source of the application, it is not possible to guarantee that any particular operation has been implemented correctly.
He's also plugging his own open source project, SAGE [sagemath.org] - I might have to
Re: (Score:2)
Re:Openness is Fundamental to Mathematics (Score:4, Insightful)
Also, although it's not in the field of theorem-proving, the mathematical package I use the most -- MATLAB -- is a million times better than the open source equivalent, Octave. I'm not going to use Octave simply because I can inspect the code, because who does that? An error in a software proof would be pretty obvious if it were checked with another independently written piece of software. With MATLAB, I can write my own alternative algorithm using C if I need to, though with significantly more effort and annoyance.
Furthermore, mathematicians are smart people who are fully aware of the implications of their assumptions, probably moreso than any other group of people I have encountered. Reading the set of comments accompanying this article, saying what mathematicians should and should not consider a proof, is like watching monkeys trying to use a can opener.
Re: (Score:2)
Should journals reject such proofs? (Score:3, Insightful)
If the algorithm is part of a patented device or piece of software, its use in a mathematical proof is not subject to the patent on the grounds that pure math cannot be patented.
If journals and academic societies refused to publish proofs based on trade secrets and insisted on a covenant not to enforce the patent against researchers doing purely mathematical research or those who publish the research, the problem would mostly go away. An alternative to the covenant is congressional action or a court ruling that says with absolute clarity that mathematical research is exempt from math-related patents directly related to the research.
--
Personally, I'm against all such patents but I'm not holding out hope that Congress or the Courts will agree with me.
Not Proven (Score:4, Insightful)
TWW
I agree... (Score:2)
Re: (Score:2)
Re:Not Proven (Score:5, Informative)
Propriatary Software (Score:4, Funny)
Welcome to the world of modern research ... (Score:4, Interesting)
Then again, I must really ask if the mathematician in question understands what they are doing if they are using software as a shortcut for difficult analytic solutions. After all, if they don't understand the algorithms well enough to do the work themselves, who is going to say that they understand the limitations of the rules that they are asking the computer to apply.
Re: (Score:3, Insightful)
Then I realized that many proofs aren't concerned with single-input single-output situations, but instead may require thousands of iterations based upon large sets of inputs. You can't do that by hand.
I am certain, that because computers/software ar
Re: (Score:2, Interesting)
And, in the case of mathematics, I'm guessing that they are using it as a shortcut for those difficult analytic solutions.
This is certainly one application, but the use of computers in the more "pure" aspects of mathematics is nothing to sneeze at either. Programs like GAP for group theory, PARI for number theory, and Macaulay for commutative algebra and algebraic geometry play a significant role in the development of their respective subjects. For example, there's very little you can say about the Monster group [wikipedia.org] without the aid of computer calculations -- it's not that researchers don't understand the algorithms involved, i
From the flip side... (Score:2)
Seems the only problem here is one of the position of the AMS regarding what is acceptable.
But the proof steps are known, right? (Score:2)
There's probably not much insight that can be obtained by the source code of the theorem prover, you can always just assume that it was brute fo
Re: (Score:3, Informative)
Re: (Score:2, Insightful)
Open Formats (Score:3, Insightful)
openmodelica.... (Score:3, Interesting)
OpenModelica [ida.liu.se]
a very nice modelling package that can help you with practical mathematics issues like mathematica might.
cheers.
Peter
Not necessarily bad in all cases... (Score:5, Insightful)
In other cases, like the proof of the four color theorem, it seems like the source code is important to see, but not essential. Pseudocode should suffice. Providing pseudocode is akin to saying things like "Simplifying expression (1) yields..."; we don't have to provide EVERY step, but with pseudocode you have enough to determine whether the algorithm itself will work. Checking the source code beyond that is akin to checking someone's algebra.
Just because we don't know how the program arrived at the steps it did doesn't mean that we shouldn't use it; we can usually check the steps. After all, the human brain has been a closed-source proof machine for thousands of years, and no one has complained about that :) Just require pseudocode in computer aided proofs, and it should be sufficient.
Re: (Score:3, Insightful)
Perhaps I'm being too pessimistic, but shouldn't the source code
Re: (Score:2)
Re: (Score:2)
Pseudocode is not sufficient. You don't know that it actually reflects the
first: prove the correctness of your software (Score:2)
So, if you use a closed product, how can that have been proved corect (independently of the supplier, of course) without recourse to the source code?
What about hardware? (Score:4, Insightful)
bad analysis, bad results (Score:3, Insightful)
A recall a few recent incidents in which papers had to be retracted because the machine did not do what the researchers thought it did. I have personal experience in which the spectroscopy generated by the computer did not reflect reality. If the researcher does not know how to use a tool, then he or she does not know when that tool is being misused.
I am not sure something like mathematica is the issue. Wolfram seems to use standard standard well known algorithm. Almost every academic institution has a license, so, given the data, any number of people can rerun the analysis. Likewise the algorithms can be tested with simpler data sets to understand how they work and breakdown. I would be more worried about homegrown software.
look at who's speaking... (Score:2, Interesting)
Re: (Score:3, Informative)
By the way, the article is not about formal automated proofs. It is about what is now standard procedure in mathematical research, namely proofs that look like this:
[Formal mathematical argument]
It's incredibly common right now when reading published mathematical papers to see
Norman Megill's Meta-Math for proof verification (Score:4, Informative)
Sage (Score:3, Informative)
* It uses Python as its programming language so that you can use any existing Python modules with your Sage programs.
* Sage also includes Cython ( http://www.cython.org/ [cython.org] ) which is based on Pyrex and allows one to easily compile Python code down to C for speed.
* Sage's notebook interface with also interface with pretty much every existing computer algebra system, open-source or not.
* Sage includes Maxima, GAP, Scipy, Numpy, and many other open source math packages.
* A very active developer community. If there is something that you need Sage to do, chances are that there will be a number of developers willing to help you out.
For some screenshots, see http://www.sagemath.org/screen_shots/ [sagemath.org] .
One of the things that Sage needs most now is more users. So, if you have an interest in open source math software, definitely check out Sage.
not really true (Score:2)
Mathematics goes in an out of the phases of being secretive and open.
Pythagoreans were very secretive. So were statisticians in the 19th century. I am pretty sure investment bankers do a great deal of math that they don't want anyone to ever see because it gives them an edge in the market.
It's sort of like gun powder. When first discovered, the secret is tightly controlled because it would gives advantage over the competition. Then the competition realizes that it is being consistently beaten and tr
Re: (Score:3, Insightful)
At my firm we use a lot of "proprietary mathematics", but guess wha
Open Source Software in Machine Learning (Score:3, Interesting)
The article is in the Journal of Machine Learning Research. [mit.edu]
There's a great book on this topic, (Score:3, Informative)
OpenAxiom (Score:3, Insightful)
another useful package: Mathomatic (Score:3, Insightful)
Mathomatic [mathomatic.org] is a quick and handy package to use for your more everyday math problems. It celebrates 20 years since its first release this year and is still updated with its latest release, version 12.8.0, just three days ago.
For programmers, its 'code' command converts your math problem to source code in your choice of several programming languages.
For more info see http://www.mathomatic.org/math/adv.html [mathomatic.org]
Many thanks for writing it, George Gesslein II [mathomatic.org].
Proof exchange format (Score:2, Interesting)
Re: (Score:2)
Re:Why I don't trust Python (Score:4, Informative)
I'm too lazy to see if that's the IEEE 754 result or not (but I suspect it is). But three things in Python's defense:
Re:Why I don't trust Python (Score:5, Informative)
I recommend reading What Every Computer Scientist Should Know About Floating-Point Arithmetic [sun.com].
Re: (Score:3, Informative)
The IEEE 754 standard is very well designed and ensures floating-point arithmetic to be accurate, efficient, and compatible across platforms.
But it does mean that when there is a precise answer and it is calculatable (I think the former demands the latter), that I do minimally want Python to store it fully in memory and to not print out questionable and/or incorrect answers.
So you'd be happy if Python generates an exact answer when you ask it to compute 1 + 1