Slashdot Mirror


Open Source Math

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.'""

25 of 352 comments (clear)

  1. Lol by Matt867 · · Score: 5, Funny

    Thanks for the article, now some crazed company is going to try to copyright math.

    1. Re:Lol by Anonymous Coward · · Score: 5, Funny

      I am going to copyright 0 = 1.
      Any software that contains i = i+1 must license my math.

    2. Re:Lol by Dunbal · · Score: 4, Funny

      Sorry, but I've already patented the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships.

      --
      Seven puppies were harmed during the making of this post.
    3. Re:Lol by Plutonite · · Score: 4, Funny

      Sorry, but I've already patented the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships. And I've copyrighted proverbial hand-waving. Together, we hold the scientific community hostage!
  2. Python is part of the answer by Ckwop · · 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 the compiler. And if you hand compile the compiler, how can you trust the CPU? 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

    1. Re:Python is part of the answer by snarkh · · Score: 5, Interesting

      I have seen from personal experience, how a compiler error (some sort of incorrect optimization) led to a subtle difference in the results of a simple classification task.

      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.

    2. Re:Python is part of the answer by nwbvt · · Score: 5, Informative

      I used Python fairly extensively in my number theory course back in college, it did the job fairly well. Its support for large integers was especially important for that class. And the fact that it was very familiar to me (I was a double major in CS and math), it was very easy for me to crank out an algorithm in it. However, most of the book's examples were in Mathematica, which I ended up getting as well. It was a neat tool, but now that my student license has expired and I don't feel like spending a few grand on another license, everything I wrote in that is useless. However I can still pull out my old Python programs and see what it was I was doing.

      --
      Mathematics is made of 50 percent formulas, 50 percent proofs, and 50 percent imagination.
    3. Re:Python is part of the answer by poopdeville · · Score: 4, 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.

      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.

      --
      After all, I am strangely colored.
    4. Re:Python is part of the answer by El_Isma · · Score: 5, Informative

      Let me recommmend you Maxima http://maxima.sourceforge.net/
      It's a GPL Computer Algebra System and it's in active development. I use it all the time.

    5. Re:Python is part of the answer by Garridan · · Score: 4, Informative

      Disclaimer: I'm a Sage developer.

      Sage has a very good solution to this: Cython. 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.

  3. Propriatary Software by calebt3 · · Score: 4, Funny

    Increasingly, proprietary software and the algorithms used are an essential part of mathematical proofs Like Excel's 65,535-equals-100,000 formula?
  4. Welcome to the world of modern research ... by MacTO · · Score: 4, Interesting

    This problem goes beyond mathematics, and reaches into many of the sciences. Mathematicians and scientists often place undue trust in complex software systems, simply as a matter of getting the work done faster rather than producing higher quality research. Sometimes it is a case of handling large volumes of data, in which case human intelligence and discretion is a bottleneck. Sometimes it is a matter of finding numerical solutions where analytic ones are difficult (if not impossible) to find at present. And, in the case of mathematics, I'm guessing that they are using it as a shortcut for those difficult analytic solutions.

    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.

  5. Re:Not Proven by ciaohound · · Score: 4, Informative

    As a high school math teacher, I am familiar with some of the details of Thomas Hales' proof of Kepler's "Cannonball" Conjecture, concerning the most efficient way to stack spheres. When he first published his proof in 1996, he included the source code for the programs that were used to do the calculations for the thousands of possible sphere configurations. I think most of the code was actually written by his graduate assistant. At first that struck me as cheating -- "... and then this program runs. Q.E.D." -- but then I realized that if anyone else was to verify his results, they would need the programs. There are just too many calculations to perform without software, which is why the conjecture went unproven for four hundred years. But without the source code, it would smack of charlatanism.

    --
    Oh, yeah, it's not easy to pad these out to 120 characters.
  6. Re:speaking of proprietary by Main+Gauche · · 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.

  7. PDF rant. by serviscope_minor · · Score: 4, Insightful

    Why does this keep coming up on ./? What is wrong with PDF? It's undeitable, sure, that's kind of the point. However, the spec is accessible, and there are plenty of open readers, e.g. xpdf and ghostscript.

    Really, what is wrong with PDFs and why should they require a warning?

    By the way, all scientific papers are disseminated by PDF.

    --
    SJW n. One who posts facts.
  8. Not necessarily bad in all cases... by Ardeaem · · Score: 4, Insightful
    There are some programs which can aid proofs that are closed source. This doesn't HAVE to mean that steps of the proof are omitted. Take, for example, Mathematica for the Web. It can spit out a result, including all the steps (try a derivative). Or check out a sample Otter proof. Mathematica is closed source, Otter is open source. However, even if both of these were closed source, all the steps would be laid bare for all to see.

    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.

  9. Ruby could be the answer as well by Gadzinka · · Score: 4, Interesting

    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.
    I could also recommend Ruby for the job. It has all the features you recommend, and more. If you could forget for a moment about the monstrosity that is Rails (I don't know, lobotomy might do the trick), the language in itself is quite beautiful.

    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:

    myhash.each_pair do |key,val|
      puts "#{key}: #{val}"
    end
    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:

    File::open("somefile.txt") do |fh|
      fh.each do |line|
          puts line
      end
    end
    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
    --
    Bastard Operator From 193.219.28.162
  10. Maths...... by Seoulstriker · · Score: 5, Funny

    Look around you. Look around you!

    That's how I learned maths in high school.

    --
    I am defenseless. Use your button. Mod me down with all of your hatred.
  11. Re:Why I don't trust Python by fredrikj · · Score: 4, Informative

    Python calculated exactly what its documentation says it will do: ((1 minus the IEEE-754 double closest to 1/100) rounded to the nearest IEEE-754 double). It's not Python's fault if you don't know the basics of floating-point arithmetic. Mathematicians who use or write numerical software do.

    I recommend reading What Every Computer Scientist Should Know About Floating-Point Arithmetic.

  12. seriously, wtf? by tetromino · · Score: 4, Informative

    The article (which is actually a PDF, thanks for the warning) uses proprietary fonts (LucidaBright). While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided.
    Oh, where to begin...
    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, 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. 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.
  13. Math is "Free", MY LILY-WHITE ASS. by mosel-saar-ruwer · · Score: 5, Insightful
    In mathematics information is passed on free of charge and everything is laid open for checking.'

    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:

    Atiyah & MacDonald, Commutative Algebra; $57.54, http://www.amazon.com/dp/0201407515/

    Eisenbud, Commutative Algebra; $41.30, http://www.amazon.com/dp/0387942696/

    Hartshorne, Algebraic Geometry; $59.10, http://www.amazon.com/dp/0387902449/

    Elements de Geometrie Algebrique; out of print, http://www.amazon.com/dp/3540051139/

    Rudin, Real and Complex Analysis; $142.50, http://www.amazon.com/dp/0070542341/

    Rudin, Functional Analysis; $137.16, http://www.amazon.com/dp/0070542368/

    Dym & McKean, Fourier Series and Integrals; $85.00, http://www.amazon.com/dp/0122264517/

    Sugiura, Unitary Representations and Harmonic Analysis, 2nd Edition; Out of Print, http://www.abebooks.com/servlet/SearchResults?an=Sugiura&tn=Representations[Someone wants $495.00 for the first edition.]

    Or try a few titles which might be a little more familiar to Slashdotters:

    Knuth, The Art of Computer Programming, Volumes 1-3 Boxed Set; $145.00, http://www.amazon.com/dp/0201485419/

    Sedgewick, Algorithms in C++, Parts 1-5; $93.00, http://www.amazon.com/dp/020172684X/

    Cormen, Leiserson, Rivest & Stein, Introduction to Algorithms; $61.88, http://www.amazon.com/dp/0262032937/

    Aho, Ullman & Hopcroft, Data Structures and Algorithms; $53.20, http://www.amazon.com/dp/0201000237/

    McLachlan, Discriminant Analysis and Statistical Pattern Recognition; $90.40, http://www.amazon.com/dp/0471691151/

    Haykin, Neural Networks: A Comprehensive Foundation; $120.12, http://www.amazon.com/dp/0132733501/

    Duda, Hart & Stork, Pattern Classification; $117.00, http://www.amazon.com/dp/0471056693/

    Fukunaga, Introduction to Statistical Pattern Recognition; $74.40, http://www.amazon.com/dp/0122698517/

    Bishop, Neural Networks for Pattern Recognition; $82.81, http://www.amazon.com/dp/0198538642/

    Bishop, Pattern Recognition and Machine Learning; $66.54, http://www.amazon.com/dp/0387310738/

    Higgins, Sampling Theory in Fourier and Signal Analysis: Volume I; $171.60, http://www.amazon.com/dp/0198596995/

    Higgins & Sten, Sampling Theory in Fourier and Signal Analysis: Volume II; $264.00, http://www.amazon.com/dp/0198534965/

    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

    1. Re:Math is "Free", MY LILY-WHITE ASS. by William+Stein · · Score: 5, Insightful
      > In mathematics information is passed on free of charge and everything is laid open for checking.'

      > 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:

      You can read Sylow's Theorem and its proof in Huppert's book in the
      library [...] then you can use Sylow's Theorem for the rest of your
      life free of charge, but for many computer algebra systems license
      fees have to be paid regularly [...]. You press buttons and you get
      answers in the same way as you get the bright pictures from your
      television set but you cannot control how they were made in either
      case.

      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. Not applying
      these rules to computer algebra systems that are made for mathematical
      research [...] means moving in a most undesirable direction.
      Most important: Can we expect somebody to believe a result of a
      program that he is not allowed to see? Moreover: Do we really want to
      charge colleagues in Moldova several years of their salary for a
      computer algebra system?


      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

    2. Re:Math is "Free", MY LILY-WHITE ASS. by Cowculator · · Score: 4, Informative

      There's a growing trend in math (and maybe other disciplines, for all I know) away from non-free publishing.

      Prominent mathematicians have been complaining for years (more links here) about overpriced journals, and entire editorial boards of some journals have resigned in protest (see a list of mass resignations and similar changes here). There are now plenty of entirely free journals in combinatorics, topology, and other fields, and pretty much everything that gets published these days is either available on the author's website or on the arXiv.

      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 site. You complain that EGA is out of print, but basically everything Grothendieck wrote is available for free, and you can even get them along with tons of other old French publications through NUMDAM. (There's even a project to transcribe SGA into LaTeX.) Lots of other books are free to download legally (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.

  14. Re:Libraries are NOT FREE. by grcumb · · Score: 4, Interesting

    If they really want mathematics to be "free", then they can post the LaTeX's & the PDF's of these books on the internet for anyone to download, and they can pay for the server disk space & bandwidth THEMSELVES.

    In the meantime, they can take their marxist hypocrisy and shove it right up their good-for-nothing, lazy, worthless asses.

    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.

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  15. Re:I'm not the hypocrite here. by Lodragandraoidh · · Score: 4, Insightful

    The issue is not whether software companies should make their source code open - the real issue is should mathematicians accept proprietary applications as proof of theorums?

    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.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain