Available versions of this document: latest release, release 4.0, release 3.6, release 3.5, nightly master
Reference documentation for older polymake versions: release 3.4, release 3.3, release 3.2
BigObject Matroid
from application matroid
A matroid on the set {0,…,n1}. Here n is the same as N_ELEMENTS
.
 Permutations:
 BasesPerm:
permuting the
BASES
 HyperplanePerm:
UNDOCUMENTED
Properties
Advanced properties
More complex properties of the matroid.

AUTOMORPHISM_GROUP
The automorphism group of the matroid, operating on the ground set.
 Type:

BETA_INVARIANT
The coefficient of x of the
TUTTE_POLYNOMIAL
. Type:

CATENARY_G_INVARIANT
This is an equivalent characterization of the
G_INVARIANT
given by Bonin and Kung ([Bonin, Kung: The Ginvariant and catenary data of a matroid (2015)]). It lives in the free abelian group over all (n,r)compositions (where n =N_ELEMENTS
and r =RANK
). Those are sequences (a0,…,ar) with a0 >= 0, a_j > 0 for j > 0 and sum a_i = n For each maximal chain of flats F0,…,Fr = E of M, the corresponding composition is a0 = F0 and a_i = Fi \ Fi1 for i > 0. For a composition a, let v(M,a) be the number of maximal chains of flats with composition a. Then G(M) := sum_a v(M,a) * a, where the sum runs over all compositions a. Type:

CONNECTED
Whether the matroid is connected
 Type:

CONNECTED_COMPONENTS
The connected components
 Type:

F_VECTOR
The fvector of a matroid
 Type:

G_INVARIANT
The Ginvariant of the matroid (see [Derksen: Symmetric and quasisymmetric functions associated to polymatroids, J. Algebr. Comb. 30 (2009), 4386]) We use the formulation by Bonin and Kung in [Bonin, Kung: The Ginvariant and catenary data of a matroid (2015)]: The Ginvariant is an element of the free abelian group over all (n,r)sequences (where n =
N_ELEMENTS
and r =RANK
), i.e. 0/1sequences (r_1,…,r_n), where exactly r entries are 1. We identify each such sequence with its support, i.e. the set of entries equal to 1, so the Ginvariant can be represented as a map which takes an rset to the coefficient of the corresponding (n,r)sequence. The formal definition goes as follows: For each permutation p on n, we define a sequence r(p) = (r_1,…,r_n) by r_1 = rank({p(1)}) and r_j = rank( {p(1),…,p(j)})  rank( {p(1),…,p(j1)}). Then G(M) := sum_p r(p), where the sum runs over all permutations p. Type:

H_VECTOR
The hvector of a matroid
 Type:

IDENTICALLY_SELF_DUAL
Whether the matroid is equal to its dual. Note that this does not check for isomorphy, if you want to check whether the matroid is isomorphic to its dual, ask for
SELF_DUAL
. Type:

LAMINAR
Whether the matroid is laminar. This is the case if and only if for any two circuits C1,C2 with nonempty intersection, their closures are comparable (i.e. one contains the other) see also [Fife, Oxley: Laminar matroids. arXiv: 1606.08354]
 Type:

LOOPS
Loops
 Type:

MAXIMAL_TRANSVERSAL_PRESENTATION
If the matroid is transversal, this is the unique maximal presentation. I.e. the set system consists of
RANK
many sets and none of the sets can be increased without changing the matroid. Type:

NESTED
Whether the matroid is nested, i.e., its
LATTICE_OF_CYCLIC_FLATS
forms a chain. Type:

N_CONNECTED_COMPONENTS
The number of
CONNECTED_COMPONENTS
 Type:

PAVING
Whether the matroid is paving.
 Type:

POLYTOPE
Polytope whose vertices are the characteristic vectors of the bases.
 Type:

REGULAR
Whether the matroid is representable over every field, that is the repesentation is unimodular. NOTE: the property my be 'undef' when polymake is unable to decide whether the matroid is regular.
 Type:

REVLEX_BASIS_ENCODING
A string listing the bases in revlex order. A '*' means the basis is present, a '0' that it is absent
 Type:

SELF_DUAL
Whether the matroid is isomorphic to its dual If you want to check whether it is actually equal (not just isomorphic), ask for
IDENTICALLY_SELF_DUAL
. Type:

SERIES_PARALLEL
Whether the matroid is seriesparallel
 Type:

SIMPLE
Whether the matroid is simple.
 Type:

SPARSE_PAVING
Whether the matroid is sparse paving, i.e., both the matroid and its dual are paving.
 Type:

SPLIT
Whether all SPLIT_FLACETS in the matroid are compatible.
 Type:

SPLIT_FLACETS
The flats that correspond to split facets of the matroid
POLYTOPE
. The facets are either hypersimplex facets or splits Type:

TRANSVERSAL
Whether the matroid is transversal, i.e., has a transversal presentation.
 Type:

TUTTE_POLYNOMIAL
The Tutte polynomial of a matroid. It is a polynomial in the two variables x and y, which are chosen such that the tutte polynomial of a single coloop is x and the tutte polynomial of a single loop is y.
 Type:

UNIFORM
Whether the matroid is a uniform matroid.
 Type:
 Example:
> print uniform_matroid(2,4)>UNIFORM; true
Axiom systems
These are properties that form (part of) an axiom system defining a matroid. Most of these can be used to create a matroid.

BASES
Subsets of the ground set which form the bases of the matroid. Note that if you want to define a matroid via its bases, you should also specify
N_ELEMENTS
, because we allow matroids with loops.

CIRCUITS
Circuits, i.e., minimally dependent sets.

LATTICE_OF_CYCLIC_FLATS
The lattice of cyclic flats of the matroid. A flat is a cyclic flat, if and only if it is a union of circuits. Their ranks can also be read off of this property using nodes_of_dim(..)
 Type:

LATTICE_OF_FLATS
The lattice of flats. This is a graph with all closed sets as nodes and inclusion relations as edges.
 Type:

MATROID_HYPERPLANES
Hyperplanes, i.e., flats of rank
RANK
1. Type:

NON_BASES
 Type:
 Example:
Some matroids are more efficiently characterized by listing the nonbases.
> $M = new Matroid(RANK=>2, N_ELEMENTS=>4, NON_BASES=>[]);
Duality
Enumerative properties
These are properties of a matroid that count something.

N_AUTOMORPHISMS
The order of the
AUTOMORPHISM_GROUP
of the matroid. Type:
 Example:
The automorphism group of the Fano matroid is SL(3,2) of order 168.
> print fano_matroid()>N_AUTOMORPHISMS; 168

N_BASES
The number of
BASES
. Type:
 Example:
The bases of the Fano matroid correspond to the 28 nonlinear triples of points in the projective plane over GF2.
> print fano_matroid()>N_BASES; 28

N_CIRCUITS
The number of
CIRCUITS
. The circuits of the Fano matroid correspond to the seven lines in the the projective plane over GF2 and their complements. > print fano_matroid()→N_CIRCUITS;  14 Type:

N_CYCLIC_FLATS
The number of cyclic flats, i.e. the number of nodes in
LATTICE_OF_CYCLIC_FLATS
. Type:
 Example:
In the uniform matroid U(2,4) only the empty set and the entire set of all elements form cyclic flats.
> print uniform_matroid(2,4)>N_CYCLIC_FLATS; 2

N_ELEMENTS
Size of the ground set. The ground set itself always consists of the first integers starting with zero.
 Type:
 Example:
The elements of the Fano matroid correspond to the seven points of the projective plane over GF2.
> print fano_matroid()>N_ELEMENTS; 7

N_FLATS
The number of flats, i.e. the number of nodes in
LATTICE_OF_FLATS
. Type:
 Example:
The uniform matroid U(2,4) has six flats.
> print uniform_matroid(2,4)>N_FLATS; 6

N_LOOPS
The number of
LOOPS
. Type:
 Example:
The uniform matroids do not have any loops.
> print uniform_matroid(2,4)>N_LOOPS; 0

N_MATROID_HYPERPLANES
The number of
MATROID_HYPERPLANES
 Type:
 Example:
Every one of the four elements of the uniform matroid U(2,4) yields a hyperplane.
> print uniform_matroid(2,4)>N_MATROID_HYPERPLANES; 4

RANK
Rank of the matroid, i.e., number of elements in each basis.
 Type:
 Example:
The nonFano matroid is realizable over any field, unless the chracteristic is 2.
> print non_fano_matroid()>RANK; 3
Input properties
These are properties that can be used to define a matroid, but do not actually constitute an axiom system.

TRANSVERSAL_PRESENTATION
A transversal matroid can be defined via a multiset of subsets of the ground set (0,…,n1) (i.e.,
N_ELEMENTS
needs to be specified). Its bases are the maximal matchings of the bipartite incidence graph. Type:
Realizability
Functions related to the realizability over certain fields.

BINARY
Whether or not the matroid is representable over GF(2).
 Type:

BINARY_VECTORS
If the matroid is realizable over the field GF(2) with two elements, this property may contain coordinates for some realization.
 Type:

TERNARY
Whether the matroid is representable over GF(3). NOTE: the property my be 'undef' when polymake is unable to decide whether the matroid is ternary.
 Type:

TERNARY_VECTORS
If the matroid is realizable over the field GF(3) with three elements, this property may contain coordinates for some realization.
 Type:

VECTORS
If the matroid is realizable over the rationals, this property contains coordinates for some realization. Specifying (rational) coordinates is one way to define a matroid. See also
BINARY_VECTORS
andTERNARY_VECTORS
for realization over GF(2) and GF(3). Type:
Other
Special purpose properties.

LABELS
Unique names assigned to the elements of the matroid. For a matroid built from scratch, you should create this property by yourself. the labels may be assigned for you in a meaningful way. If you build the matroid with a construction client, (e.g.
matroid_from_graph
) the labels may be assigned for you in a meaningful way. Type:
Methods
Advanced properties
More complex properties of the matroid.

COTRANSVERSAL
Whether the dual of the matroid is transversal, i.e. same as
TRANSVERSAL

STRICT_GAMMOID
Alias for
COTRANSVERSAL
Axiom systems
These are methods that form (part of) an axiom system defining a matroid. Most of these can be used to create a matroid.

COCIRCUITS

COLOOPS

rank()
calculate the rank of a set with respect to a given matroid
 Returns: