Hi igor,
[...]
The above is a very nice example of a domain for a restricted use,
where only the algebraic relation s^2+c^2=1 is important in the
coefficients of the power series we wish to work with.
I have a very different purpose in mind, and I wonder if anyone can
come up with the right type for it. Say I have a few symbols
[x,y,z,...] and a binary operagor g. I'm only interested in
polynomials or rational functions with, say, integer coefficients in
the formal expressions g(x,x), g(x,y), g(y,z), etc. Is there a type
that restricts to just this sort of expressions?
Your coefficients are integers your variables are "formal expressions"
of the form "g(x,y)" where x and y are from a fixed (finite) set of
variables. That is VERY easy. Assume you have n variables in the set
V={x,y,...,z} then the set of "formal" expressions
W = {g(x,x), g(x,y), ..., g(y, x), g(y,y), ..., g(z,z)}
has exactly n^2 elements.
If you form the rational function field
Q(T_xx, T_xy, ..., T_yx, T_yy, ..., T_zz)
you have exactly what you described above.
BTW, I strongly believe that what you described is not what you want.
Read my previous mail
http://lists.nongnu.org/archive/html/axiom-math/2006-08/msg00029.html
where I describe that / is not available for the rational numbers if you
just consider them to be a ring.
That is the same here. What you get is a field of rational functions,
but you certainly see easily that you cannot express
g(x, g(x,y)) in that ring. But, it is your fault. You did not give a
proper specification. If you want to talk to a computer you have to be
precise. You cannot expect that it guesses, that your specification
might not be the thing you want. Current computer systems are in general
not that advanced (yet).
None of the Polynomial or
similar domains in Axiom can handle this situation because non-symbols
like g(x,y).
Have you ever tried to convert g(x,y) into a symbol?
I cannot do it since you haven't given me the type of g(x,y). But if we
could say for a moment that we consider "g(x,y)" then I just type...
"g(x,y)"::Symbol
at the axiom prompt and get
(2) g(x,y)
Type: Symbol
So don't say, it's not a symbol.
Ralf
_______________________________________________
Axiom-math mailing list
Axiom-math@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-math