|
|
Line 1: |
Line 1: |
| In [[combinatorics|combinatorial]] [[mathematics]], the theory of '''combinatorial species''' is an abstract, systematic method for analysing discrete structures in terms of [[generating function]]s. Examples of discrete structures are ([[wiktionary:finite|finite]]) [[Graph (mathematics)|graphs]], [[permutation]]s, [[Tree (graph theory)|trees]], and so on; each of these has an associated generating function which counts how many structures there are of a certain size. One goal of species theory is to be able to analyse complicated structures by describing them in terms of transformations and combinations of simpler structures. These operations correspond to equivalent manipulations of generating functions, so producing such functions for complicated structures is much easier than with other methods. The theory was introduced by [[André Joyal]].
| | How various instances have you been on a diet plus have failed because it was so strict or managed to have lost the weight nevertheless had the hardest time sustaining it? But, I am sure there are a limited of us which have maintained it however usually the majority of us certainly struggled to keep those pounds off.<br><br>We are certain which you'll have each success inside acquiring [http://safedietplans.com diet plans] when searching over these proven systems. Great chance with a fat reduction plans.<br><br>You'll do better with healthy fat reduction diet plans when you learn about correct portions. Check to make sure whatever plan we choose is clear on part sizes. For instance, a medium apple may be the size of a tennis ball. A 3-ounce piece of meat may be the scale of a deck of cards.<br><br>If you should lose weight quick (like 48 hours), this diet will interest we. For 48 hours all you're enabled to consume is a specialized fruit juice. It is supposed to have all which your body requires for which time. Many people have reported noticeable weight reduction in those 48 hours. The question is, what arises inside the next 48?<br><br>Simply name it: significant protein, low carbohydrate, low fat, no fat, excellent fat, food combining, fasting, cabbage soup, etc diets. I am sure you have tried them all plus certain we created oneself or from the neighbor who swears by which diet. And what regarding those who take fat burner pills? One thing you'll understand that these are very unrealistic techniques to get rid of plus keep fat. Why? Because these factors are not natural. And when you do unnatural points to the body it may rebel.<br><br>This really is a quite directly forward fad diet which merely involves drinking additional water. On The water diet we dink 8 cups(64 fluid ounces) of cold water, that is drunk at intervals by out the course of day.<br><br>I eat a variety of food whenever I'm dieting to avoid factors from getting boring. There are tons of healthy recipes available plus I usually try to add any healthy recipes whenever I will think of them. In the mean time here are my favorite healthy dishes that I like to consume at least a couple of times a week. |
| | |
| The power of the theory comes from its level of abstraction. The "description format" of a structure (such as [[adjacency list]] versus [[adjacency matrix]] for graphs) is irrelevant, because species are purely algebraic. [[Category theory]] provides a useful language for the concepts that arise here, but it is not necessary to understand categories before being able to work with species.
| |
| | |
| ==Definition of species==
| |
| Any structure — an instance of a particular species — is associated with some [[Set (mathematics)|set]], and there are often many possible structures for the same set. For example, it is possible to construct several different graphs whose node labels are drawn from the same given set. At the same time, any set could be used to build the structures. The difference between one species and another is that they build a different set of structures out of the same base set.
| |
| | |
| This leads to the formal definition of a ''combinatorial species''. Let <math>\mathcal{B}</math> be the category of finite sets and [[bijection]]s (the collection of all finite sets, and invertible functions between them). A species is a [[functor]]
| |
| | |
| :<math>F\colon \mathcal{B} \to \mathcal{B}; \, </math>
| |
| | |
| given a set ''A'', it yields the set ''F''[''A''] of ''F''-structures on ''A''. A functor also operates on bijections. If φ is a bijection between sets ''A'' and ''B'', then ''F''[φ] is a bijection between the sets of ''F''-structures ''F''[''A''] and ''F''[''B''], called ''transport of F-structures along φ''.
| |
| | |
| For example, the "species of permutations" maps each finite set ''A'' to the set of all permutations of ''A'', and each bijection from ''A'' to another set ''B'' naturally induces a bijection from the set of all permutations of ''A'' to the set of all permutations of ''B''. Similarly, the "species of partitions" can be defined by assigning to each finite set the set of all its [[partition of a set|partition]]s, and the "power set species" assigns to each finite set its [[power set]].
| |
| | |
| There is a standard way of illustrating an instance of any structure, regardless of its nature. The diagram below shows a structure on a set of five elements: arcs connect the structure (red) to the elements (blue) from which it is built.
| |
| | |
| [[Image:Combinatorial species example 1.png|center|200px|]]
| |
| | |
| The choice of <math>\mathcal{B}</math> as the category on which species operate is important. Because a bijection can only exist between two sets when they have the same size, the number of elements in ''F''[''A''] depends only on the size of ''A''. (This follows from the formal definition of a functor.) Restriction to finite sets means that |''F''[''A'']| is always finite, so it is possible to do arithmetic with such quantities. In particular, the ''exponential generating series'' ''F''(''x'') of a species ''F'' can be defined:
| |
| :<math>F(x) = \sum_{n \ge 0} f_n \frac{x^n}{n!}</math>
| |
| where <math>f_n</math> is the size of ''F''[''A''] for any set ''A'' having ''n'' elements.
| |
| | |
| Some examples:
| |
| * The species of sets (traditionally called ''E'', from the French "''ensemble''", meaning "set") is the functor which maps ''A'' to {''A''}. Then <math>f_n = 1</math>, so <math>E(x) = e^x</math>.
| |
| * The species ''S'' of permutations, described above, has <math>f_n = n!</math>. <math>S(x) = 1/(1 - x)</math>.
| |
| * The species ''T''<sub>2</sub> of pairs (2-[[tuple]]s) is the functor taking a set ''A'' to ''A''<sup>2</sup>. Then <math>f_n = n^2</math> and <math>T_2(x) = x (x+1) e^x</math>.
| |
| | |
| ==Calculus of species==
| |
| Arithmetic on generating functions corresponds to certain "natural" operations on species. The basic operations are addition, multiplication, composition, and differentiation; it is also necessary to define equality on species. Category theory already has a way of describing when two functors are equivalent: a [[natural isomorphism]]. In this context, it just means that for each ''A'' there is a bijection between ''F''-structures on ''A'' and ''G''-structures on ''A'', which is "well-behaved" in its interaction with transport. Species with the same generating function might not be isomorphic, but isomorphic species do always have the same generating function.
| |
| | |
| ===Basic operations===
| |
| '''Addition''' of species is defined by the [[disjoint union]] of sets, and corresponds to a choice between structures. For species ''F'' and ''G'', define (''F'' + ''G'')[''A''] to be the disjoint union (also written "+") of ''F''[''A''] and ''G''[''A'']. It follows that (''F'' + ''G'')(''x'') = ''F''(''x'') + ''G''(''x''). As a demonstration, take ''E''<sup>+</sup> to be the species of non-empty sets, whose generating function is ''E''<sup>+</sup>(''x'') = ''e''<sup>''x''</sup> − 1, and '''1''' the species of the [[empty set]], whose generating function is '''1'''(''x'') = 1. It follows that ''E'' = '''1''' + ''E''<sup>+</sup>: in words, "a set is either empty or non-empty". Equations like this can be read as referring to a single structure, as well as to the entire collection of structures.
| |
| | |
| '''Multiplying''' species is slightly more complicated. It is possible to just take the Cartesian product of sets as the definition, but the combinatorial interpretation of this is not quite right. (See below for the use of this kind of product.) Rather than putting together two unrelated structures on the same set, the multiplication operator uses the idea of splitting the set into two components, constructing an ''F''-structure on one and a ''G''-structure on the other.
| |
| :<math>(F \cdot G)[A] = \sum_{A=B+C} F[B] \times G[C].</math>
| |
| This is a disjoint union over all possible binary partitions of ''A''. It is straightforward to show that multiplication is [[Associativity|associative]] and [[Commutativity|commutative]] ([[up to]] [[isomorphism]]), and [[Distributivity|distributive]] over addition. As for the generating series, (''F'' · ''G'')(''x'') = ''F''(''x'')''G''(''x'').
| |
| | |
| The diagram below shows one possible (''F'' · ''G'')-structure on a set with five elements. The ''F''-structure (red) picks up three elements of the base set, and the ''G''-structure (light blue) takes the rest. Other structures will have ''F'' and ''G'' splitting the set in a different way. The set (''F'' · ''G'')[''A''], where ''A'' is the base set, is the disjoint union of all such structures.
| |
| | |
| [[Image:Combinatorial_species_multiplication.png|200px|center| ]]
| |
| | |
| '''Composition''', also called substitution, is more complicated again. The basic idea is to replace components of ''F'' with ''G''-structures, forming (''F''∘''G''). As with multiplication, this is done by splitting the input set ''A''; the disjoint subsets are given to ''G'' to make ''G''-structures, and the set of subsets is given to ''F'', to make the ''F''-structure linking the ''G''-structures. It is required for ''G'' to map the empty set to itself, in order for composition to work. The formal definition is:
| |
| | |
| :<math>(F \circ G)[A] = \sum_{\pi \in P[A]} (F[\pi] \times \Pi_{B \in \pi} G[B]).</math>
| |
| | |
| Here, ''P'' is the species of partitions, so ''P''[''A''] is the set of all partitions of ''A''. This definition says that an element of (''F''∘''G'')[''A''] is made up of an ''F''-structure on some partition of ''A'', and a ''G''-structure on each component of the partition. The generating series is <math>(F \circ G)(x) = F(G(x))</math>.
| |
| | |
| One such structure is shown below. Three ''G''-structures (light blue) divide up the five-element base set between them; then, an ''F''-structure (red) is built to connect the ''G''-structures.
| |
| | |
| [[Image:Combinatorial_species_substitution.png|285px|center| ]]
| |
| | |
| These last two operations may be illustrated by the example of trees. First, define ''X'' to be the species "singleton" whose generating series is ''X''(''x'') = ''x''. Then the species ''Ar'' of rooted trees (from the French "''arborescence''") is defined recursively by ''Ar'' = ''X'' · ''E''(''Ar''). This equation says that a tree consists of a single root and a set of (sub-)trees. The recursion does ''not'' need an explicit base case: it only generates trees in the context of being applied to some finite set. One way to think about this is that the ''Ar'' functor is being applied repeatedly to a "supply" of elements from the set — each time, one element is taken by ''X'', and the others distributed by ''E'' among the ''Ar'' subtrees, until there are no more elements to give to ''E''. This shows that algebraic descriptions of species are quite different from type specifications in programming languages like [[Haskell (programming language)|Haskell]].
| |
| | |
| Likewise, the species ''P'' can be characterised as ''P'' = ''E''(''E''<sup>+</sup>): "a partition is a pairwise disjoint set of nonempty sets (using up all the elements of the input set)". The exponential generating series for ''P'' is <math>P(x) = e^{(e^x - 1)}</math>, which is the series for the [[Bell numbers]].
| |
| | |
| '''[[derivative|Differentiation]]''' could be exemplified using the [[15-puzzle]].{{fact|date=August 2013}} After fixing almost any square, the new 14-puzzle has the same property : Only half of configuration are reachable. One may write '''15-puzzle'=14-puzzle''' or, more generally, '''Taquin'=Taquin'''. To differentiate the associated exponential series, the sequence of coefficients needs to be shifted one place to the "left" (losing the first term). This suggests a definition for species: ''F' ''[''A''] = ''F''[''A'' + {*}], where {*} is a singleton set and "+" is disjoint union. The more advanced parts of the theory of species use differentiation extensively, to construct and solve [[differential equation]]s on species and series. The idea of adding (or removing) a single part of a structure is a powerful one: it can be used to establish relationships between seemingly unconnected species.
| |
| | |
| For example, consider a structure of the species ''L'' of linear orders—lists of elements of the ground set. Removing an element of a list splits it into two parts (possibly empty); in symbols, this is ''L''' = ''L''·''L''. The exponential generating function of ''L'' is ''L''(''x'') = 1/(1 − ''x''), and indeed: | |
| | |
| :<math>
| |
| \frac{d}{dx} {(1-x)}^{-1} = {(1-x)}^{-2}.
| |
| </math>
| |
| | |
| The species ''C'' of cyclic permutations takes a set ''A'' to the set of all cycles on ''A''. Removing a single element from a cycle reduces it to a list: ''C''' = ''L''. We can [[Integral|integrate]] the generating function of ''L'' to produce that for ''C''.
| |
| | |
| :<math>
| |
| C(x) = \int_0^x \frac{dt}{1-t} = \log \frac{1}{1-x}.
| |
| </math>
| |
| | |
| A nice example of integration of a species is the completion of a line (coordonatizated by a field) with the infinite point and obtaining a projective line.
| |
| | |
| === A simple example - labeling the Fano plane ===
| |
| [[File:Fano plane.svg|thumb|The Fano plane]]
| |
| | |
| Let temporarily, just for an easier reading
| |
| :'''Fano''' = X^7/PSL(2,7)a : the species that correspond to the colineation group of Fano plane
| |
| and
| |
| :'''Klein''' = P<sub>4bic</sub> = the species that correspond to the Klein group transitively acting itself.
| |
| | |
| then
| |
| :'''Fano" = X.Klein'''
| |
| | |
| meaning : Since two points determine a line, after labeling any two points in the Fano plane another point is settled. The relabeling liberty for the rest of the four remaining points is described by the Klein Group.
| |
|
| |
| By differentiation, one obtains :
| |
| :'''Fano"' = X'.Klein + X.Klein' = Klein + X.X.X.X'''
| |
| | |
| meaning : After labeling three distinct points in the Fano plane, exactly two situation can occur :
| |
| :- (Either the points are collinear and) the remaining labeling liberty is described by '''Klein'''
| |
| :- (Or the points form an oval and) the whole plane is coordinated : '''X.X.X.X'''
| |
| | |
| The corresponding [[Cycle index]] is :
| |
| | |
| <math> Z_{Fano}(x_1, x_2, x_3, x_4, x_7)= {1 \over 168} [ x_1^7 + 21 x_1^3 x_2^2 + 42 x_1 x_2x_4 + 56 x_1 x_3^2 + 48 x_7 ] </math>
| |
| | |
| After two differentiation with respect to x<sub>1</sub> the Klein group shows up:
| |
| | |
| <math> Z_{Fano}'' = x_1.{1 \over 4} [ x_1^4 + 3 x_2^2 ] = x_1Z_{Klein} </math>
| |
| | |
| The e.g.f. is
| |
| : <math>\int \int x.6.{x^4 \over 4!} = 30.{x^7 \over 7!}</math>
| |
| hence there are 30 ways to label the plane. Here 6 represents the six distinct ways of labeling the affine (Klein) corresponding plane.
| |
| | |
| ===Further operations===
| |
| There are a variety of other manipulations which may be performed on species. These are necessary to express more complicated structures, such as directed graphs or [[bigraph]]s.
| |
| | |
| '''Pointing''' selects a single element in a structure. Given a species ''F'', the corresponding pointed species ''F''<sup>•</sup> is defined by ''F''<sup>•</sup>[''A''] = ''A'' × ''F''[''A'']. Thus each ''F''<sup>•</sup>-structure is an ''F''-structure with one element distinguished. Pointing is related to differentiation by the relation ''F''<sup>•</sup> = ''X''·''F' '', so ''F''<sup>•</sup>(''x'') = ''x'' ''F' ''(''x''). The species of [[pointed set]]s, ''E''<sup>•</sup>, is particularly important as a building block for many of the more complex constructions.
| |
| | |
| The '''Cartesian product''' of two species is a species which can build two structures on the same set at the same time. It is different from the ordinary multiplication operator in that all elements of the base set are shared between the two structures. An (''F'' × ''G'')-structure can be seen as a superposition of an ''F''-structure and a ''G''-structure. Bigraphs could be described as the superposition of a graph and a set of trees: each node of the bigraph is part of a graph, and at the same time part of some tree that describes how nodes are nested. The generating function (''F'' × ''G'')(''x'') is the Hadamard or coefficient-wise product of ''F''(''x'') and ''G''(''x'').
| |
| | |
| The species ''E''<sup>•</sup> × ''E''<sup>•</sup> can be seen as making two independent selections from the base set. The two points might coincide, unlike in ''X''·''X''·''E'', where they are forced to be different.
| |
| | |
| As functors, species ''F'' and ''G'' may be combined by '''functorial composition''': <math>(F \Box G) [A] = F[G[A] ]</math> (the box symbol is used, because the circle is already in use for substitution). This constructs an ''F''-structure on the set of all ''G''-structures on the set ''A''. For example, if ''F'' is the functor taking a set to its power set, a structure of the composed species is some subset of the ''G''-structures on ''A''. If we now take ''G'' to be ''E''<sup>•</sup> × ''E''<sup>•</sup> from above, we obtain the species of directed graphs, with self-loops permitted. (A directed graph is a set of edges, and edges are pairs of nodes: so a graph is a subset of the set of pairs of elements of the node set ''A''.) Other families of graphs, as well as many other structures, can be defined in this way.
| |
| | |
| ==Types and unlabelled structures==
| |
| Instead of counting all the possible structures that can be built on some set, we often want to count only the number of different "shapes" of structure. Consider the set of rooted trees on the set ''A'' = {''a'', ''b'', ''c''}. There are nine of these, which can be grouped into two classes by tree shape. There are:
| |
| * Six trees with three levels:
| |
| *# ''a'' → ''b'' → ''c''
| |
| *# ''a'' → ''c'' → ''b''
| |
| *# ''b'' → ''a'' → ''c''
| |
| *# ''b'' → ''c'' → ''a''
| |
| *# ''c'' → ''a'' → ''b''
| |
| *# ''c'' → ''b'' → ''a''
| |
| * Three trees with two levels: (not six, because subtrees are not in any order)
| |
| *# ''b'' ← ''a'' → ''c''
| |
| *# ''a'' ← ''b'' → ''c''
| |
| *# ''a'' ← ''c'' → ''b''
| |
| There is an exact correspondence between trees in the first class and permutations of ''A''. Any of these trees can be constructed from any of the others, by permuting the labels on its nodes. For any two trees ''s'' and ''t'' in this class, there is some permutation σ in the [[symmetric group]] ''S''<sub>''A''</sub> which [[Group action|acts on]] ''s'' to give ''t'': ''Ar''[σ](''s'') = ''t''. The same holds for the second class of trees. This property can be used to define an [[equivalence relation]] on ''Ar''[''A''], dividing it into the two parts listed above. These equivalence classes are the ''isomorphism types'' of ''Ar''-structures of order 3.
| |
| | |
| Formally, when ''F'' is a species, we define ''T''(''F''<sub>''n''</sub>) to be the quotient set ''F''[{1, ..., ''n''}]/~ of types of ''F''-structures of order ''n'', where "~" is the relation "''s'' ~ ''t'' [[if and only if]] there is some σ in ''S''<sub>''n''</sub> such that ''F''[σ](''s'') = ''t''". As with the exponential generating functions, the size of ''T''(''F''<sub>''n''</sub>) depends only on the value of ''n'' and the definition of ''F''. It is the set of unlabelled ''F''-structures on any set of size ''n''.
| |
| | |
| The '''isomorphism type generating series''' of ''F'' is:
| |
| :<math>\tilde{F}(x) = \sum_{n \ge 0} |T(F_n)| x^n.</math>
| |
| | |
| Manipulations of these functions are done in essentially the same way as for the exponential generating functions. There are a few differences in how some of the operations translate into operations on type generating series. Addition and multiplication work as expected, but the more complicated operations need some more sophisticated mathematical tools for their proper definitions.
| |
| | |
| There is a much more general series, called the '''cycle index series''', for each species, which contains all the information in the previously-defined series, and more. Any permutation σ of a finite set ''A'' with ''n'' elements can be decomposed, uniquely, into a product of disjoint cycles. Letting σ<sub>''i''</sub> be the number of cycles of length ''i'' in the decomposition of σ ∈ ''S''<sub>''n''</sub>, the '''cycle type''' of σ is defined to be the sequence (σ<sub>1</sub>, σ<sub>2</sub>, ..., σ<sub>''n''</sub>). Now let Fix(σ) be the set of elements fixed by σ — that is, the elements ''x'' of ''A'' where σ(''x'') = ''x''. Then the ''cycle index series'' of ''F'' is:
| |
| :<math>Z_F(x_1, x_2, \dots) = \sum_{n \ge 0} \frac{1}{n!} \left( \sum_{\sigma \in S_n} |\mathrm{Fix}(F[\sigma])| x_1^{\sigma_1} x_2^{\sigma_2} \cdots \right).</math>
| |
| |Fix(''F''[σ])| is the number of ''F''-structures on ''A'' = {1, ..., ''n''} for which σ is an [[automorphism]].
| |
| | |
| It follows immediately that
| |
| | |
| :<math>F(x) = Z_F(x, 0, 0, \dots)\,</math>
| |
| | |
| and
| |
| | |
| :<math>\tilde{F}(x) = Z_F(x, x^2, x^3, \dots)\,</math>
| |
| | |
| for any species ''F''. The cycle index series follows these rules for combinatorial operations on species ''F'' and ''G'':
| |
| *<math>Z_{F+G} = Z_F + Z_G\,</math>
| |
| *<math>Z_{F \cdot G}(x_1, x_2, \dots) = Z_F(x_1, x_2, \dots) \, Z_G(x_1, x_2, \dots)</math>
| |
| *<math>Z_{F \circ G}(x_1, x_2, x_3, \dots) = Z_F( Z_G(x_1, x_2, x_3, \dots), Z_G(x_2, x_4, x_6, \dots), Z_G(x_3, x_6, x_9, \dots), \dots )</math>
| |
| *<math>Z_{F'}(x_1, x_2, \dots) = \left( \frac{\partial}{\partial x_1} Z_F \right)(x_1, x_2, \dots)</math>
| |
| *<math>Z_{F^{\bullet}}(x_1, x_2, \dots) = x_1 Z_{F'}(x_1, x_2, \dots)</math>
| |
| *<math>Z_{F \times G}(x_1, x_2, \dots) = Z_F(x_1, x_2, \dots) \times Z_G(x_1, x_2, \dots).\,</math>
| |
| | |
| Then the rules for type generating series can be given in terms of these:
| |
| *<math>\tilde{(F \circ G)}(x) = Z_F( \tilde{G}(x), \tilde{G}(x^2), \tilde{G}(x^3), \dots)</math>
| |
| *<math>\tilde{F'}(x) = \left( \frac{\partial}{\partial x_1} Z_F \right)(x, x^2, x^3, \dots)</math>
| |
| *<math>\tilde{F^{\bullet}}(x) = x \tilde{F'}(x)</math>
| |
| *<math>\tilde{F \times G}(x) = (Z_F \times Z_G)(x, x^2, x^3, \dots).</math>
| |
| | |
| ==Class of all species==
| |
| There are many ways of thinking about the class of all combinatorial species. Since a species is a functor, it makes sense to say that the ''category of species'' is a [[functor category]] whose objects are species and whose arrows are [[natural transformation]]s. This idea can be extended to a [[bicategory]] of certain categories, functors, and natural transformations, to be able to include species over categories other than <math>\mathcal{B}</math>. The unary and binary operations defined above can be specified in categorical terms as [[Universal property|universal constructions]], much like the corresponding operations for other algebraic systems.
| |
| | |
| Though the categorical approach brings powerful proof techniques, its level of abstraction means that concrete combinatorial results can be difficult to produce. Instead, the class of species can be described as a [[semiring]] — an algebraic object with two [[monoid]]al operations — in order to focus on combinatorial constructions. The two monoids are addition and multiplication of species. It is easy to show that these are associative, yielding a double [[semigroup]] structure; and then the identities are the species '''0''' and '''1''' respectively. Here, '''0''' is the ''empty species'', taking every set to the empty set (so that no structures can be built on any set), and '''1''' is the empty set species, which is equal to '''0''' except that it takes <math>\varnothing</math> to <math>\{\,\varnothing\,\}</math> (it constructs the empty set whenever possible). The two monoids interact in the way required of a semiring: addition is commutative, multiplication distributes over addition, and '''0''' multiplied by anything yields '''0'''.
| |
| | |
| The [[natural number]]s can be seen as a subsemiring of the semiring of species, if we identify the natural number ''n'' with the ''n''-fold sum '''1''' + ... + '''1''' = ''n'' '''1'''. This embedding of natural number arithmetic into species theory suggests that other kinds of arithmetic, logic, and computation might also be present. There is also a clear connection between the category-theoretic formulation of species as a functor category, and results relating certain such categories to [[Topos|topoi]] and [[Cartesian closed category|Cartesian closed categories]] — connecting species theory with the [[lambda calculus]] and related systems.
| |
| | |
| Given that natural number species can be added, we immediately have a limited form of subtraction: just as the natural number system admits subtraction for certain pairs of numbers, subtraction can be defined for the corresponding species. If ''n'' and ''m'' are natural numbers with ''n'' larger than ''m'', we can say that ''n'' '''1''' − ''m'' '''1''' is the species (''n'' − ''m'') '''1'''. (If the two numbers are the same, the result is '''0''' — the identity for addition.) In the world of species, this makes sense because ''m'' '''1''' is a subspecies of ''n'' '''1'''; likewise, knowing that ''E'' = '''1''' + ''E''<sup>+</sup>, we could say that ''E''<sup>+</sup> = ''E'' − '''1'''.
| |
| | |
| Going further, subtraction can be defined for ''all'' species so that the correct algebraic laws apply. Virtual species are an extension to the species concept that allow inverses to exist for addition, as well as having many other useful properties. If '''S''' is the semiring of species, then the ring '''V''' of virtual species is ('''S''' × '''S''') / '''~''', where "'''~'''" is the equivalence relation
| |
| | |
| :(''F'', ''G'') '''~''' (''H'', ''K'') if and only if ''F'' + ''K'' is isomorphic to ''G'' + ''H''.
| |
| | |
| The equivalence class of (''F'', ''G'') is written "''F'' − ''G''". A species ''F'' of '''S''' appears as ''F'' − '''0''' in '''V''', and its additive inverse is '''0''' − ''F''.
| |
| | |
| Addition of virtual species is by component:
| |
| | |
| :(''F'' − ''G'') + (''H'' − ''K'') = (''F'' + ''H'') − (''G'' + ''K'').
| |
| | |
| In particular, the sum of ''F'' − '''0''' and '''0''' − ''F'' is the virtual species ''F'' − ''F'', which is the same as '''0''' − '''0''': this is the zero of '''V'''. Multiplication is defined as
| |
| :(''F'' − ''G'')·(''H'' − ''K'') = (''F''·''H'' + ''G''·''K'') − (''F''·''K'' + ''G''·''H'')
| |
| and its unit is '''1''' − '''0'''. Together, these make '''V''' into a commutative ring, which as an algebraic structure is much easier to deal with than a semiring. Other operations carry over from species to virtual species in a very natural way, as do the associated power series. "Completing" the class of species like this also means that certain differential equations insoluble over '''S''' do have solutions in '''V'''.
| |
| | |
| ==Generalizations==
| |
| Species need not be functors from <math>\mathcal{B}</math> to <math>\mathcal{B}</math>: other categories can replace these, to obtain species of a different nature.
| |
| * A species ''in k sorts'' is a functor <math>\mathcal{B}^k \rightarrow \mathcal{B}</math>. Here, the structures produced can have elements drawn from distinct sources.
| |
| * A functor to <math>\mathcal{B}_R</math>, the category of ''R''-weighted sets for ''R'' a [[Ring (mathematics)|ring]] of power series, is a ''weighted species''.
| |
| * A ''[[tensor]]ial species'' is a functor into the category of finite-dimensional [[vector space]]s over the [[complex number]]s.
| |
| | |
| ==Software==
| |
| Operations with species are supported by [[Sage (mathematics software)|Sage]]<ref>Sage documentation on [http://www.sagemath.org/doc/reference/combinat/species.html combinatorial species].</ref> and, using a special package, also by [[Haskell (programming language)|Haskell]].<ref>Haskell package [http://hackage.haskell.org/package/species species].</ref><ref>{{Cite journal | first = Yorgey | last = Brent A. | title = Species and functors and types, oh my! | booktitle = Haskell '10: Proceedings of the third ACM Haskell symposium on Haskell | publisher = ACM | year = 2010 | isbn = 978-1-4503-0252-4 | pages = 147–158 | doi = 10.1145/1863523.1863542}}</ref>
| |
| | |
| ==Notes==
| |
| {{Reflist}}
| |
| | |
| ==References==
| |
| * André Joyal, ''Une théorie combinatoire des séries formelles'', Advances in Mathematics 42:1-82 (1981).
| |
| * François Bergeron, Gilbert Labelle, Pierre Leroux, ''Théorie des espèces et combinatoire des structures arborescentes'', LaCIM, Montréal (1994). English version: [http://bergeron.math.uqam.ca/Species/especes.html ''Combinatorial Species and Tree-like Structures''], Cambridge University Press (1998).
| |
| * François Bergeron, ''Species and Variations on the Theme of Species'', invited talk at [http://www.itu.dk/research/theory/ctcs2004/ Category Theory and Computer Science '04], Copenhagen (2004). [http://bergeron.math.uqam.ca/Especes_trans.pdf Slides (pdf)].
| |
| * Marcelo Aguiar, Swapneel Mahajan, ''Monoidal functors, species and Hopf algebras'', CRM Monograph Series Volume 29. A co-publication of the AMS and Centre de Recherches Mathématiques. Expected publication date is November 19, 2010. [http://www.math.tamu.edu/~maguiar/a.pdf pdf]
| |
| * Federico G. Lastaria, [http://math.math.unipa.it/~grim/ELastaria221-230.PDF An invitation to Combinatorial Species].
| |
| *Yves Chiricota, "Classification des espèces moléculaires de degré 6 et 7", Ann. Sci. Math. Québec 17 (1993), no. 1, 1 l-37.
| |
| | |
| ==See also==
| |
| * [[Container (type theory)]]
| |
| | |
| ==External links==
| |
| * {{MathWorld|Species|Species}}
| |
| | |
| [[Category:Enumerative combinatorics]]
| |
| [[Category:Algebraic combinatorics]]
| |