We would like to promote the development and use of the Aldor programming language by facilitating the interaction between developers and users of the language.

See: http://algebraist.origo.ethz.ch
and http://axiom-wiki.newsynthesis.org

Programming Blogs - BlogCatalog Blog Directory

Activity


Bill Page posted Hopf Algebra = Group + Monad
Here is an example of some work that I would really like to do in Axiom and/or Aldor Hopf Algebra = Group + Monad http://sigfpe.blogspot.com/2008/08/ho... by sigfpe on the blog: A Neighborhood of Infinity. This work was done using the programming language Haskell which although it does have a strong formal definition is not nearly as "categorical" as Axiom about the way it expressions mathematics. I hope tha...... [read more]

Thu, Aug 7 at 8:21AM (0 comments)

Bill Page posted Project Euler
http://projecteuler.net Bill Wood writes: "Are you familiar with the ProjectEuler site, would Aldor be a good language for solving their usual math-intensive programming problems?" What is Project Euler? Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of ...... [read more]
William Sit: I sampled a few problems there, and I think the intention was to solve the problems mathematically, rather than computationally. With today's computers, any computer language can easily solve a large portion of these problems by "brute force". I don't see why one needs Aldor or Axiom to do such numerical enumerative work. Maybe there are deeper algebraic concepts involved that are not obvious (such as for some diophantine problems) and the algebra libraries can be of help? Do you know if the solutions (or the best ones) are posted? That may help identify which problems are suitable for Aldor/Axiom. William
Bill Page: The statement at the Project Euler website includes: "Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.". So I think the intention is quite clear: mathematical insight mixed with actual computation. Since computers are enormously more powerful now than when this project was first conceived, I suppose you might dispute whether the particular problem set presented actually achieves this goal or not. In any case it seems quite reasonable to assume that at least some of the algebra built-in to Axiom and Aldor libraries is relevant to at least some of these problems. I think it is interesting to take a look at the "statistics" section of the project web site: http://projecteuler.net/index.php?section=statistics 26345 users have submitted 468838 correct solutions ... In solving these problems a computer algebra system (Magma, Maple, Mathematica, Matlab or Pari/GP) was used by 493 users. In all 42 different programming languages were used with C/C++ (3322) being the most popular, followed by Python (2482) and Java (1574). In spite of the difference, I think 493 users of computer algebra systems is actually quite high given the probable number of programmers who are familiar with these systems compared to conventional programming languages. I think it would be great of one day Aldor and Axiom showed up on this list of languages.

Tue, Jun 17 at 1:48PM (2 comments)

At http://lambda-the-ultimate.org/node/2... Quoting from the summary of Aldor at http://aldor.org ... Pervasive support for dependent types allows static checking of dynamic objects. ... On Tue, 2008-03-25 12:36 Jim Apple asked: If I remember correctly, Aldor does not allow Vector(3+4) to be simplified to Vector(7). Is that right? ------ From our discussions during the Aldor Workshop 2007 I believe that Jim i...... [read more]
William Sit: I am not an Aldor developer. However, the question is equally valid in Axiom. Jim's example is meant, I believe, to show static checking limits the power of the language. I can imagine occasions where at code/compile time, where n is not known, there may be need to construct Vector(n+1). I think this is possible in Axiom. Why is this related to a strong definition of equality between types? I would think the reason for not allowing Vector(3+4) is to simplify the parser or memory allocation. It may also be similar to requiring the limits of a loop to be constant? William
Bill Page: In his post: "Should 3+4 = 7?" on http://lambda-the-ultimate.org/node/2737#comment-40941 Stephen Watt explained the rational for why Vector(3+4) is not equivalent to Vector(7) in Aldor (I agree the same applies to Axiom): "The other stance that would allow all types to be treated completely uniformly would be to have all type expressions fully evaluate at compile time. I believe this would lead to worse problems however in the Aldor setting. With the heavy use of mutually recursive and dependent types in the library, we could not have separate compilation with static type checking." So this is not so much a limitation of static type checking as such but rather the way the compiler interacts with the library. The relationship to the definition of equality between types is simply this: that in comparing Vector(3+4) to Vector(7), 3+4 is not evaluated. Syntactically speaking they are not identical and Aldor does not make any attempt to look deeper. So this is a "weaker" sense of equality of types than if the compiler treated '3' and '4' as integers and computed there sum before making the comparison. Treating an type expression "Vector(n+1)" as a constructor with n a parameter is certainly possible.

Tue, Jun 17 at 8:20AM (2 comments)

Bill Page left a note for David Casperson

David,

I would like to recall something that you wrote on Thu, Apr 3, 2008 at 1:33 PM (in part):

I think that a far more fundamental question is "what is the relationship between the object- and the meta-language?" In this
case the meta-language is Aldor in which we express ideas and
algorithms about mathematics of interest.

As category theory is very expressive it is tempting to view all mathematics as applied category theory and say that the objects that we want to talk about: rings, Lie algebras, etc., are categories. That would make category theory the object
language. This doesn't necessarily imply anything about the meta-language, except that it ought to be able to manipulate the things of the object language easily.
...
Translated back into Aldor, the category theoretic constructions
that we want to talk about need not necessarily be the category
theoretic constructs that we want to use to talk about category theory.

------

I think you are absolutely correct to raise this issue. Why indeed should we attempt to design a language like Aldor at all? Afterall, in the final analysis all programming languages are essentially equally expressive - they all are (in principle) Turing-complete. So there is nothing we can do in one that we cannot (in principle) do in another.

I think the answer has to do with the expressiveness of the language. That is, how efficiently can we express the ideas (programs) that we need to express? It seems very likely to me that the most efficient language for this purpose is the metalanguage itself (otherwise it seems likely that if a more expressive language existed, mathematics would quickly adopt it).

So the closer our object language is to our metalanguage, the more "expressive" it is. It seems that the only thing that might prevent us from achieving this optimum is that the meta-language is not in general be entirely computable (or else it is in some essential respect inconsistent).

But category theory itself appears to have some kind of universal applicability. So I wonder if you would agree that in spite of having "translated back into Aldor" as you said above, that we can (and should) remain in category in so much as the formal semantics of Aldor can be specified in categorical terms?

I wonder however exactly what cateogory theory is most appropriate to describe such a programming language? One possible answer I think is topos theory - or by another name: algebraic set theory. Choosing this as the basis for the underlying semantics of the Aldor language would have numerous implications.

Bill.


Mon, Jun 16 at 7:50PM

Bill Page posted blog on Axiom
Alasdair McAndrew has an interesting new blog where he currently presenting an introduction to introduction to Axiom: http://amca01.wordpress.com/2008/05/2... He writes: "Your comments would be most welcome."
William Sit: Thanks. I was more interested in the tesseract, and I left some comments there. http://amca01.wordpress.com/2008/05/15/a-really-beautiful-animation/ Also the wordpress.com site seems notorious for poor security: http://en.wikipedia.org/wiki/WordPress#Vulnerabilities For example (second item with Google search on "silent h article Safire" (no quotes). The third last item from this second link: http://209.85.215.104/search?q=cache:HvGMLkQBlasJ:es.wordpress.com/tag/william-safire/+silent+h+article+Safire&hl=en&ct=clnk&cd=2&gl=us&client=firefox-a click on "more" of that item. The page says, in a big header, "Yes, We Can" William

Sun, Jun 15 at 10:44PM (1 comment)

Bill Page posted Rig
In http://golem.ph.utexas.edu/category/2... John Baez writes: A rig is a ‘ring without negatives’ — just like a ring but possibly lacking additive inverses. The classic example is the natural numbers, ?. This is, in fact, the free rig on one generator. Rigs are neglected in ordinary algebra texts, a deficiency that someday must be fixed. Why? First, a lot of stuff that’s true about rings is st...... [read more]
Bertfried Fauser: Hi Bill, I am not sure if a rig is really a _generalization_ of a ring. Just leaving out the additive group, turning it into a semigroup is teh inverse process which Grothendieck did to get from rig to ring, and he had good reason to do so. Since thsi Grothendieck construction works for abelian semigroups always, its almost for free to get a ring out of a rig. I think the better way to look at this structure is using Natural Number Objects (NNO) in a categoical setting. If in a category you have a natural number object, then you can iterate and get multiplication out of addition. This way you will (since addition is an abelian semigroup here) naturally get a 'rig', but with much more mathematical power behind it. A good source for natural numer objects and iteration is the book by Lawvere, Rosenbrugh, Sets for Mathematics, and of course Robert Goldblatt, Topi, or the original articles (Freyd, Yetter, and others) Are you intersted in rig ? if so why? Ciao BF.
Bill Page: My main motivation for looking at this is a possible re-design of the Axiom library. Many times when I think about the mathematical taxonomy implemented there, I worry that it is too ad hoc. In a computer algebra system it seems to make sense to start with somewhat more mathematical structure than might be typical in pure mathematics. In Axiom for example we get positive integers as a subdomain of the Integers. And Integers come from God (well, actually Lisp ... :-). I agree with your comment about the desirability of putting all this in a categorical setting. I rather liked Baez's description of the NNO as the "free rig on one generator", but I do not know how useful this is in a computer algebra system. Although we certainly do want to do this at a higher level, it seems inconvenient to try to build everything in such a pure manner. In Axiom we already have: (1) -> )sh AbelianSemiGroup AbelianSemiGroup is a category constructor Abbreviation for AbelianSemiGroup is ABELSG -------------------- Operations ---------------------------- ?*? : (PositiveInteger,%) -> % ?+? : (%,%) -> % ?=? : (%,%) -> Boolean ?~=? : (%,%) -> Boolean ------- AbelianSemiGroup(): Category == SetCategory with --operations "+": (%,%) -> % ++ x+y computes the sum of x and y. "*": (PositiveInteger,%) -> % ++ n*x computes the left-multiplication of x by the positive integer n. ++ This is equivalent to adding x to itself n times. add import RepeatedDoubling(%) if not (% has Ring) then n:PositiveInteger * x:% == double(n,x) ------- Perhaps PositiveInteger is (or should be) Axiom's NNO? Is this "repeated doubling" that kind of thing to which you are referring? Of course in the Axiom programming language (SPAD) we do already have iteration (and much more!). I also think your reference to Topi is right on. Maybe what we need is some formal mathematical structure (such as topos theory) that we can relate quite directly and formally to Axiom at the level of SPAD. Then when we talk (formally) about introducing seemingly simpler structures into the Axiom library (such as rig and ring), we can do so in reference to something like topi. Then perhaps, it would not seem so embarrassing to see PositiveInteger in AbelianSemiGroup... Regards, Bill Page.

Sun, Jun 15 at 10:08PM (2 comments)

Bill Wood left a note for Bill Page

Sorry not to get back to you sooner; it's been a busy month. My "strategy" for finding out what Aldor is good for is to ask you guys! For example, if you are familiar with the ProjectEuler site, would Aldor be a good language for solving their usual math-intensive programming problems? I've used lisp for most of the problems I've worked, along with the ECLiPSe Prolog+Constraint Logic Programming system and Python for a couple of problems. I gather from recent postings here that some view Aldor as a language to program abstract algebra computations in. What about semi-numeric computation, such as solving congruences or computing with continued fractions? I saw your reference to category theory; has anyone mentioned using Aldor to support some of the reasoning about programs that Haskellers talk about?

Well there's a start. Thanks for giving me the opportunity to ask questions.

-- Bill Wood


Sun, Apr 13 at 4:26PM

Bill Page left a note for Oziewicz Zbigniew

Zbigniew, I am very happy now there are at least two people here who claim to know something about category theory! :-) We might wish that Aldor (and computer algebra systems in general) had more direct support for doing categorical computations by at least there is already the beginning of this subject by Saul Youssef:

http://axiom-wiki.newsynthesis.org/Sa...

Concerning Frobenius algebra in relativity, I think we must consider first non-commutative algebras. I am not so sure about the Aldor libraries in this regard, but at least Axiom has non-commutative polynomials. There are some simple example calculations here:

http://axiom-wiki.newsynthesis.org/Sa...

Cheers,
Bill Page.


Sat, Mar 29 at 8:46PM

We are now indexed in Technorati Profile.

Fri, Mar 28 at 12:52PM (0 comments)

Bill Page left a note for Bill Wood

Hello Bill,

Welcome to the Algebraist!

My main motivation for posting this message is the goal of "finding out what Aldor is good for" that you listed as one of your projects. I think that is a very good question. :-) When you have a moment it would be great if you could jot down some notes here (write a blog entry?) about how you intend to find an answer to that question... seriously. It seems to me that developers often do not spend enough time (re-)thinking basic questions like this, so sometimes even to us it seems difficult to answer the question. And it is not so easy to suggest to someone new what path they should follow to find out more about Aldor.

Regards,
Bill Page.


Sat, Mar 22 at 3:08PM

---------- Forwarded message ---------- From: Bill Page Date: Fri, Mar 21, 2008 at 5:07 PM Subject: Re: What Axiom can do for Aldor To: William Sit William, With your permission, I would also like to post this entire email to the blog on Algebraist. Would that be ok? Of course since this is also directly related to Aldor it would certainly be ok also for you to reply via the aldor email list (the old fashioned way :-...... [read more]

Sat, Mar 22 at 7:38AM (0 comments)

Bill Page left a note for William Sit

Hello William,

Thanks for joining in! :-)

One thing that I would really like to discuss here is the relationship between Axiom and Aldor. In particular: What can Axiom do for Aldor? As opposed to the perhaps more obvious question of: What Aldor can offer Axiom users...

What do you think?

[Repeated for the record ... ]


Fri, Mar 21 at 12:58PM

Bill Page posted Please join the network!
I hope you will consider becoming part of an active community to support the development of the Aldor programming language.

Thu, Mar 20 at 9:20PM (0 comments)