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 setB
is a base if and only ifB ⊆ M.E
andM.E \ B
is a base forM
. -
M.Coindep X
meansM﹡.Indep X
, or equivalently thatX
is contained inM.E \ B
for some baseB
ofM
.
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
- (_ : Matroid.Finite M﹡) = (_ : Matroid.Finite M﹡)
Equations
- (_ : Matroid.Nonempty M﹡) = (_ : Matroid.Nonempty M﹡)
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