8 Combinatorial Species

 8.1 Combinatorial Species and their Modelling in Aldor
 8.2 The Label Type
 8.3 The Aldor Category of Combinatorial Species
 8.4 Basic Species
 8.5 Turn Some Existing Aldor Domains into Species
 8.6 Restricted Species
 8.7 Drop Empty Structure from a Species
 8.8 The Species of Subsets
 8.9 Partition Species
 8.10 Addition of Species
 8.11 Product of Species
 8.12 Composition of Species
 8.13 Functorial Composition of Species
 8.14 Some Further Ideas

Here we demonstrate the implementation of combinatorial species as they are defined in [BLL98] via categories and domains.

55* 13+   46  196
-------------------------------------------------------------------
----
---- Combinat
---- Copyright (C) Ralf Hemmecke <ralf@hemmecke.de>
---- Copyright (C) Martin Rubey <martin.rubey@univie.ac.at>
---- svn co svn://svn.risc.uni-linz.ac.at/hemmecke/combinat/
----
-------------------------------------------------------------------

#include "combinat"
macro {
        SPECIES == (L: LabelType) -> CombinatorialSpecies L;
        V == CycleIndexVariable;
        NonNegativeMachineInteger == I;
        T == SparseIndexedPowerProduct(V, NonNegativeMachineInteger);
        P == SparseDistributedPolynomial(Q, V, T);
}
#if Axiom
#else
cat: LabelType 62
ext: String with LabelType 65
ext: Integer with LabelType 66
ext: MachineInteger with LabelType 67
#endif
cat: CombinatorialSpecies 71
dom: SetSpecies 117
dom: CharacteristicSpecies 85
dom: EmptySetSpecies 83
dom: SingletonSpecies 84
dom: LinearOrder 89 -- use "extend List" if Axiom understands "extend"
dom: Cycle 96
dom: Partition 146
dom: Permutation 106
dom: RestrictedSpecies 127
dom: NonEmpty 131a
dom: Subset 136
dom: Plus 166a
dom: Times 175a
dom: Compose 182a
dom: FunctorialCompose 191a

Defines:
SPECIES, used in chunks 127, 131a, 166a, 175a, 182a, 191a, 626, 628, and 658.

Uses CombinatorialSpecies 71, CycleIndexVariable 329, I 47, LabelType 62, Q 47, SparseDistributedPolynomial 526, and SparseIndexedPowerProduct 506.