Re: Proving Axiom Correct
Martin Baker <[email protected]> Mon, 2 Apr 2018 21:34:45 +0100
| Newsgroups | gmane.comp.mathematics.axiom.devel |
|---|---|
| Message-ID | <[email protected]> |
Tim, I've been experimenting with a language called 'Idris'. I've been playing around with writing some of the Axiom SPAD library code in Idris. My code so far is here: https://github.com/martinbaker/Idris-dev/tree/algebra/libs/algebra Nothing usable yet, I'm just experimenting with whats involved. So in the same way that Coq is a proof assistant which can generate some code by Curry-Howard then Idris reverses that and starts with the algebra code and allows that to be linked to proofs (which are types). Idris is based on Haskell but with 2 very important differences which make it very compatible with SPAD: * It has full dependent types built into the language from the start. (not a plugin like Haskell) * It is eager, not lazy, by default. Of course the language is pure functional so translating imperative code is hard but its an approach that interests me, I would be interested to hear what you think. Martin On 02/04/18 18:37, Tim Daly wrote: > I've been working on proving Axiom correct for years now. > > I've spent the last 18 months learning proof systems and > deep-diving into the theory (thanks, in part, to Carnegie > Mellon's Computer Science Department giving me the > "Visiting Scholar" appointment and faculty access). > > I've "discovered" that there are two large, independent, > and largely parallel efforts in computational mathematics. > > There is the computer algebra field, where we spend most > of our time and effort. The concentration is on finding new > algorithms. This is interesting and quite satisfying. It appears > to be "progress". There is a large body of literature. > > There is the program proof field, where a large number of > people spend most of their time and effort. The concentration > is on building systems to prove programs correct. On some > occasions a computer algebra algorithm, like Groebner basis, > is proven. There is a large body of literature. > > Surprisingly though, there is little overlap. It is very rare to > find a paper that cites both Jenks (CA) and Nipkow (PP). > > In fact, without a great deal of background, the papers in the > program proof field are unreadable, consisting mostly of > "judgements" written in greek letters. Or, coming from the > proof field, finding the computer algebra "algorithms" lacking > anything that resembles rigor, not to mention explanations. > > Both fields are very large, very well developed, and have been > growing since the latter half of the last century. > > It is important to bridge the gap between these two field. > It is unlikely that anyone will invest the millions of dollars and > thousands of hours necessary to "rebuild" an Axiom-sized > computer algebra system starting with a proof system. It is > also unlikely that anyone will succeed in proving most of > the existing computer algebra systems because of their > ad hoc, "well-it-mostly-works", method of development. > > Axiom has the unique characteristic of being reasonably well > structured mathematically. It has many of the characteristics > found in proof-system idea like typeclasses (aka Axiom's > "Category-and-Domain" structures. What Axiom lacks is the > propositions from typeclass-like systems. > > So the path forward to unite these fields is to develop the > propositional structure of Axiom and used these propositions > to prove the existing algorithms. Uniting these fields will bring > a large body of theory to computer algebra and a large body > of algorithms to a grounded body of logic. > > Tim > > > > > > _______________________________________________ > Axiom-developer mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/axiom-developer >