axiom-mail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-mail] Abstract Vector Algebra


From: Gabriel Dos Reis
Subject: Re: [Axiom-mail] Abstract Vector Algebra
Date: Sat, 6 Apr 2013 12:01:52 -0500

On Sat, Apr 6, 2013 at 1:21 AM, u1204 <address@hidden> wrote:
>>> This would be a first example of a special symbolic domain that would
>>> create "arbitrary integers" rather than actual integers.
>>>
>>> This is my approach to the Maple "assume" facility. I want to say that
>>> the uderlying domain is an "indeterminate integer" rather than
>>> "assume x is an integer". This idea seems more in-line with Axiom's
>>> approach to computational mathematics.
>>
>>OpenAxiom's syntax is " assume x : T" where T can be any domain.
>
> The idea of an "assume" facility seems antithetical to the design
> of Axiom.

I do not know what that mean.  Could you clarify?

> It feels more natural to me to create categories and
> domains which remain symbolic (e.g. symbolic matrices). If necessary
> they could be coerced to definite values at the appropriate time.

OpenAxiom uses domain for schematic expressions, e.g. expressions
with "indefinite" variables.  You can't coerce an indefinite variable
into define values.  That would creating values out of void.
The best you can do is to give values to indefinites.

>
> I want
>
>   t2:POLY(IndefinteInteger(x)) := x^2+2*x+3
>   t3:POLY(IndefinitePositiveInteger(x)) := x^2+2*x+3
>   t4:POLY(Complex(IndefiniteInteger(x))) := x^2+2*x+3
>
> and I can choose the appropriate manipulation algorithms based on
> the given types following the same rules we now use.

I would find it poor design to have to duplicate domains that way.
Clearly there must be a notion of natural transformation (in the
categorical sense) that allows lifting of operations to the symbolic/indefinite
level -- see the past work with did on OpenAxiom; I seem to remember
I had a long discussion with Bill Page (or Ralf?) on this topic.

Rather, I would use the notion of schematic expressions -- expressions
from well defined arithmetic domains with indefinite variables.  These
expressions follow well typed and well defined arithmetic; they can be evaluated
to definite values if their schematic variables are given values.

>
> I'd like to be able to say something like:
>
>   A:SymbolicMatrix := [[a b],[c,d]]
>   B:SymbolicMatrix := [[e,f],[g,h]]
>   t1 := (A*B)^T
>                   B^T A^T
>   Type:                       Expression(SymbolicMatrix)
>
> and coerce B^T to a matrix domain if I need to see the entries.

In fact, if you do it properly you would notice that you are just
fixing some bugs in the Expression domain and you do not need
Symbolic anything :-)   At least, that was my final conclusion when
I worked on this for many years.

>
> Or I can subtype it to SymbolicMatrix(DoubleFloat), do the
> manipulations symbolically and then coerce the final result
> to Matrix(DoubleFloat).
>
> Done this way, the indefinites (or symbolics) fit naturally into
> the mathematical structure of Axiom. There is probably even some
> category theory support for lifting operations (arrows) to
> symbolic form.

Yes, but I don't see where that contradicts the notion of "assume".

>
> Tim Daly
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]