Matroid Minors #
For M : Matroid α
and X : Set α
, we can remove the elements of X
from M
to obtain a matroid with ground set M.E \ X
in two different ways: 'deletion' and 'contraction'.
The deletion of X
from M
, denoted M \ X
, is the matroid whose independent sets are the
independent sets of M
that are disjoint from X
. The contraction of X
is the matroid M / X
in which a set I
is independent if and only if I ∪ J
is independent in M
,
where J
is an arbitrarily chosen basis for X
.
We also have M \ X = M ↾ (M.E \ X)
and (a little more cryptically) M / X = (M✶ \ X)✶
.
We use these as the definitions, and prove that the independent sets are the same as those just
specified.
A matroid obtained from M
by a sequence of deletions/contractions
(or equivalently, by a single deletion and a single contraction) is a minor of M
.
This gives a partial order on Matroid α
that is ubiquitous in matroid theory,
and interacts nicely with duality and linear representations.
Main Declarations #
Matroid.delete M D
, writtenM \ D
, is the restriction ofM
to the setM.E \ D
.Matroid.contract M C
, writtenM / C
, is the matroid on ground setM.E \ C
in which a setI ⊆ M.E \ C
is independent if and only ifI ∪ J
is independent inM
, whereJ
is an arbitrary basis forC
.Matroid.contract_dual M C : (M / X)✶ = M✶ \ X
; the dual of contraction is deletion.Matroid.delete_dual M C : (M \ X)✶ = M✶ / X
; the dual of deletion is contraction.
Naming conventions #
We use the abbreviations deleteElem
and contractElem
in lemma names to refer to the
deletion M \ {e}
or contraction M / {e}
of a single element e : α
from M : Matroid α
.
M \ D
refers to the deletion of a set D
from the matroid M
.
Equations
- Matroid.«term_\_» = Lean.ParserDescr.trailingNode `Matroid.«term_\_» 75 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " \ ") (Lean.ParserDescr.cat `term 76))
Instances For
Alias of the reverse direction of Matroid.delete_eq_self_iff
.
The contraction M / C
is the matroid on M.E \ C
in which a set I ⊆ M.E \ C
is independent
if and only if I ∪ J
is independent, where J
is an arbitrarily chosen basis for C
.
It is also equal to (M✶ \ C)✶
, and is defined this way so we don't have to give
a separate proof that it is actually a matroid.
(Currently the proof it has the correct independent sets is TODO. )
Instances For
M / C
refers to the contraction of a set C
from the matroid M
.
Equations
- Matroid.«term_/_» = Lean.ParserDescr.trailingNode `Matroid.«term_/_» 75 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " / ") (Lean.ParserDescr.cat `term 76))