Some constructions of matroids #
This file defines some very elementary examples of matroids, namely those with at most one base.
Main definitions #
emptyOn αis the matroid onαwith empty ground set.
For E : Set α, ...
loopyOn Eis the matroid onEwhose elements are all loops, or equivalently in which∅is the only base.freeOn Eis the 'free matroid' whose ground setEis the only base.- For
I ⊆ E,uniqueBaseOn I Eis the matroid with ground setEin whichIis the only base.
Implementation details #
To avoid the tedious process of certifying the matroid axioms for each of these easy examples,
we bootstrap the definitions starting with emptyOn α (which simp can prove is a matroid)
and then construct the other examples using duality and restriction.
The Matroid α with empty ground set.
Instances For
@[simp]
@[simp]
@[simp]
The Matroid α with ground set E whose only base is ∅.
The elements are all 'loops' - see Matroid.IsLoop and Matroid.loopyOn_isLoop_iff.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
The Matroid α with ground set E whose only base is E.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
The matroid on E whose unique base is the subset I of E.
Intended for use when I ⊆ E; if this is not the case, then the base is I ∩ E.
Instances For
@[simp]
theorem
Matroid.uniqueBaseOn_isBase_iff
{α : Type u_1}
{E B I : Set α}
(hIE : I ⊆ E)
:
(uniqueBaseOn I E).IsBase B ↔ B = I
theorem
Matroid.uniqueBaseOn_inter_ground_eq
{α : Type u_1}
(I E : Set α)
:
uniqueBaseOn (I ∩ E) E = uniqueBaseOn I E
@[simp]
theorem
Matroid.uniqueBaseOn_indep_iff'
{α : Type u_1}
{E I J : Set α}
:
(uniqueBaseOn I E).Indep J ↔ J ⊆ I ∩ E
theorem
Matroid.uniqueBaseOn_indep_iff
{α : Type u_1}
{E I J : Set α}
(hIE : I ⊆ E)
:
(uniqueBaseOn I E).Indep J ↔ J ⊆ I
theorem
Matroid.uniqueBaseOn_isBasis_iff
{α : Type u_1}
{E I X J : Set α}
(hX : X ⊆ E)
:
(uniqueBaseOn I E).IsBasis J X ↔ J = X ∩ I
theorem
Matroid.uniqueBaseOn_inter_isBasis
{α : Type u_1}
{E I X : Set α}
(hX : X ⊆ E)
:
(uniqueBaseOn I E).IsBasis (X ∩ I) X
@[simp]
theorem
Matroid.uniqueBaseOn_dual_eq
{α : Type u_1}
(I E : Set α)
:
(uniqueBaseOn I E)✶ = uniqueBaseOn (E \ I) E
@[simp]
@[simp]
theorem
Matroid.uniqueBaseOn_restrict'
{α : Type u_1}
(I E R : Set α)
:
(uniqueBaseOn I E).restrict R = uniqueBaseOn (I ∩ R ∩ E) R
theorem
Matroid.uniqueBaseOn_restrict
{α : Type u_1}
{E I : Set α}
(h : I ⊆ E)
(R : Set α)
:
(uniqueBaseOn I E).restrict R = uniqueBaseOn (I ∩ R) R
theorem
Matroid.uniqueBaseOn_rankFinite
{α : Type u_1}
{E I : Set α}
(hI : I.Finite)
:
(uniqueBaseOn I E).RankFinite
theorem
Matroid.uniqueBaseOn_rankPos
{α : Type u_1}
{E I : Set α}
(hIE : I ⊆ E)
(hI : I.Nonempty)
:
(uniqueBaseOn I E).RankPos