"Bill Page" <[EMAIL PROTECTED]> writes:

> Since DMP is the highest level domain constructor, I would expect it to
> interpret 'x' as being in the polynomial domain first and only if forced
> treat is as being in the underlying coefficient domain.

I believe that this is not always the case, although I don't have an example at
hand.

However, I would like to restate what William Sit and I were able to agree
upon, when we discussed these matters:

  Axiom is able to deal (more or less) properly with variables bearing the same
  name but having different meanings.

We did not agree on whether we should allow this to happen or not...

In other words, consider the following example:

>   b := monomial(x,[0,0]::DirectProduct(2,NNI))$P
> 
> Can you explain this result?
> 
> (23) -> degree b
> 
>    (23)  [0,0]
>    Type: DirectProduct(2,NonNegativeInteger)
> 
> (24) -> b+x
> 
>    (24)  x + x
>     Type: DistributedMultivariatePolynomial([x,y],Expression Integer)

Here, we have two *different* "variables", the only happen to bear the same
name.

What I consider very problematic is, that

 (b+x)::EXPR INT

gives 2x. I believe that this can lead to very "surprising" results.

In any case, I think it is better not to use such types. Currently, this is not
always possible, it would be necessary to introduce a parametrized Expression
domain, that takes variables as parameters -- this is on the WishList, by the
way. I don't think it would be too much work.

Martin



_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to