|
|
last edited 13 years ago by Bill Page |
1 2 3 4 5 6 7 8 | ||
Editor: kratt6
Time: 2008/06/12 08:41:47 GMT-7 |
||
Note: |
added: \begin{axiom} m: MultiSet ACINT := multiset([1$ACINT for i in 1..3]::ACList ACINT) [isomorphismTypes(m)$MultiSet(ACINT)]$ACList(MultiSet ACINT) \end{axiom} removed: -m: MultiSet ACINT := multiset([1$ACINT for i in 1..3]::ACList ACINT) changed: -debugging needed here... debugging needed here... On my computer, the last statement yields On my computer, the last statement yields:: (13) [r([1], ([1], [1])),r(([1], [1]), [1])] Very likely, the bug is due to the broken aldor interface. Ralf is working hard on that.
Test species in axiom/FriCAS?.
The species project is written in Aldor. Thus we need to load the libraries explicitly:
)cd ~/combinat/src
The current FriCAS default directory is /var/lib/zope/combinat/src
)re ../lib/combinat.input
)lib cscombinatversion.ao
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
)lib csaxcompat.ao
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
)lib csaxcompat2.ao
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 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 Partial is now explicitly exposed in frame initial Partial will be automatically loaded when needed from /var/lib/zope/combinat/src/csaxcompat2 Won't parse: (Type)->NIL
)lib csistruc.ao
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
)lib csdistpoly.ao
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
)lib csstream.ao
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
)lib csseries.ao
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
)lib csidxpp.ao
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
)lib cssiprimes.ao
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
)lib cssitools.ao
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
)lib csgseries.ao
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
)lib csmultinom.ao
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
)lib csspexpr.ao
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
)lib csspecies.ao
Reading /var/lib/zope/combinat/src/csspecies.asy SetSpecies is now explicitly exposed in frame initial SetSpecies 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 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 CombinatorialSpecies is now explicitly exposed in frame initial CombinatorialSpecies 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 NonEmpty is now explicitly exposed in frame initial NonEmpty 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 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 Partition is now explicitly exposed in frame initial Partition will be automatically loaded when needed from /var/lib/zope/combinat/src/csspecies
)lib csexamples.ao
Reading /var/lib/zope/combinat/src/csexamples.asy SetSpecies is already explicitly exposed in frame initial SetSpecies will be automatically loaded when needed from /var/lib/zope/combinat/src/csexamples 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 Won't parse: (ACLabelType)->NIL Won't parse: (Type)->NIL
)lib csinterp.ao
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
)lib csparse.ao
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
We took the decision not to rely on the Axiom algebra. Unfortunately, this means that integration in Axiom is a little unsatisfactory. Eg., instead of Integer
and List
, we need to use ACInteger
and ACList
. Often explicit coercions are necessary.
This should give the set partitions of {1,2,3,4}
l: SetSpecies ACINT := set [i::ACINT for i in 1..4]
(1) |
[structures(l)$Partition ACINT]$ACLIST(Partition ACINT)
(2) |
#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;
Compiling FriCAS source code from file /var/zope2/var/LatexWiki/5200085684951427974-25px003.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-25px003.lsp Issuing )library command for 5200085684951427974-25px003 Reading /var/lib/zope/combinat/src/5200085684951427974-25px003.asy A is now explicitly exposed in frame initial A will be automatically loaded when needed from /var/lib/zope/combinat/src/5200085684951427974-25px003
Due to types not being first class objects in the Axiom interpreter, we had to write a little interpreter to allow for user specified species:
T := Interpret([parse "Plus(SingletonSpecies, Times(Self, Self))"], ACInteger);
)sh T
Interpret([CONCATPlus(PAREN (AGGLST (CONCAT (NOTHING) SingletonSpecies) (CONCAT Times (PAREN (AGGLST (CONCAT (NOTHING) Self) (CONCAT (NOTHING) Self))))))],ACInteger) is a domain constructor. Abbreviation for Interpret is INTERPR This constructor is exposed in this frame. Issue )edit csinterp.as to see algebra source code for INTERPR
------------------------------- 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 %
l := set [i::ACINT for i in 1..3]
(3) |
[structures(l)$T]$ACLIST(T)
(4) |
We are still not 100% sure how to represent isomorphism types. So far, we had two ideas: in the iso-experiment
branch, we have separate (but tightly connected) representation:
m: MultiSet ACINT := multiset([1$ACINT for i in 1..3]::ACList ACINT)
(5) |
[isomorphismTypes(m)$MultiSet(ACINT)]$ACList(MultiSet ACINT)
(6) |
IsoT := ACIsomorphismType(ACINT, T)
(7) |
)sh IsoT
ACIsomorphismType(ACInteger,Interpret([CONCATPlus(PAREN (AGGLST (CONCAT (NOTHING) SingletonSpecies) (CONCAT Times (PAREN (AGGLST (CONCAT (NOTHING) Self) (CONCAT (NOTHING) Self))))))],ACInteger)) is a domain constructor. Abbreviation for ACIsomorphismType is ACISOMO This constructor is exposed in this frame. Issue )edit csspecies.as to see algebra source code for ACISOMO
------------------------------- Operations --------------------------------
?=? : (%,%) -> Boolean coerce : % -> OutputForm hash : % -> SingleInteger latex : % -> String ?~=? : (%,%) -> Boolean ?<<? : (OutputForm,%) -> OutputForm isomorphismTypes : MultiSet ACInteger -> Generator %
[isomorphismTypes(m)$IsoT]$ACList(IsoT)
>> System error: Caught fatal error [memory may be damaged]
debugging needed here... On my computer, the last statement yields
On my computer, the last statement yields:
(13) [r([1], ([1], [1])),r(([1], [1]), [1])]
Very likely, the bug is due to the broken aldor interface. Ralf is working hard on that.