structure Matroid.Rep {Ξ± : Type u_1} (M : Matroid Ξ±) (π½ : Type u_7) (W : Type u_8) [Semiring π½] [AddCommMonoid W] [Module π½ W] :
Type (max u_1 u_8)
M.Rep π½ W is a function from Ξ± to a module W that represents M.
- to_fun : Ξ± β W
Instances For
@[instance_reducible]
instance Matroid.instFunLikeRep {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] :
@[simp]
theorem Matroid.Rep.to_fun_eq_coe {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.indep_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {I : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.onIndep {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {I : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (hI : M.Indep I) :
LinearIndepOn π½ (βv) I
theorem Matroid.Rep.injOn_of_indep {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {I : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (hI : M.Indep I) :
Set.InjOn (βv) I
theorem Matroid.Rep.isBasis'_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {I X : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) :
M.IsBasis' I X β I β X β§ LinearIndepOn π½ (βv) I β§ βv '' X β β(Submodule.span π½ (βv '' I))
theorem Matroid.Rep.mem_closure_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {X : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (heE : e β M.E := by aesop_mat) :
theorem Matroid.Rep.closure_eq {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (X : Set Ξ±) :
theorem Matroid.Rep.mem_closure_iff' {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {X : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.eq_zero_iff_not_indep {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] {v : M.Rep π½ W} :
theorem Matroid.Rep.eq_zero_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (e : Ξ±) (he : e β M.E := by aesop_mat) :
theorem Matroid.Rep.eq_zero_of_notMem_ground {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (he : e β M.E) :
theorem Matroid.Rep.eq_zero_of_isLoop {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (h : M.IsLoop e) :
theorem Matroid.Rep.ne_zero_of_isNonloop {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (h : M.IsNonloop e) :
theorem Matroid.Rep.ne_zero_iff_isNonloop {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (e : Ξ±) :
theorem Matroid.Rep.support_subset_ground {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) :
Function.support βv β M.E
theorem Matroid.Rep.mem_ground_of_apply_ne_zero {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] {v : M.Rep π½ W} (hv : v e β 0) :
theorem Matroid.Indep.rep_apply_ne_zero_of_mem {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e : Ξ±} {I : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] {v : M.Rep π½ W} (hI : M.Indep I) (heI : e β I) :
theorem Matroid.Rep.span_le_of_closure_subset {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {X Y : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (hXY : M.closure X β M.closure Y) :
theorem Matroid.Rep.closure_subset_iff_span_le {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {X Y : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.span_closure_congr {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {X Y : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (hXY : M.closure X = M.closure Y) :
theorem Matroid.Rep.span_closure_congr_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {X Y : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) :
@[simp]
theorem Matroid.Rep.span_image_loops {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.skew_iff_span_disjoint {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {X Y : Set Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (hXE : X β M.E) (hYE : Y β M.E) :
Constructors #
def Matroid.Rep.ofGround {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : Ξ± β W) (h_support : Function.support v β M.E) (h_indep : β I β M.E, M.Indep I β LinearIndepOn π½ v I) :
M.Rep π½ W
A function with support contained in M.E that gives the correct independent sets
within the ground set gives a representation
Equations
- Matroid.Rep.ofGround v h_support h_indep = { to_fun := v, indep_iff' := β― }
Instances For
@[simp]
theorem Matroid.Rep.ofGround_to_fun {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : Ξ± β W) (h_support : Function.support v β M.E) (h_indep : β I β M.E, M.Indep I β LinearIndepOn π½ v I) (aβ : Ξ±) :
@[simp]
theorem Matroid.Rep.ofGround_apply {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (f : Ξ± β W) (hs : Function.support f β M.E) (hf : β I β M.E, M.Indep I β LinearIndependent (ΞΉ := βI) π½ (I.domRestrict f)) (a : Ξ±) :
noncomputable def Matroid.Rep.ofSubtypeFun {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (f : βM.E β W) [DecidablePred fun (x : Ξ±) => x β M.E] (hf : β (I : Set βM.E), M.Indep (Subtype.val '' I) β LinearIndepOn π½ f I) :
M.Rep π½ W
A function from M.E to a module determines a representation
Equations
- Matroid.Rep.ofSubtypeFun f hf = Matroid.Rep.ofGround (fun (a : Ξ±) => if ha : a β M.E then f β¨a, haβ© else 0) β― β―
Instances For
@[simp]
theorem Matroid.Rep.ofSubtypeFun_to_fun {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (f : βM.E β W) [DecidablePred fun (x : Ξ±) => x β M.E] (hf : β (I : Set βM.E), M.Indep (Subtype.val '' I) β LinearIndepOn π½ f I) (a : Ξ±) :
noncomputable def Matroid.Rep.restrict {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (X : Set Ξ±) :
A representation gives a representation of any restriction
Equations
- v.restrict X = Matroid.Rep.ofGround (X.indicator βv) β― β―
Instances For
@[simp]
theorem Matroid.Rep.restrict_apply {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] (v : M.Rep π½ W) (X : Set Ξ±) :
@[simp]
theorem Matroid.Rep.ne_zero {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] [M.Loopless] [M.OnUniv] (v : M.Rep π½ W) (e : Ξ±) :
theorem Matroid.Rep.loopless_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) :
theorem Matroid.Rep.parallel_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e f : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (he : M.IsNonloop e) :
theorem Matroid.Rep.parallel_iff' {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {e f : Ξ±} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) (he : M.IsNonloop e) :
theorem Matroid.Rep.simple_iff {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] [M.RankPos] (v : M.Rep π½ W) :
theorem Matroid.Rep.injOn_of_simple {Ξ± : Type u_1} {W : Type u_3} {π½ : Type u_5} {M : Matroid Ξ±} [DivisionRing π½] [AddCommGroup W] [Module π½ W] [Module.IsTorsionFree π½ W] (v : M.Rep π½ W) [h : M.Simple] :