Documentation

Matroid.Minor.Contract

@[simp]
theorem Matroid.freeOn_contract {α : Type u_1} (E X : Set α) :
(freeOn E).contract X = freeOn (E \ X)
@[simp]
theorem Matroid.loopyOn_contract {α : Type u_1} (E X : Set α) :
(loopyOn E).contract X = loopyOn (E \ X)
theorem Matroid.contract_eq_loopyOn_of_spanning {α : Type u_1} {M : Matroid α} {C : Set α} (h : M.Spanning C) :
M.contract C = loopyOn (M.E \ C)
@[simp]
theorem Matroid.contract_ground_self {α : Type u_1} (M : Matroid α) :
theorem Matroid.contract_map {α : Type u_1} {β : Type u_2} {M : Matroid α} {f : αβ} (hf : Set.InjOn f M.E) {C : Set α} (hC : C M.E) :
(M.contract C).map f = (M.map f hf).contract (f '' C)
theorem Matroid.contract_comap {α : Type u_1} {β : Type u_2} (M : Matroid β) (f : αβ) {C : Set β} (hC : C Set.range f) :
(M.contract C).comap f = (M.comap f).contract (f ⁻¹' C)
@[simp]
theorem Matroid.sum_contract {α : Type u_2} {β : Type u_3} (M : Matroid α) (N : Matroid β) (C : Set (α β)) :
theorem Matroid.contract_closure_congr {α : Type u_1} {M : Matroid α} {X Y : Set α} (h : M.closure X = M.closure Y) (C : Set α) :
theorem Matroid.contract_codep_iff {α : Type u_1} {M : Matroid α} {C X : Set α} :
theorem Matroid.contractElem_of_notMem_ground {α : Type u_1} {M : Matroid α} {e : α} (he : eM.E) :
theorem Matroid.contract_nonspanning_iff {α : Type u_1} {M : Matroid α} {C X : Set α} (hC : C M.E := by aesop_mat) :
theorem Matroid.contract_rankPos_iff {α : Type u_1} {M : Matroid α} {C : Set α} (hC : C M.E := by aesop_mat) :
theorem Matroid.Nonspanning.contract_rankPos {α : Type u_1} {M : Matroid α} {C : Set α} (hC : M.Nonspanning C) :
theorem Matroid.girth_le_girth_contract_add {α : Type u_1} (M : Matroid α) (C : Set α) :
M.girth (M.contract C).girth + M.eRk C
theorem Matroid.Dep.contract_of_delete {α : Type u_1} {M : Matroid α} {X D : Set α} (hX : (M.delete X).Dep (D \ X)) :
(M.contract X).Dep (D \ X)
theorem Matroid.Dep.contract_of_disjoint {α : Type u_1} {M : Matroid α} {C D : Set α} (hD : M.Dep D) (hDC : Disjoint D C) :
(M.contract C).Dep D
theorem Matroid.Dep.contract_of_indep {α : Type u_1} {M : Matroid α} {I D : Set α} (hD : M.Dep D) (hI : M.Indep (D I)) :
(M.contract I).Dep (D \ I)

Contracting a set whose intersection with D is independent never turns a dependent set D into an independent set.

theorem Matroid.Codep.of_contract {α : Type u_1} {M : Matroid α} {C X : Set α} (h : (M.contract C).Codep X) :
M.Codep X
theorem Matroid.Coindep.of_contract {α : Type u_1} {M : Matroid α} {I C : Set α} (h : (M.contract C).Coindep I) :
theorem Matroid.Codep.of_delete {α : Type u_1} {M : Matroid α} {X D : Set α} (h : (M.delete D).Codep X) (hD : D M.E := by aesop_mat) :
M.Codep (X D)
theorem Matroid.IsRestriction.contract {α : Type u_1} {M N : Matroid α} {C : Set α} (h : N.IsRestriction M) (hC : C N.E) :
theorem Matroid.IsSpanningRestriction.contract {α : Type u_1} {M N : Matroid α} {C : Set α} (h : N.IsSpanningRestriction M) (hC : C N.E) :
theorem Matroid.Nonspanning.of_contract {α : Type u_1} {M : Matroid α} {C X : Set α} (h : (M.contract C).Nonspanning X) :