[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] Re: Aldor and Axiom
From: |
Martin Rubey |
Subject: |
Re: [Axiom-developer] Re: Aldor and Axiom |
Date: |
15 Feb 2006 14:22:04 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Ralf Hemmecke <address@hidden> writes:
> > Yes. But what exactly is mystical to you? Everything starts in catdef.spad,
> > and in fact the code is very easy to read, I find.
>
> Let me quote the first few lines... (documentation stripped)
>
> AbelianGroup(): Category == CancellationAbelianMonoid with
> "-": % -> %
> "-": (%,%) -> %
> "*": (Integer,%) -> %
> add
> (x:% - y:%):% == x+(-y)
> subtractIfCan(x:%,y:%):Union(%,"failed")==(x-y)::Union(%,"failed")
> n:NonNegativeInteger * x:% == (n::Integer) * x
> import RepeatedDoubling(%)
> if not (% has Ring) then
> n:Integer * x:% ==
> zero? n => 0
> n>0 => double(n pretend PositiveInteger,x)
> double((-n) pretend PositiveInteger,-x)
>
> Since there is no definition of "Integer" in that file, the compiler must
> know about that thing or it must look into integer.spad to find what Integer
> stands for. Yes, yes, I know, here the whole business of circular
> dependencies begins. I guess, finally, Integer will be an abelian group
> itself. ;-)
But as far as I know, for Aldor this situation was abstracted and there is now
a keyword for dealing with it, I believe it is "extend".
> Let us suppose the following scenario. I remove any file from src/algebra/
> and any corresponding Makefile entry. Then I start compiling Axiom. Would I
> end up with an Axiom framework that has no mathematical knowledge.
>
> Probably not.
Well, I do think so, at least roughly. In fact, as far as I know, debugsys does
something similar.
Furthermore, Tim Daly analysed the circular dependencies to know in which
"layer" any given domain is. You can see this in the file lattice.pamphlet on
MathAction or in src/algebre/Makefile.
> The interpreter needs something like OutputForm in order to print something
> reasonable on the screen. Is this type builtin?
No, it is defined in outform.spad. And, as long as you don't have a coercion
function to OUTFORM, you don't need it anyway :-)
Without OUTFORM, you can print using the Lisp function "print".
Martin
- [Axiom-developer] Re: Aldor and Axiom, (continued)
- [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/14
- [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/14
- [Axiom-developer] Re: Aldor and Axiom, C Y, 2006/02/14
- [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/14
- [Axiom-developer] Re: Aldor and Axiom, C Y, 2006/02/14
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/14
- Re: [Axiom-developer] Re: Aldor and Axiom, C Y, 2006/02/14
- Re: [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, Martin Rubey, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom,
Martin Rubey <=
- Re: [Axiom-developer] Re: Aldor and Axiom, Ralf Hemmecke, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, Martin Rubey, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] Re: Aldor and Axiom, root, 2006/02/15
- Re: [Axiom-developer] RE: Aldor and Axiom, Jay Belanger, 2006/02/15
- Re: [Axiom-developer] RE: Aldor and Axiom, Martin Rubey, 2006/02/14
- [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Ralf Hemmecke, 2006/02/14
- Re: [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Martin Rubey, 2006/02/15
- Re: [Axiom-developer] The symbol 4 (was Re: Aldor and Axiom), Ralf Hemmecke, 2006/02/15