Here is a strange compilation:

--------------------------------------------------- t.spad ------- 
INT  ==> Integer
NNI  ==> NonNegativeInteger
GDMP ==> GeneralDistributedMultivariatePolynomial
)abbrev package FOO Foo
Foo() : with        makeGDMP : List Symbol -> Type
 == add
       makeGDMP(vars : List Symbol) : Type ==

               ppo := DirectProduct(# vars, NNI)
               GDMP(vars, INT, ppo)
------------------------------------------------------------------
-->

...
$x:= ppo
$m:= (DirectProductCategory (# vars) (NonNegativeInteger))
$f:=
((((|ppo| #) (|vars| # #) (|#| #) (< #) ...)))
   >> Apparent user error:
   Cannot coerce ppo 
      of mode (DirectProductCategory (call LENGTH vars) (NonNegativeInteger)) 
      to mode (DirectProductCategory (# vars) (NonNegativeInteger)) 
----------------------

(1) I discover that appending   :: DirectProductCategory(# vars, NNI)
    to the line of              "ppo := "

makes it compiled (and hope that it will work correctly).

(2) Alternatively, inserting the lines

    makeDP(vars : List Symbol) : OrderedSet ==
                                         DirectProduct(# vars, NNI)

    after  " == add"   in the initial program also makes it compiled!

The necessity of (1) looks a bit strange: why the compiler does not 
find that  ppo := DirectProduct(# vars, NNI)   belongs to the needed 
category?
And the effect of (2) looks totally enigmatic.

Regards,

------
Sergei
[email protected]

 

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to