Available versions of this document: latest release, 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,…,n-1}. Here n is the same as N_ELEMENTS.

Permutations:
BasesPerm:

permuting the BASES

HyperplanePerm:

UNDOCUMENTED

More complex properties of the matroid.

AUTOMORPHISM_GROUP

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

Type:
Group

BETA_INVARIANT

The coefficient of x of the Tutte polynomial

Type:
Integer

BINARY

Whether the matroid is representable over GF(2)

Type:
Bool

BINARY_VECTORS

If the matroid is realizable over the field GF(2) with two elements, this property contains coordinates for some realization.

Type:
Matrix<Int,NonSymmetric>

CATENARY_G_INVARIANT

This is an equivalent characterization of the G_INVARIANT given by Bonin and Kung ([Bonin, Kung: The G-invariant 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 \ Fi-1| 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:
Map<Vector<Int>,Integer>

CONNECTED

Whether the matroid is connected

Type:
Bool

CONNECTED_COMPONENTS

The connected components

Type:
Array<Set<Int>>

F_VECTOR

The f-vector of a matroid

Type:
Vector<Integer>

G_INVARIANT

The G-invariant of the matroid (see [Derksen: Symmetric and quasi-symmetric functions associated to polymatroids, J. Algebr. Comb. 30 (2009), 43-86]) We use the formulation by Bonin and Kung in [Bonin, Kung: The G-invariant and catenary data of a matroid (2015)]: The G-invariant is an element of the free abelian group over all (n,r)-sequences (where n = N_ELEMENTS and r = RANK), i.e. 0/1-sequences (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 G-invariant can be represented as a map which takes an r-set 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(j-1)}). Then G(M) := sum_p r(p), where the sum runs over all permutations p.

Type:
Map<Set<Int>,Integer>

H_VECTOR

The h-vector of a matroid

Type:
Vector<Integer>

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:
Bool

LAMINAR

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

Type:
Bool

LOOPS

Loops

Type:
Set<Int>

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:
IncidenceMatrix<NonSymmetric>

NESTED

Whether the matroid is nested, i.e. its LATTICE_OF_CYCLIC_FLATS is a chain.

Type:
Bool

N_CONNECTED_COMPONENTS

The number of CONNECTED_COMPONENTS

Type:
Int

PAVING

Whether the matroid is paving

Type:
Bool

POLYTOPE

Polytope whose vertices are the characteristic vectors of the bases.

Type:
Polytope<Rational>

REGULAR

Whether the matroid is representable over every field, that is the repesentation is unimodular. NOTE: the property is 'undef' when it's hard to decide whether the matroid is ternary.

Type:
Bool

REVLEX_BASIS_ENCODING

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

Type:
String

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:
Bool

SERIES_PARALLEL

Whether the matroid is series-parallel

Type:
Bool

SIMPLE

Whether the matroid is simple.

Type:
Bool

SPARSE_PAVING

Whether the matroid is sparse_paving, i.e both the matroid and it's dual are paving

Type:
Bool

SPLIT

Whether all SPLIT_FLACETS in the matroid are compatible.

Type:
Bool

SPLIT_FLACETS

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

Type:
Array<Array<Set<Int>>>

TERNARY

Whether the matroid is representable over GF(3) NOTE: the property may be 'undef' if the current implementation cannot decide.

Type:
Bool

TERNARY_VECTORS

If the matroid is realizable over the field GF(3) with three elements, this property contains coordinates for some realization.

Type:
Matrix<Int,NonSymmetric>

TRANSVERSAL

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

Type:
Bool

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:
Polynomial<Rational,Int>

UNIFORM

Whether the matroid is a uniform matroid

Type:
Bool

### 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.

Type:
Array<Set<Int>>

CIRCUITS

Circuits, i.e., minimal dependent sets.

Type:
Array<Set<Int>>

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<BasicDecoration,Sequential>

LATTICE_OF_FLATS

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

Type:
Lattice<BasicDecoration,Sequential>

MATROID_HYPERPLANES

Hyperplanes, i.e. flats of rank RANK-1.

Type:
Array<Set<Int>>

NON_BASES

All subsets of the ground sets with cardinality RANK that are not bases.

Type:
Array<Set<Int>>

### Duality

properties related to duality and dual properties.

DUAL

The dual matroid.

Type:
Matroid

### Enumerative properties

These are properties of a matroid that count something.

N_AUTOMORPHISMS

The order of the AUTOMORPHISM_GROUP of the matroid.

Type:
Int

N_BASES

The number of BASES.

Type:
Int

N_CIRCUITS

The number of CIRCUITS.

Type:
Int

N_CYCLIC_FLATS

The number of cyclic flats, i.e. the number of nodes in LATTICE_OF_CYCLIC_FLATS.

Type:
Int

N_ELEMENTS

Size of the ground set. The ground set itself always consists of the first integers starting with zero.

Type:
Int

N_FLATS

The number of flats, i.e. the number of nodes in LATTICE_OF_FLATS.

Type:
Int

N_LOOPS

The number of LOOPS.

Type:
Int

N_MATROID_HYPERPLANES

The number of MATROID_HYPERPLANES

Type:
Int

RANK

Rank of the matroid, i.e., number of elements in each basis.

Type:
Int

### 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,…,n-1) (i.e. N_ELEMENTS needs to be specified). Its bases are the maximal matchings of the bipartite incidence graph.

Type:
Array<Set<Int>>

VECTORS

If the matroid is realizable over the rationals, this property contains coordinates for some realization. Specifying coordinates is one way to define a matroid.

Type:
Matrix<Rational,NonSymmetric>

### 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:
Array<String>

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

is_isomorphic_to(Matroid M)
Parameters:

Matroid M

Returns:
Bool

### 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:
Int

### Enumerative properties

These are methods of a matroid that count something.

N_COCIRCUITS

N_COLOOPS

• documentation/latest/matroid/matroid.txt