M.IsFiniteRankUniform a means that M is a uniform matroid of rank a ∈ ℕ.
- isUniform : M.IsUniform
Instances For
theorem Matroid.IsFiniteRankUniform.le {α : Type u_1} {M : Matroid α} {a : ℕ} (h : M.IsFiniteRankUniform a) :
theorem Matroid.IsFiniteRankUniform.rankFinite {α : Type u_1} {M : Matroid α} {a : ℕ} (h : M.IsFiniteRankUniform a) :
theorem Matroid.IsFiniteRankUniform.eq_unifOn {α : Type u_1} {M : Matroid α} {a : ℕ} (h : M.IsFiniteRankUniform a) :
theorem Matroid.unifOn_isFiniteRankUniform {α : Type u_1} {E : Set α} {a : ℕ} (haE : ↑a ≤ E.encard) :
(unifOn E a).IsFiniteRankUniform a
theorem Matroid.IsFiniteRankUniform.restrict {α : Type u_1} {M : Matroid α} {a : ℕ} (hM : M.IsFiniteRankUniform a) {R : Set α} (hRX : R ⊆ M.E) (haR : ↑a ≤ R.encard) :
(M.restrict R).IsFiniteRankUniform a
theorem Matroid.IsFiniteRankUniform.map {α : Type u_1} {M : Matroid α} {a : ℕ} (hM : M.IsFiniteRankUniform a) {β : Type u_2} {f : α → β} (hf : Set.InjOn f M.E) :
(M.map f hf).IsFiniteRankUniform a
theorem Matroid.IsUniform.isFiniteRankUniform {α : Type u_1} {M : Matroid α} [M.RankFinite] (hM : M.IsUniform) :
∃ (a : ℕ), M.IsFiniteRankUniform a
A uniform matroid whose rank is finite is one of the obvious ones.
theorem Matroid.IsUniform.isFiniteRankUniform_of_finitary {α : Type u_1} {M : Matroid α} [M.Finitary] [M✶.RankPos] (hM : M.IsUniform) :
∃ (a : ℕ), M.IsFiniteRankUniform a
A finitary non-free uniform matroid is a finite-rank uniform matroid.
@[simp]
theorem Matroid.IsFiniteRankUniform.of_iso {α : Type u_1} {M : Matroid α} {a : ℕ} (hM : M.IsFiniteRankUniform a) {β : Type u_2} {N : Matroid β} (e : M ≂ N) :
The restriction of M to X is a rank-a uniform matroid
- isFiniteRankUniform : (M.restrict X).IsFiniteRankUniform a
- subset_ground : X ⊆ M.E
Instances For
theorem Matroid.IsFiniteRankUniformOn.eRk {α : Type u_1} {M : Matroid α} {X : Set α} {a : ℕ} (h : M.IsFiniteRankUniformOn a X) :
theorem Matroid.IsFiniteRankUniform.isFiniteRankUniformOn_of_restrict' {α : Type u_1} {M : Matroid α} {X : Set α} {a : ℕ} (h : (M.restrict X).IsFiniteRankUniform a) (ha : a ≠ 0) :
M.IsFiniteRankUniformOn a X
@[simp]
theorem Matroid.IsFiniteRankUniform.isFiniteRankUniformOn_of_restrict {α : Type u_1} {M : Matroid α} {X : Set α} {a : ℕ} (h : (M.restrict X).IsFiniteRankUniform a) (hXE : X ⊆ M.E := by aesop_mat) :
M.IsFiniteRankUniformOn a X
theorem Matroid.IsFiniteRankUniformOn.subset {α : Type u_1} {M : Matroid α} {X Y : Set α} {a : ℕ} (h : M.IsFiniteRankUniformOn a X) (hYX : Y ⊆ X) (hY : ↑a ≤ Y.encard) :
M.IsFiniteRankUniformOn a Y
theorem Matroid.IsFiniteRankUniform.contract {α : Type u_1} {M : Matroid α} {C : Set α} {a b : ℕ} (h : M.IsFiniteRankUniform a) (hC : C ⊆ M.E) (hab : ↑a = ↑b + C.encard) :
(M.contract C).IsFiniteRankUniform b
theorem Matroid.IsFiniteRankUniform.contractElem {α : Type u_1} {M : Matroid α} {e : α} {a : ℕ} (h : M.IsFiniteRankUniform (a + 1)) (he : e ∈ M.E) :
(M.contract {e}).IsFiniteRankUniform a
structure Matroid.IsFiniteUniform {α : Type u_1} (M : Matroid α) (a b : ℕ) (n : ℕ := a + b) extends M.IsFiniteRankUniform a :
M.IsFiniteUniform a b n means that M is a finite uniform matroid of rank a and corank b,
with n elements.
We have a + b = n for every such matroid, but the redundancy helps with duality.
Instances For
theorem Matroid.IsFiniteUniform.finite {α : Type u_1} {M : Matroid α} {a b n : ℕ} (hM : M.IsFiniteUniform a b n) :
M.Finite
theorem Matroid.IsFiniteUniform.add_eq {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.le_left {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.le_right {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.isFiniteUniform_add {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
M.IsFiniteUniform a b
theorem Matroid.IsFiniteUniform.congr₃ {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) {m : ℕ} (hm : m = a + b) :
M.IsFiniteUniform a b m
@[simp]
theorem Matroid.IsFiniteUniform.sub_eq_left {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
@[simp]
theorem Matroid.IsFiniteUniform.sub_eq_right {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.loopless_iff {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.simple_iff {α : Type u_1} {M : Matroid α} {a b n : ℕ} (h : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.dual {α : Type u_1} {M : Matroid α} {a b n : ℕ} :
M.IsFiniteUniform b a n → M✶.IsFiniteUniform a b n
Alias of the reverse direction of Matroid.isFiniteUniform_dual_iff.
theorem Matroid.IsFiniteUniform.of_dual {α : Type u_1} {M : Matroid α} {a b n : ℕ} :
M✶.IsFiniteUniform a b n → M.IsFiniteUniform b a n
Alias of the forward direction of Matroid.isFiniteUniform_dual_iff.
theorem Matroid.IsFiniteUniform.dual' {α : Type u_1} {M : Matroid α} {a b : ℕ} (h : M.IsFiniteUniform a b) :
M✶.IsFiniteUniform b a
theorem Matroid.IsFiniteUniform.dual_eq_self {α : Type u_1} {M : Matroid α} {a b : ℕ} (h : M.IsFiniteUniform a a b) :
theorem Matroid.IsFiniteUniform.bDual_eq_self {α : Type u_1} {M : Matroid α} {a b : ℕ} (h : M.IsFiniteUniform a a b) (d : Bool) :
theorem Matroid.IsFiniteUniform.contractElem {α : Type u_1} {M : Matroid α} {e : α} {a b n : ℕ} (h : M.IsFiniteUniform (a + 1) b (n + 1)) (he : e ∈ M.E) :
(M.contract {e}).IsFiniteUniform a b n
theorem Matroid.IsFiniteUniform.deleteElem {α : Type u_1} {M : Matroid α} {e : α} {a b n : ℕ} (h : M.IsFiniteUniform a (b + 1) (n + 1)) (he : e ∈ M.E) :
(M.delete {e}).IsFiniteUniform a b n
theorem Matroid.IsFiniteUniform.contractElem' {α : Type u_1} {M : Matroid α} {e : α} {a b : ℕ} (h : M.IsFiniteUniform (a + 1) b) (he : e ∈ M.E) :
(M.contract {e}).IsFiniteUniform a b
theorem Matroid.IsFiniteUniform.deleteElem' {α : Type u_1} {M : Matroid α} {e : α} {a b : ℕ} (h : M.IsFiniteUniform a (b + 1)) (he : e ∈ M.E) :
(M.delete {e}).IsFiniteUniform a b
theorem Matroid.IsFiniteUniform.nonempty_iso_unif {α : Type u_1} {M : Matroid α} {a b n : ℕ} (hM : M.IsFiniteUniform a b n) :
theorem Matroid.IsFiniteUniform.nonempty_iso {α : Type u_1} {M : Matroid α} {a b n : ℕ} (hM : M.IsFiniteUniform a b n) {β : Type u_2} {N : Matroid β} {m : ℕ} (hN : N.IsFiniteUniform a b m) :
Two finite uniform matroids with the same parameters are isomorphic.
theorem Matroid.IsFiniteUniform.of_iso {α : Type u_1} {M : Matroid α} {a b n : ℕ} (hM : M.IsFiniteUniform a b n) {β : Type u_2} {N : Matroid β} (e : M ≂ N) :
N.IsFiniteUniform a b n
theorem Matroid.IsUniform.exists_eq_unifOn_of_finitary {α : Type u_1} {M : Matroid α} [M.Finitary] [M✶.RankPos] (hM : M.IsUniform) :
A finitary non-free uniform matroid is one of the obvious ones.
maybe use IsFiniteRankUniform instead
theorem Matroid.isUniform_of_eRank_add_one_le_girth {α : Type u_1} {M : Matroid α} [M.RankFinite] (hM : M.eRank + 1 ≤ M.girth) :
theorem Matroid.isFiniteRankUniform_of_eRank_le_two {α : Type u_1} {M : Matroid α} [M.Simple] (hM : M.eRank ≤ 2) (hnt : M.E.Nontrivial) :