[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] aldor stream oddities
From: |
Ralf Hemmecke |
Subject: |
Re: [Axiom-developer] aldor stream oddities |
Date: |
Mon, 13 Aug 2007 16:19:46 +0200 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20070728) |
On 08/11/2007 08:55 PM, Franz Lehner wrote:
Now, in Axiom we should have a problem with saying that S is an
additive group.
That's true. All axioms are satisfied, except uniqueness of inverses and
the neutral element. What should it be? A FuzzyAbelianGroup?
Well, the problem is that we don't deal with classical mathematics, we
deal with constructive mathematics. So let's assume that
T := UnivariateTaylorSeries(Integer,x,0)
is a Ring. Then I can form F := Fraction T.
Then F is a field. And I can form polynomials that take F as a
coefficient domain. Now I can take several such polynomials in Axiom and
compute a Gröbner basis for them. You will be surprised that this is not
what you would expect. Testing whether a coefficient is zero is used
quite a lot in Buchberger's algorithm. The algorithm is implemented in a
generic form and works over any coefficient field. Unfortunately, the
algorithm cannot tell you that it computed the wrong result since you
promised to give a field as input but in fact, gave something for which
(4) -> zero?(t-t)
(4) false
Type: Boolean
holds. So how do you ensure correctness of results then? Would you like
to put all the burden onto the user?
We must be very careful here. And I only addressed that problem. The
library should be very carefully designed. At the moment it contains a
lot of flaws.
The category Ring is reserved for structures with complete equality
testing.
Is this the plan for Axiom too?
I don't know. I am not the only person who decides this. But I would
vote for yes.
What will happen to ExpressionField? I recall there are undecidable
problems in the latter as well.
All I say, is that the library must be rethought.
Here is a proposal (in SPAD) for a recursive stream generator which
looks at all previous elements, not just the last one. It could probably
be done with the existing generate(S->S,S), but this one looks more
natural.
You should take a look at the definition of Stream in LibAldor or also at
http://www.risc.uni-linz.ac.at/people/hemmecke/AldorCombinat/combinatse12.html#x58-9900012
Ralf