This article includes a list of general references, but it lacks sufficient corresponding inline citations .(June 2018) |
In combinatorial mathematics, the theory of combinatorial species is an abstract, systematic method for deriving the generating functions of discrete structures, which allows one to not merely count these structures but give bijective proofs involving them. Examples of combinatorial species are (finite) graphs, permutations, 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, carefully elaborated and applied by Canadian researchers around André Joyal.
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.
The category of species is equivalent to the category of symmetric sequences in finite sets. [1]
Any species consists of individual combinatorial structures built on the elements of some finite set: for example, a combinatorial graph is a structure of edges among a given set of vertices, and the species of graphs includes all graphs on all finite sets. Furthermore, a member of a species can have its underying set relabeled by the elements of any other equinumerous set, for example relabeling the vertices of a graph gives "the same graph structure" on the new vertices, i.e. an isomorphic graph.
This leads to the formal definition of a combinatorial species. Let be the category of finite sets, with the morphisms of the category being the bijections between these sets. A species is a functor [2]
For each finite set A in , the finite set F[A] [note 1] is called the set of F-structures on A, or the set of structures of species F on A. Further, by the definition of a functor, 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 φ. [3]
For example, the "species of permutations" [4] maps each finite set A to the set S[A] of all permutations of A (all ways of ordering A into a list), and each bijection f from A to another set B naturally induces a bijection (a relabeling) taking each permutation of A to a corresponding permutation of B, namely a bijection . Similarly, the "species of partitions" can be defined by assigning to each finite set the set of all its partitions, and the "power set species" assigns to each finite set its power set. The adjacent diagram shows a structure (represented by a red dot) built on a set of five distinct elements (represented by blue dots); a corresponding structure could be built out of any five elements.
Two finite sets are in bijection whenever they have the same cardinality (number of elements); thus by definition the corresponding species sets are also in bijection, and the (finite) cardinality of depends only on the cardinality of A. [note 2] In particular, the exponential generating series F(x) of a species F can be defined: [5]
where is the cardinality of for any set A having n elements; e.g., .
Some examples: writing ,
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.
Addition of species is defined by the disjoint union of sets, and corresponds to a choice between structures. [6] 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+ to be the species of non-empty sets, whose generating function is E+(x) = ex − 1, and 1 the species of the empty set, whose generating function is 1(x) = 1. It follows that the sum of the two species E = 1 + E+: 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. [7]
This is a disjoint union over all possible binary partitions of A. It is straightforward to show that multiplication is associative and commutative (up to isomorphism), and 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.
The addition and multiplication of species are the most comprehensive expression of the sum and product rules of counting.[ citation needed ]
Composition, also called substitution, is more complicated again. The basic idea is to replace components of F with G-structures, forming (F ∘ G). [8] 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:
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 .
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.
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.
Likewise, the species P can be characterised as P = E(E+): "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 , which is the series for the Bell numbers.
Differentiation of species intuitively corresponds to building "structures with a hole", as shown in the illustration below.
Formally, [9]
where is some distinguished new element not present in .
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 equations 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:
The generalized differentiation formulas are to be found in a previous research by N. G. de Bruijn, published in 1964.
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 integrate the generating function of L to produce that for C.
A nice example of integration of a species is the completion of a line (coordinatizated by a field) with the infinite point and obtaining a projective line.
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 bigraphs.
Pointing selects a single element in a structure. [10] Given a species F, the corresponding pointed species F• is defined by F•[A] = A×F[A]. Thus each F•-structure is an F-structure with one element distinguished. Pointing is related to differentiation by the relation F• = X·F' , so F•(x) = xF' (x). The species of pointed sets, E•, is particularly important as a building block for many of the more complex constructions.
The Cartesian product of two species[ citation needed ] 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•×E• 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:[ citation needed ] (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•×E• 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.
Operations with species are supported by SageMath [11] and, using a special package, also by Haskell. [12] [13]
If “finite sets with bijections” is replaced with “finite vector spaces with linear transformations”, then one gets the notion of polynomial functor (after imposing some finiteness condition).[ citation needed ]
A bijection, bijective function, or one-to-one correspondence between two mathematical sets is a function such that each element of the second set is mapped to from exactly one element of the first set. Equivalently, a bijection is a relation between two sets such that each element of either set is paired with exactly one element of the other set.
In mathematics, an equivalence relation is a binary relation that is reflexive, symmetric and transitive. The equipollence relation between line segments in geometry is a common example of an equivalence relation. A simpler example is equality. Any number is equal to itself (reflexive). If , then (symmetric). If and , then (transitive).
In mathematics, especially in category theory and homotopy theory, a groupoid generalises the notion of group in several equivalent ways. A groupoid can be seen as a:
In mathematics, many sets of transformations form a group under function composition; for example, the rotations around a point in the plane. It is often useful to consider the group as an abstract group, and to say that one has a group action of the abstract group that consists of performing the transformations of the group of transformations. The reason for distinguishing the group from the transformations is that, generally, a group of transformations of a structure acts also on various related structures; for example, the above rotation group acts also on triangles by transforming triangles into triangles.
In mathematics, a permutation group is a group G whose elements are permutations of a given set M and whose group operation is the composition of permutations in G (which are thought of as bijective functions from the set M to itself). The group of all permutations of a set M is the symmetric group of M, often written as Sym(M). The term permutation group thus means a subgroup of the symmetric group. If M = {1, 2, ..., n} then Sym(M) is usually denoted by Sn, and may be called the symmetric group on n letters.
In abstract algebra, the symmetric group defined over any set is the group whose elements are all the bijections from the set to itself, and whose group operation is the composition of functions. In particular, the finite symmetric group defined over a finite set of symbols consists of the permutations that can be performed on the symbols. Since there are such permutation operations, the order of the symmetric group is .
In mathematics, Hall's marriage theorem, proved by Philip Hall, is a theorem with two equivalent formulations. In each case, the theorem gives a necessary and sufficient condition for an object to exist:
In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being in terms of: independent sets; bases or circuits; rank functions; closure operators; and closed sets or flats. In the language of partially ordered sets, a finite simple matroid is equivalent to a geometric lattice.
In mathematics, a function space is a set of functions between two fixed sets. Often, the domain and/or codomain will have additional structure which is inherited by the function space. For example, the set of functions from any set X into a vector space has a natural vector space structure given by pointwise addition and scalar multiplication. In other scenarios, the function space might inherit a topological or metric structure, hence the name function space.
In combinatorics, an abstract simplicial complex (ASC), often called an abstract complex or just a complex, is a family of sets that is closed under taking subsets, i.e., every subset of a set in the family is also in the family. It is a purely combinatorial description of the geometric notion of a simplicial complex. For example, in a 2-dimensional simplicial complex, the sets in the family are the triangles, their edges, and their vertices.
In mathematics, particularly in combinatorics, given a family of sets, here called a collection C, a transversal (also called a cross-section) is a set containing exactly one element from each member of the collection. When the sets of the collection are mutually disjoint, each element of the transversal corresponds to exactly one member of C (the set it is a member of). If the original sets are not disjoint, there are two possibilities for the definition of a transversal:
In proof theory, a coherent space is a concept introduced in the semantic study of linear logic.
In combinatorics, the symbolic method is a technique for counting combinatorial objects. It uses the internal structure of the objects to derive formulas for their generating functions. The method is mostly associated with Philippe Flajolet and is detailed in Part A of his book with Robert Sedgewick, Analytic Combinatorics, while the rest of the book explains how to use complex analysis in order to get asymptotic and probabilistic results on the corresponding generating functions.
Enumerative combinatorics is an area of combinatorics that deals with the number of ways that certain patterns can be formed. Two examples of this type of problem are counting combinations and counting permutations. More generally, given an infinite collection of finite sets Si indexed by the natural numbers, enumerative combinatorics seeks to describe a counting function which counts the number of objects in Sn for each n. Although counting the number of elements in a set is a rather broad mathematical problem, many of the problems that arise in applications have a relatively simple combinatorial description. The twelvefold way provides a unified framework for counting permutations, combinations and partitions.
String diagrams are a formal graphical language for representing morphisms in monoidal categories, or more generally 2-cells in 2-categories. They are a prominent tool in applied category theory. When interpreted in the monoidal category of vector spaces and linear maps with the tensor product, string diagrams are called tensor networks or Penrose graphical notation. This has led to the development of categorical quantum mechanics where the axioms of quantum theory are expressed in the language of monoidal categories.
In combinatorial mathematics a cycle index is a polynomial in several variables which is structured in such a way that information about how a group of permutations acts on a set can be simply read off from the coefficients and exponents. This compact way of storing information in an algebraic form is frequently used in combinatorial enumeration.
In mathematics, essential dimension is an invariant defined for certain algebraic structures such as algebraic groups and quadratic forms. It was introduced by J. Buhler and Z. Reichstein and in its most generality defined by A. Merkurjev.
In mathematics, a topos is a category that behaves like the category of sheaves of sets on a topological space. Topoi behave much like the category of sets and possess a notion of localization; they are a direct generalization of point-set topology. The Grothendieck topoi find applications in algebraic geometry; the more general elementary topoi are used in logic.
In mathematics a group is a set together with a binary operation on the set called multiplication that obeys the group axioms. The axiom of choice is an axiom of ZFC set theory which in one form states that every set can be wellordered.
A Boltzmann sampler is an algorithm intended for random sampling of combinatorial structures. If the object size is viewed as its energy, and the argument of the corresponding generating function is interpreted in terms of the temperature of the physical system, then a Boltzmann sampler returns an object from a classical Boltzmann distribution.