I did the following experiment.

In FriCAS, I get an error when I uncomment the line containing the Rep in
SPECIES.  This does not happen in Open-Axiom.  Otherwise, it compiles and I can
do

(1) -> S1 := 1$Species INT

   (1)  "CharacteristicSpecies(1)"
                                                       Type: Species(Integer)
(2) -> S2 := S1::SpeciesCategory INT
 
   You cannot use SpeciesCategory(Integer) or any other category in a 
      target, coercion, or package-call context.
(2) -> S2 := co(S1)

   (2)  CharacteristicSpecies(Integer,1)
                                               Type: SpeciesCategory(Integer)
(3) -> structures([1])$S2

   (3)  [{1}]
                                 Type: List(CharacteristicSpecies(Integer,1))
(4) -> structures([1,2,3])$S2

   (4)  []
                                 Type: List(CharacteristicSpecies(Integer,1))

However, the error message in (2) occurs in both Open-Axiom and FriCAS.

Would be great if this could be fixed.  And even better, if we could have a fix
for the Rep problem in FriCAS, too...

Gaby, do you think you could help us?

Martin

)abb category SPECCAT SpeciesCategory
SpeciesCategory(L: SetCategory): Category == SetCategory with
        structures: Set L -> List %
        name: () -> String

)abb domain CHARSPEC CharacteristicSpecies
CharacteristicSpecies(L: SetCategory, n: Integer): SpeciesCategory L 
    == add
        Rep := Set L

        coerce(t: %): OutputForm == coerce(t)$Rep

        structures s == if #s = n then [s] else []

        name () == concat ["CharacteristicSpecies(", string n, ")"]

)abb domain SPECIES Species
Species(L: SetCategory): Ring with
        coerce: % -> SpeciesCategory L
  == add
--    Rep := SpeciesCategory L

    coerce(s: %): OutputForm == 
        S := s pretend SpeciesCategory(L)
        name()$S::OutputForm

    coerce(s: %): SpeciesCategory L == s pretend SpeciesCategory(L)

    0 == CharacteristicSpecies(L, 0) pretend Rep
    1 == CharacteristicSpecies(L, 1) pretend Rep


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to