|
|
last edited 17 years ago by Bill Page |
1 | ||
Editor: Bill Page
Time: 2007/11/13 18:40:25 GMT-8 |
||
Note: transferred from axiom-developer.org |
changed: - Here are some notes I took when I tried to allow expressions ove finite fields. when making 'ZMOD' an 'OrderedSet' in the obvious way, I can have 'EXPR ZMOD 5' and 'EXPR PF 5'. However, not all things work that should:: a:EXPR PF 5 := 2 a < 3\$EXPR PF 5 gives 'false', as does '3$EXPR PF 5 < a' The reason for this is that in 'polycat.spad/POLYCAT', the following definition is used. It should be 'OrderedStructure', maybe:: if R has OrderedSet then p:% < q:% == (dp:= degree p) < (dq := degree q) => (leadingCoefficient q) > 0 dq < dp => (leadingCoefficient p) < 0 -- leadingCoefficient(p - q) < 0 -- the last test works only if < is compatible with - -- the following works, but is slower, of course leadingCoefficient(p) < leadingCoefficient(q) Furthermore, saying:: a:EXPR PF 3 := 2 eval(a^x,x=5) gives '2^2' unevaluated. Here we have two problems at once: - it should be '2^5=32=2' rather than '2^2=4=1' (that is, it treats 'x' as an element of 'EXPR PF 3' rather than an integer. Question: is 'a^(b::EXPR PF 3)' meaningful? Rather not, since the power laws do not hold: '2=2*1=2^1*2^2=2^3=2^0=1 (3)' What is required so that 'a^b' is well defined? - it should evaluate the expression. This happens in 'COMBF', since... Hmmm, I didn't take notes here anymore. I probably didn't find out.
Here are some notes I took when I tried to allow expressions ove finite fields.
when making ZMOD
an OrderedSet
in the obvious way, I can have EXPR ZMOD 5
and EXPR PF 5
.
However, not all things work that should:
a:EXPR PF 5 := 2 a < 3$EXPR PF 5
gives false
, as does 3$EXPR PF 5 < a
The reason for this is that in polycat.spad/POLYCAT
, the following definition is
used. It should be OrderedStructure
, maybe:
if R has OrderedSet then p:% < q:% == (dp:= degree p) < (dq := degree q) => (leadingCoefficient q) > 0 dq < dp => (leadingCoefficient p) < 0 -- leadingCoefficient(p - q) < 0 -- the last test works only if < is compatible with - -- the following works, but is slower, of course leadingCoefficient(p) < leadingCoefficient(q)
Furthermore, saying:
a:EXPR PF 3 := 2 eval(a^x,x=5)
gives 2^2
unevaluated.
Here we have two problems at once:
2^5=32=2
rather than 2^2=4=1
(that is, it treats x
as an element
of EXPR PF 3
rather than an integer. Question: is a^(b::EXPR PF 3)
meaningful? Rather not, since the power laws do
not hold: 2=2*1=2^1*2^2=2^3=2^0=1 (3)
What is required so that a^b
is well defined?
This happens in COMBF
, since... Hmmm, I didn't take notes here anymore. I probably didn't find out.