Test species in axiom/FriCAS?.
The species project is written in Aldor.  Thus we need to load the libraries explicitly:
Want loading of libraries with no output.
axiom
)cd ~/combinat/src
   The current FriCAS default directory is /var/lib/zope/combinat/src
 
axiom
)re ../lib/combinat.input
 
axiom
)lib cscombinatversion.ao
 
axiom
Reading /var/lib/zope/combinat/src/cscombinatversion.asy
   LibraryInformationCombinat is now explicitly exposed in frame 
      initial 
   LibraryInformationCombinat will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/cscombinatversion 
axiom
Reading /var/lib/zope/combinat/src/csaxcompat.asy
   ACCharacter is now explicitly exposed in frame initial 
   ACCharacter will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACFraction is now explicitly exposed in frame initial 
   ACFraction will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACIntegerTools is now explicitly exposed in frame initial 
   ACIntegerTools will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACInteger is now explicitly exposed in frame initial 
   ACInteger will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACList is now explicitly exposed in frame initial 
   ACList will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACMachineInteger is now explicitly exposed in frame initial 
   ACMachineInteger will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACPrimitiveArray is now explicitly exposed in frame initial 
   ACPrimitiveArray will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACString is now explicitly exposed in frame initial 
   ACString will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACSymbol is now explicitly exposed in frame initial 
   ACSymbol will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   Array is now explicitly exposed in frame initial 
   Array will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   ACLabelType is now explicitly exposed in frame initial 
   ACLabelType will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   OutputType is now explicitly exposed in frame initial 
   OutputType will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat
   TotallyOrderedType is now explicitly exposed in frame initial 
   TotallyOrderedType will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat 
axiom
Reading /var/lib/zope/combinat/src/csaxcompat2.asy
   ExpressionTreeExpt is now explicitly exposed in frame initial 
   ExpressionTreeExpt will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTreeLeaf is now explicitly exposed in frame initial 
   ExpressionTreeLeaf will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTreePlus is now explicitly exposed in frame initial 
   ExpressionTreePlus will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTreePrefix is now explicitly exposed in frame initial 
   ExpressionTreePrefix will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTreeTimes is now explicitly exposed in frame initial 
   ExpressionTreeTimes will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTree is now explicitly exposed in frame initial 
   ExpressionTree will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   GeneratorException is now explicitly exposed in frame initial 
   GeneratorException will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   Generator is now explicitly exposed in frame initial 
   Generator will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionTreeOperator is now explicitly exposed in frame initial 
   ExpressionTreeOperator will be automatically loaded when needed from
      /var/lib/zope/combinat/src/csaxcompat2
   Partial is now explicitly exposed in frame initial 
   Partial will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   ExpressionType is now explicitly exposed in frame initial 
   ExpressionType will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csaxcompat2
   GeneratorExceptionType is now explicitly exposed in frame initial 
   GeneratorExceptionType will be automatically loaded when needed from
      /var/lib/zope/combinat/src/csaxcompat2
Won't parse: (Type)->NIL 
axiom
Reading /var/lib/zope/combinat/src/csistruc.asy
   SparseAdditiveArray is now explicitly exposed in frame initial 
   SparseAdditiveArray will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csistruc
   SparseFiniteMonoidRing is now explicitly exposed in frame initial 
   SparseFiniteMonoidRing will be automatically loaded when needed from
      /var/lib/zope/combinat/src/csistruc
   IndexedFreeAdditiveCombinationType is now explicitly exposed in 
      frame initial 
   IndexedFreeAdditiveCombinationType will be automatically loaded when
      needed from /var/lib/zope/combinat/src/csistruc
   IndexedFreeArithmeticType is now explicitly exposed in frame initial
   IndexedFreeArithmeticType will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/csistruc 
axiom
Reading /var/lib/zope/combinat/src/csdistpoly.asy
   SparseDistributedPolynomial is now explicitly exposed in frame 
      initial 
   SparseDistributedPolynomial will be automatically loaded when needed
      from /var/lib/zope/combinat/src/csdistpoly 
axiom
Reading /var/lib/zope/combinat/src/csstream.asy
   DataStream is now explicitly exposed in frame initial 
   DataStream will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csstream 
axiom
Reading /var/lib/zope/combinat/src/csseries.asy
   FormalPowerSeries is now explicitly exposed in frame initial 
   FormalPowerSeries will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csseries
   FormalPowerSeriesCategory is now explicitly exposed in frame initial
   FormalPowerSeriesCategory will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/csseries
   SeriesOrder is now explicitly exposed in frame initial 
   SeriesOrder will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csseries 
axiom
Reading /var/lib/zope/combinat/src/csidxpp.asy
   SparseIndexedPowerProduct is now explicitly exposed in frame initial
   SparseIndexedPowerProduct will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/csidxpp 
axiom
Reading /var/lib/zope/combinat/src/cssiprimes.asy
   SmallIntegerPrimes is now explicitly exposed in frame initial 
   SmallIntegerPrimes will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/cssiprimes 
axiom
Reading /var/lib/zope/combinat/src/cssitools.asy
   SmallIntegerTools is now explicitly exposed in frame initial 
   SmallIntegerTools will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/cssitools 
axiom
Reading /var/lib/zope/combinat/src/csgseries.asy
   CycleIndexSeries is now explicitly exposed in frame initial 
   CycleIndexSeries will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csgseries
   CycleIndexVariable is now explicitly exposed in frame initial 
   CycleIndexVariable will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csgseries
   ExponentialGeneratingSeries is now explicitly exposed in frame 
      initial 
   ExponentialGeneratingSeries will be automatically loaded when needed
      from /var/lib/zope/combinat/src/csgseries
   OrdinaryGeneratingSeries is now explicitly exposed in frame initial 
   OrdinaryGeneratingSeries will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/csgseries 
axiom
Reading /var/lib/zope/combinat/src/csmultinom.asy
   MultinomialTools is now explicitly exposed in frame initial 
   MultinomialTools will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csmultinom 
axiom
Reading /var/lib/zope/combinat/src/csspexpr.asy
   SpeciesExpression is now explicitly exposed in frame initial 
   SpeciesExpression will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspexpr 
axiom
Reading /var/lib/zope/combinat/src/csspecies.asy
   ACIsomorphismType is now explicitly exposed in frame initial 
   ACIsomorphismType will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Subset is now explicitly exposed in frame initial 
   Subset will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Times is now explicitly exposed in frame initial 
   Times will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Augment is now explicitly exposed in frame initial 
   Augment will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   CharacteristicSpecies is now explicitly exposed in frame initial 
   CharacteristicSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Combination is now explicitly exposed in frame initial 
   Combination will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Compose is now explicitly exposed in frame initial 
   Compose will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Derivative is now explicitly exposed in frame initial 
   Derivative will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   DropEmpty is now explicitly exposed in frame initial 
   DropEmpty will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   EmptySetSpecies is now explicitly exposed in frame initial 
   EmptySetSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   FunctorialCompose is now explicitly exposed in frame initial 
   FunctorialCompose will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiCompose is now explicitly exposed in frame initial 
   MultiCompose will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiDerivative is now explicitly exposed in frame initial 
   MultiDerivative will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiPlus is now explicitly exposed in frame initial 
   MultiPlus will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiSetCombination is now explicitly exposed in frame initial 
   MultiSetCombination will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiSetPartition is now explicitly exposed in frame initial 
   MultiSetPartition will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiSet is now explicitly exposed in frame initial 
   MultiSet will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiSubset is now explicitly exposed in frame initial 
   MultiSubset will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   MultiTimes is now explicitly exposed in frame initial 
   MultiTimes will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Multiple is now explicitly exposed in frame initial 
   Multiple will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   CombinatorialSpecies is now explicitly exposed in frame initial 
   CombinatorialSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   NonEmpty is now explicitly exposed in frame initial 
   NonEmpty will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Plus is now explicitly exposed in frame initial 
   Plus will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   RestrictedSpecies is now explicitly exposed in frame initial 
   RestrictedSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   SetSpecies is now explicitly exposed in frame initial 
   SetSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   IsomorphismTypeCategory is now explicitly exposed in frame initial 
   IsomorphismTypeCategory will be automatically loaded when needed 
      from /var/lib/zope/combinat/src/csspecies
   SingletonSpecies is now explicitly exposed in frame initial 
   SingletonSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies
   Partition is now explicitly exposed in frame initial 
   Partition will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csspecies 
axiom
Reading /var/lib/zope/combinat/src/csexamples.asy
   ACBinaryTree is now explicitly exposed in frame initial 
   ACBinaryTree will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csexamples
   Combination is already explicitly exposed in frame initial 
   Combination will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csexamples
   Generator is already explicitly exposed in frame initial 
   Generator will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csexamples
   SetSpecies is already explicitly exposed in frame initial 
   SetSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csexamples
Won't parse: (Type)->NIL
Won't parse: (ACLabelType)->NIL 
axiom
Reading /var/lib/zope/combinat/src/csinterp.asy
   Interpret is now explicitly exposed in frame initial 
   Interpret will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csinterp
   InterpretingTools is now explicitly exposed in frame initial 
   InterpretingTools will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csinterp
   LabelSpecies is now explicitly exposed in frame initial 
   LabelSpecies will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csinterp 
axiom
Reading /var/lib/zope/combinat/src/csparse.asy
   MyParser is now explicitly exposed in frame initial 
   MyParser will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/csparse 
Let's define a binary tree.
aldor
#includeDir "/var/lib/zope/combinat/include"
#libraryDir "/var/lib/zope/combinat/lib"
#include "combinat"
macro {
        E == EmptySetSpecies;
        X == SingletonSpecies;
        + == Plus;
        * == Times;
}
A(L: LabelType): CombinatorialSpecies L == (E + X*A*A)(L) add; 
aldor
   Compiling FriCAS source code from file 
      /var/zope2/var/LatexWiki/5200085684951427974-25px002.as using 
      AXIOM-XL compiler and options 
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
      Use the system command )set compiler args to change these 
      options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
   Compiling Lisp source code from file 
      ./5200085684951427974-25px002.lsp
   Issuing )library command for 5200085684951427974-25px002
   Reading /var/lib/zope/combinat/src/5200085684951427974-25px002.asy
   A is now explicitly exposed in frame initial 
   A will be automatically loaded when needed from 
      /var/lib/zope/combinat/src/5200085684951427974-25px002 
Type: Domain
axiom
)show X
 A ACInteger is a domain constructor.
 Abbreviation for A is A
 This constructor is exposed in this frame.
 Issue )edit 5200085684951427974-25px002.as to see algebra source code for A
------------------------------- Operations --------------------------------
 ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
 hash : % -> SingleInteger             latex : % -> String
 ?~=? : (%,%) -> Boolean
 ?<<? : (OutputForm,%) -> OutputForm
 IsomorphismType : () -> IsomorphismTypeCategory ACInteger
 cycleIndexSeries : () -> CycleIndexSeries
 expression : () -> SpeciesExpression
 generatingSeries : () -> ExponentialGeneratingSeries
 isomorphismTypeGeneratingSeries : () -> OrdinaryGeneratingSeries
 structures : SetSpecies ACInteger -> Generator %
labels := set [i::ACInteger for i in 1..3]
 
axiom
[structures(labels)$X]$ACLIST(X)
   There are 1 exposed and 0 unexposed library operations named
      structures having 1 argument(s) but none was determined to be
      applicable. Use HyperDoc Browse, or issue
                           )display op structures
      to learn more about the available operations. Perhaps
      package-calling the operation or using coercions on the arguments
      will allow you to apply the operation.
   Cannot find a definition or applicable library operation named
      structures with argument type(s)
                                Set ACInteger
      Perhaps you should use "@" to indicate the required return type,
      or "$" to specify which version of the function you need.
es: ExponentialGeneratingSeries := generatingSeries()$X; 
Type: ExponentialGeneratingSeries
? 
axiom
coeffs := [coefficient(es, i) for i in 0..10]
 
Type: List ACFraction
? ACInteger
? 
axiom
os: OrdinaryGeneratingSeries := isomorphismTypeGeneratingSeries()$X;
 
Type: OrdinaryGeneratingSeries
? 
axiom
coeffs2 := [coefficient(os, i) for i in 0..10]
 
axiom
I := ACMachineInteger
 
Type: Domain
axiom
Q := ACFraction ACInteger
 
Type: Domain
axiom
V := CycleIndexVariable
 
Type: Domain
axiom
T := SparseIndexedPowerProduct(V, I)
 
Type: Domain
axiom
P := SparseDistributedPolynomial(Q, V, T)
 
Type: Domain
axiom
S := CycleIndexSeries;
 
Type: Domain
axiom
cs: S := cycleIndexSeries()$X;
 
axiom
coeffs3: List P := [coefficient(cs, i) for i in 0..5]
 LISP output:
((((1 . 1))) (((1 . 1) (1 . 1))) (((2 . 1) (2 . 1))) (((5 . 1) (3 . 1))) (((14 .
1) (4 . 1))) (((42 . 1) (5 . 1))))
 
Type: List SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Ooops, it seems that elements of P cannot be printed in Axiom. :-(
So let's find the problem. P is the polynomial domain in infinitely many variables with rational coefficients.
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: CycleIndexVariable
? 
axiom
t: T := power(v,2) * power(5::I::V,3)
 
Type: SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?)
 
axiom
t2: T := power(v,3) * power(1::I::V,2)
 
Type: SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?)
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Hmm, prints fine...
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
Type: SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
The output of the next command apparently causes a "Proxy Error" on the mathaction server. This can be avoided by changing the output from LaTeX? to ASCII mode:
axiom
)set output algebra on
coeffs4: ACList P := [coefficient(cs, i) for i in 0..5]
   (26)  [(1)*1, (1)*x1^1, (2)*x1^2, (5)*x1^3, (14)*x1^4,
(42)*x1^5]
 
Type: ACList
? SparseDistributedPolynomial
?(ACFraction
? ACInteger
?,CycleIndexVariable
?,SparseIndexedPowerProduct
?(CycleIndexVariable
?,ACMachineInteger
?))
 
axiom
)set output algebra off
 
Let's do some more advanced stuff. See
the functorial composition testpage
for more details.
axiom
e: S := cycleIndexSeries() $ SetSpecies(Z);
   Z is not a valid type.
e2: S := term(coefficient(e, 2), 2);
   e is declared as being in CycleIndexSeries but has not been given a
      value.
h: S := functorialCompose(e * e, e2 * e);
   e is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 0)
   h is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 1)
   h is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 2)
   h is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 3)
   h is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 4)
   h is declared as being in CycleIndexSeries but has not been given a
      value.
coefficient(h, 5)
   h is declared as being in CycleIndexSeries but has not been given a
      value.