The categories in this variety are chosen to represent the fundamental incidence structures.
Counting functions
Partitions and tableaux
Graphs—directed and undirected
Networks
Incidence structures
Designs
Finite planes
Incidence geometry
Factorial
Binomial, multinomial coefficients
Stirling numbers of the first and second kind
Fibonacci numbers, Bernoulli numbers, Harmonic numbers, and Eulerian numbers
Number of partitions of n
Enumeration of restricted and unrestricted partitions
Sets of subsets, multisets, and subsequences of sets
Permutations of sets (as sequences)
Extensive facilities were installed for working with Young tableaux and symmetric functions. The facility is heavily based on the Symmetrica package developed by A. Kerber and associates in Bayreuth. A highlight of the tableau machinery is the Robinson-Schensted-Knuth (RSK) correspondence. The collection of all symmetric functions defined over some ring is viewed as forming an algebra where the chief interest lies in the change of basis matrix relative to different bases. The Young tableaux code was written by G. White while the machinery for symmetric functions was adapted from Symmetrica by A. Kohnert (Bayreuth) during a year-long visit to Sydney.
Number of partitions of n
Enumeration of restricted and unrestricted partitions
Conjugate partitions
Longest increasing sequences within words of integers
Lexicographical ordering of words
Creation of skew or non-skew tableaux over the integers or arbitrary label sets
Enumeration of tableaux
Random tableaux
Properties: shape, skew-shape, weight, hooklength's, content, row/column words
Operations: diagonal sum, product, conjugate, jeu de taquin, row insertion, inverse jeu de taquin, inverse row insertion
RSK correspondence, inverse RSK correspondence
Enumeration of tableaux having specified size and alphabet
Symmetric functions are defined as polynomials in an infinite number of variables, invariant under the action of the symmetric group. The set of all symmetric functions denoted by Λ is an algebra. A symmetric function algebra may be created over an arbitrary commutative ring (with unity) R. Five different bases for an algebra of symmetric functions are supported.
Creation of algebras with any one of 5 possible bases: consisting of Schur functions, Elementary, Monomial, Homogeneous (complete) or Power Sum functions.
Creation of elements as linear combinations of basis elements (indexed by partitions) or from coercing a polynomial or a scalar.
An algebra can be tested for which basis it represents its elements with respect to.
Alternative print styles for elements of an algebra
Addition, subtraction, multiplication and composition (plethysm) of symmetric functions. Testing for homogeneity and equality.
Decomposition of symmetric functions into basis elements and coefficients thereof.
Symmetric functions can be coerced into polynomial rings.
Frobenius homomorphism, inner product, tableax with a given generating function and corresponding characters
Matrices converting from any of the 5 bases to any other of the 5 bases
Graphs may be directed or undirected. In addition, their vertices and/or their edges may be labelled. A graph may be represented by means of its adjacency matrix. or by means of its adjacency list.
Directed and undirected graphs
Optional vertex and edge labels
Operations: union, join, product, contraction, switching etc
Standard graphs: complete, complete bipartite, k-cube
Properties: connected, regular, eulerian
Algebraic invariants: Characteristic polynomial, spectrum
Diameter, girth, circumference
Connectedness, paths and circuits
Triconnectivity
General vertex and edge connectivity in graphs and digraphs
MaximumMatching in bipartite graphs
Spanning trees, cut-vertices
Cliques and maximal cliques, independent sets
Chromatic number, chromatic index, chromatic polynomial
Planarity testing, obstruction isolation, faces, embedding
Graphs from groups: Cayley graph, orbital graph
Automorphism group (B. McKay's algorithm), canonical labelling
Testing of pairs of graphs for isomorphism
Group actions on a graph: orbits and stabilizers of vertex and edge sequences
Symmetry properties: vertex transitive, edge transitive, k-arc transitive, distance transitive, distance regular
Intersection numbers of a distance regular graph
Interface for B. McKay's graph generation algorithm [McK98]
Brendan McKay's automorphism program nauty [McK81] is used for computing automorphism groups and for testing pairs of graphs for isomorphism. In accordance with the Magma philosophy, a graph may be studied under the action of an automorphism group. Using the G-set mechanism an automorphism group can be made to act on any desired set of objects derived from the graph.
The planarity tester and obstruction isolator are linear time algorithms; they are due to Boyer and Myrvold [BW01].
The triconnectivity algorithm is the classical linear time algorithm from Hopcroft and Tarjan [HopTar73] with corrections of our own and from Gutwenger and Mutzel [GutMut01].
The general vertex and edge connectivity machinery rests on two flow-based algorithms for networks: the Dinic algorithm and the push-relabel method (see below).
A network is a digraph whose edges are associated with a capacity. It may have multiple (i.e. parallel) edges and loops. A network is represented by means of its adjacency list.
Operations: union, join, contraction
Maximum flow and minimum cut
There are two implementations of the maximum flow algorithm. One is the classical Dinic algorithm with heuristics due to McKay, the other is a push-relabel method with heuristics mainly due to Cherkassky and Golberg et al. [CG97, CGM98].
General incidence structures provide a universe in which families of incidence structures satisfying stronger conditions (linear spaces, t-designs, etc) reside.
Creation of a general incidence structure, near-linear space, linear space, design
Difference sets: standard difference sets, development
Hadamard designs, Witt designs
Unary operations: complement, contraction, dual, residual
Binary operations: sum, union
Invariants for an incidence structure: point degrees, block degrees, covalence
Invariants for a design: replication number, order, covalence, intersection numbers, Pascal triangle
Properties: balanced, complete, uniform, self-dual, simple, Steiner
Near-linear space operations: connection number, point and line regularity, restriction
Resolutions, parallelisms, parallel classes
Graphs and codes from designs: block graph, incidence graph, point graph, linear code
Automorphism group (J. Leon's algorithm), isomorphism testing
Group actions on a design: orbits and stabilizers of points and blocks
Symmetry properties: point transitive, block transitive
Tools are provided for constructing designs from difference sets, Hadamard matrices, codes and other designs. The standard families of difference sets are incorporated. A major feature is the ability to compute automorphism groups and to test pairs of incidence structures for isomorphism.
Although finite planes correspond to particular families of designs, separate categories are provided for both projective and affine planes in order to exploit the rich structure possessed by these objects.
Creation of classical and non-classical finite projective and affine planes
Subplanes, dual of a projective plane
Numerical invariants: order, p-rank
Properties: Desarguesian, self-dual
Parallel classes of an affine plane
k-arcs: testing, complete, tangents, secants, passants
Conics: through given points, knot, exterior, interior
Unitals: testing, tangents, feet
Affine to projective planes and vice versa
Related structures: design, incidence matrix, incidence graph, linear code
Collineation group, isomorphism testing (optimized algorithm for projective planes)
Central collineations: testing, groups
Group actions on a plane: orbits and stabilizers of points and lines
Symmetry properties: point transitive, line transitive
Apart from elementary invariants, a reasonably fast method is available for testing whether a plane is desarguesian. Among special configurations of interest, a search procedure for k-arcs is provided. A specialized algorithm developed by Jeff Leon is used to compute the collineation group of a projective plane while the affine case is handled by the incidence structure method. The collineation group (order 23 38) of a "random" projective plane of order 81 supplied by Gordon Royle was found in 1 202 seconds. As with graphs and designs the G-set mechanism gives the action of the collineation group on any appropriate set.
Magma 2.14 contains facilities for creating and computing with incidence geometries and coset geometries. These have been developed by Dimitri Leemans (Brussels).
The Magma Incidence Structure type comprises a set of points and a set of blocks together with an incidence relation. Following Bekenhout, we define a more general object as follows: An incidence geometry is a 4-tuple Γ = (X,*,t,I) where
X is a set of elements;
I is a non-empty set whose elements are called types;
t : X→I : x ↦ t(x) is a type function which maps an element to its type;
* is an incidence relation that is a reflexive and symmetric relation such that ∀x,y∈X, x*y and t(x)*t(y) ⇒ x = y.
We also introduce group-geometry pairs or coset geometries. Roughly speaking, these are geometries constructed from a group and some of its subgroups in the following way. Let I be a finite set and let G be a group together with a finite family of subgroups (Gi)i∈I. We define the incidence geometry Γ = Γ(G, (Gi)i∈I) as follows. The set X of elements or varieties of Γ consists of all cosets gGi, g∈G, i∈I. We define an incidence relation * on X by:
g1Gi * g2Gj iff g1Gi∩g2Gj is non-empty in G.
Γ(G, (Gi)i∈I) may also be called a group-geometry pair.
Creation of incidence geometries
Conversion of an incidence geometry to a coset geometry
Set of types, rank
Diagram, incidence graph, elements
Residue, truncation, shadow, shadowspace
Properties: flag-transitive geometry, residually connected, firm, thin, thick
Test if a geometry is a graph and conversion of such a geometry to a graph
Automorphism group
Correlation group
Creation of coset geometries
Conversion of an incidence geometry to a coset geometry
Set of types, rank
Diagram
Residue, truncation
Properties: flag-transitive geometry, residually connected, firm, thin, thick
Test if a geometry is a graph and conversion of such a geometry to a graph
Borel subgroup, group of the geometry
Maximal and minimal parabolic subgroups
Kernel of a geometry, i-kernels, quotient