Matroid Duality #
For a matroid M on ground set E, the collection of complements of the bases of M is the
collection of bases of another matroid on E called the 'dual' of M.
The map from M to its dual is an involution, interacts nicely with minors,
and preserves many important matroid properties such as representability and connectivity.
This file defines the dual matroid M﹡ of M, and gives associated API. The definition
is in terms of its independent sets, using IndepMatroid.matroid.
We also define 'Co-independence' (independence in the dual) of a set as a predicate M.Coindep X.
This is an abbreviation for M﹡.Indep X, but has its own name for the sake of dot notation.
Main Definitions #
-
M.Dual, writtenM﹡, is the matroid in which a setBis a base if and only ifB ⊆ M.EandM.E \ Bis a base forM. -
M.Coindep XmeansM﹡.Indep X, or equivalently thatXis contained inM.E \ Bfor some baseBofM.
Given M : Matroid α, the IndepMatroid α whose independent sets are
the subsets of M.E that are disjoint from some base of M
Equations
- One or more equations did not get rendered due to their size.
Instances For
The dual of a matroid; the bases are the complements (w.r.t M.E) of the bases of M.
Equations
Instances For
The ﹡ symbol, which denotes matroid duality.
(This is distinct from the usual * symbol for multiplication, due to precedence issues. )
Equations
- Matroid.«term_﹡» = Lean.ParserDescr.trailingNode `Matroid.term_﹡ 1024 1024 (Lean.ParserDescr.symbol "﹡")
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A coindependent set of M is an independent set of the dual of M﹡. we give it a separate
definition to enable dot notation. Which spelling is better depends on context.
Equations
- Matroid.Coindep M I = M﹡.Indep I