Documentation

Matroid.Connectivity.Separation.Vertical

Vertical Separations #

@[reducible, inline]

A vertical separation is one with both sides nonspanning (or equivalently, with both sides coindependent).

Equations
Instances For
    theorem Matroid.Separation.isVerticalSeparation_of_lt_lt {α : Type u_1} {M : Matroid α} {P : M.Separation} {b : Bool} (h : P.eConn < M.eRk (P b)) (h' : P.eConn < M.eRk (P !b)) :

    Cyclic Separations #

    @[reducible, inline]

    A cyclic separation is one with both sides dependent.

    Equations
    Instances For
      theorem Matroid.Separation.IsCyclicSeparation.dep {α : Type u_1} {M : Matroid α} {P : M.Separation} (h : P.IsCyclicSeparation) (b : Bool) :
      M.Dep (P b)

      Strict Separations #

      @[reducible, inline]

      A strict separation is one where both sides are dependent and nonspanning.

      Equations
      Instances For
        theorem Matroid.Separation.isStrictSeparation_iff {α : Type u_1} {M : Matroid α} {P : M.Separation} :
        P.IsStrictSeparation (∀ (b : Bool), M.Dep (P b)) ∀ (b : Bool), M.Codep (P b)
        theorem Matroid.Separation.isStrictSeparation_iff' {α : Type u_1} {M : Matroid α} {P : M.Separation} :
        P.IsStrictSeparation (∀ (b : Bool), M.Dep (P b)) ∀ (b : Bool), M.Nonspanning (P b)
        theorem Matroid.Separation.IsStrictSeparation.dep {α : Type u_1} {M : Matroid α} {P : M.Separation} (h : P.IsStrictSeparation) (b : Bool) :
        M.Dep (P b)
        theorem Matroid.Separation.IsStrictSeparation.codep {α : Type u_1} {M : Matroid α} {P : M.Separation} (h : P.IsStrictSeparation) (b : Bool) :
        M.Codep (P b)
        theorem Matroid.Separation.isStrictSeparation_iff_eRk {α : Type u_1} {M : Matroid α} {P : M.Separation} (hP : P.eConn ) :
        P.IsStrictSeparation (∀ (b : Bool), P.eConn < M.eRk (P b)) ∀ (b : Bool), P.eConn < M.eRk (P b)

        A Tutte separation with connectivity zero is either strict, or has one side only loops or coloops.

        theorem Matroid.Dep.ofSetSep_isTutteSeparation_of_nonspanning {α : Type u_1} {M : Matroid α} {X : Set α} (hX : M.Dep X) (hX' : M.Nonspanning X) (b : Bool) :
        theorem Matroid.Nonspanning.ofSetSep_isVerticalSeparation {α : Type u_1} {M : Matroid α} {X : Set α} (hX : M.Nonspanning X) (hXc : M.Nonspanning (M.E \ X)) (b : Bool) :
        theorem Matroid.Codep.ofSetSep_isVerticalSeparation {α : Type u_1} {M : Matroid α} {X : Set α} (hX : M.Codep X) (hXc : M.Nonspanning X) (b : Bool) :
        theorem Matroid.Codep.ofSetSep_isTutteSeparation_of_dep_compl {α : Type u_1} {M : Matroid α} {X : Set α} {b : Bool} (hX : M.Codep X) (hXc : M.Dep (M.E \ X)) :
        theorem Matroid.Dep.ofSetSep_isCyclicSeparation {α : Type u_1} {M : Matroid α} {X : Set α} {b : Bool} (hX : M.Dep X) (hXc : M.Dep (M.E \ X)) :
        theorem Matroid.Dep.ofSetSep_isStrictSeparation {α : Type u_1} {M : Matroid α} {X : Set α} {b : Bool} (hX : M.Dep X) (hns : M.Nonspanning X) (hXc : M.Dep (M.E \ X)) (hXsc : M.Nonspanning (M.E \ X)) :
        theorem Matroid.TutteConnected.not_isCyclicSeparation {α : Type u_1} {M : Matroid α} {k : ℕ∞} {P : M.Separation} (h : M.TutteConnected (k + 1)) (hP : P.eConn + 1 k) :
        theorem Matroid.exists_strong_or_small_of_not_tutteConnected {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : ¬M.TutteConnected (k + 1)) (b : Bool) :
        ∃ (P : M.Separation), P.eConn + 1 k P.IsTutteSeparation (P.IsStrictSeparation (P b).encard k (M.Indep (P b) M.IsHyperplane (P !b) M.IsCircuit (P b) M.Spanning (P !b)))

        In a matroid that isn't (k + 1)-connected, there is either a strong separation, or a separation arising from a small circuit or cocircuit.

        Vertical Connectivity #

        theorem Matroid.VerticallyConnected.mono {α : Type u_1} {M : Matroid α} {j k : ℕ∞} (h : M.VerticallyConnected k) (hjk : j k) :
        theorem Matroid.VerticallyConnected.mono' {α : Type u_1} {M : Matroid α} {j k : ℕ∞} (hjk : j k) (h : M.VerticallyConnected k) :
        theorem Matroid.VerticallyConnected.exists_eRk_eq {α : Type u_1} {M : Matroid α} {k : ℕ∞} {P : M.Separation} (h : M.VerticallyConnected (k + 1)) (hP : P.eConn + 1 k) :
        ∃ (i : Bool), M.eRk (P i) = P.eConn
        theorem Matroid.verticallyConnected_iff_forall_exists_eRk_le {α : Type u_1} {M : Matroid α} {k : ℕ∞} (hk : k ) :
        M.VerticallyConnected (k + 1) ∀ (P : M.Separation), P.eConn + 1 k∃ (i : Bool), M.eRk (P i) P.eConn
        theorem Matroid.VerticallyConnected.exists_spanning {α : Type u_1} {M : Matroid α} {k : ℕ∞} {P : M.Separation} (h : M.VerticallyConnected (k + 1)) (hP : P.eConn + 1 k) :
        ∃ (i : Bool), M.Spanning (P i)
        theorem Matroid.VerticallyConnected.exists_coindep {α : Type u_1} {M : Matroid α} {k : ℕ∞} {P : M.Separation} (h : M.VerticallyConnected (k + 1)) (hP : P.eConn + 1 k) :
        ∃ (i : Bool), M.Coindep (P i)
        theorem Matroid.VerticallyConnected.compl_spanning_of_nonspanning_of_eConn_le {α : Type u_1} {M : Matroid α} {k : ℕ∞} {X : Set α} (h : M.VerticallyConnected (k + 1)) (hX : M.Nonspanning X) (hconn : M.eConn X + 1 k) :
        M.Spanning (M.E \ X)
        theorem Matroid.verticallyConnected_top_iff {α : Type u_1} {M : Matroid α} :
        M.VerticallyConnected XM.E, M.Spanning X M.Spanning (M.E \ X)
        @[simp]
        @[simp]
        theorem Matroid.verticallyConnected_of_le_one {α : Type u_1} {k : ℕ∞} (M : Matroid α) (hk : k 1) :
        @[simp]

        Cyclic connectivity #

        def Matroid.CyclicallyConnected {α : Type u_1} (M : Matroid α) (k : ℕ∞) :
        Equations
        Instances For
          theorem Matroid.CyclicallyConnected.mono {α : Type u_1} {M : Matroid α} {j k : ℕ∞} (h : M.CyclicallyConnected k) (hjk : j k) :
          theorem Matroid.CyclicallyConnected.mono' {α : Type u_1} {M : Matroid α} {j k : ℕ∞} (hjk : j k) (h : M.CyclicallyConnected k) :
          theorem Matroid.CyclicallyConnected.compl_indep_of_dep_of_eConn_le {α : Type u_1} {M : Matroid α} {k : ℕ∞} {X : Set α} (h : M.CyclicallyConnected (k + 1)) (hX : M.Dep X) (hXconn : M.eConn X + 1 k) :
          M.Indep (M.E \ X)
          @[simp]
          theorem Matroid.cyclicallyConnected_of_le_one {α : Type u_1} {k : ℕ∞} (M : Matroid α) (hk : k 1) :
          theorem Matroid.IsLoop.not_tutteConnected {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (he : M.IsLoop e) (hME : M.E.Nontrivial) (hk : 1 k) :
          theorem Matroid.IsColoop.not_tutteConnected {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (he : M.IsColoop e) (hME : M.E.Nontrivial) (hk : 1 k) :
          theorem Matroid.CyclicallyConnected.le_girth {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : M.CyclicallyConnected k) (hlt : k M.eRank) :

          This needs the lower bound on co-rank; otherwise an extension of a large free matroid by a loop would be a counterexample for any k.

          theorem Matroid.VerticallyConnected.tutteConnected_of_girth_ge {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : M.VerticallyConnected k) (hk : k ) (h_girth : k M.girth) :
          theorem Matroid.tutteConnected_iff_verticallyConnected_girth {α : Type u_1} {M : Matroid α} {k : ℕ∞} (hlt : 2 * k < M.E.encard + 1) :

          This needs the strict inequality in the hypothesis, since nothing like this can be true for k = ⊤. This is also false for matroids like U₂,₅ if there is no lower bound on size.

          theorem Matroid.VerticallyConnected.contract {α : Type u_1} {M : Matroid α} {k : ℕ∞} {C : Set α} (h : M.VerticallyConnected (k + M.eRk C)) :

          M is vertically 3-connected if and only if its simplification is 3-connected.

          theorem Matroid.TutteConnected.contract {α : Type u_1} {M : Matroid α} {k : ℕ∞} {C : Set α} (h : M.TutteConnected (k + M.eRk C + 1)) (hnt : 2 * (k + M.eRk C) < M.E.encard + 1) :
          theorem Matroid.TutteConnected.delete {α : Type u_1} {M : Matroid α} {k : ℕ∞} {D : Set α} (h : M.TutteConnected (k + M.eRk D + 1)) (hnt : 2 * (k + M.eRk D) < M.E.encard + 1) :
          (M.delete D).TutteConnected (k + 1)
          theorem Matroid.TutteConnected.contractElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : M.TutteConnected (k + 1)) (hnt : 2 * k < M.E.encard + 1) (e : α) :
          theorem Matroid.TutteConnected.deleteElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : M.TutteConnected (k + 1)) (hnt : 2 * k < M.E.encard + 1) (e : α) :
          theorem Matroid.TutteConnected.connected_deleteElem {α : Type u_1} {M : Matroid α} (h : M.TutteConnected (2 + 1)) (h4 : 4 M.E.encard) (e : α) :
          theorem Matroid.TutteConnected.connected_contractElem {α : Type u_1} {M : Matroid α} (h : M.TutteConnected (2 + 1)) (h4 : 4 M.E.encard) (e : α) :
          theorem Matroid.TutteConnected.removeElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} (h : M.TutteConnected (k + 1)) (hnt : 2 * k < M.E.encard + 1) (b : Bool) (e : α) :
          theorem Matroid.TutteConnected.of_isMinor {α : Type u_1} {M N : Matroid α} {k t : ℕ∞} (h : M.TutteConnected (k + t + 1)) (hNM : N ≤m M) (hNT : (M.E \ N.E).encard t) (hk : 2 * (k + t) < M.E.encard + 1) :
          theorem Matroid.TutteConnected.notMem_closure_dual_of_separation_contractElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) {P : (M.contract {e}).Separation} (hPk : P.eConn + 1 k) (hP : P.IsTutteSeparation) (i : Bool) :
          eM.closure (P i)
          theorem Matroid.TutteConnected.mem_closure_of_separation_contractElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) {P : (M.contract {e}).Separation} (hPk : P.eConn + 1 k) (hP : P.IsTutteSeparation) (i : Bool) :
          e M.closure (P i)
          theorem Matroid.TutteConnected.mem_closure_bDual_iff_of_separation_removeElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) {b c : Bool} {P : (M.remove b {e}).Separation} (hPk : P.eConn + 1 k) (hP : P.IsTutteSeparation) (i : Bool) :
          e (M.bDual c).closure (P i) (b != c) = true

          If M is a (k + 1)-connected matroid, and P is a k-separation in a single removal of M, then we know which sides of P span the removed element in M, both in the primal and the dual.

          theorem Matroid.TutteConnected.mem_closure_dual_of_separation_deleteElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) {P : (M.delete {e}).Separation} (hPk : P.eConn + 1 k) (hP : P.IsTutteSeparation) (i : Bool) :
          e M.closure (P i)
          theorem Matroid.TutteConnected.notMem_closure_of_separation_deleteElem {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) {P : (M.delete {e}).Separation} (hPk : P.eConn + 1 k) (hP : P.IsTutteSeparation) (i : Bool) :
          eM.closure (P i)
          theorem Matroid.TutteConnected.faithful_of_tutteConnected_remove {α : Type u_1} {M : Matroid α} {k : ℕ∞} {b : Bool} {e : α} (h : M.TutteConnected (k + 1)) (hN : (M.remove b {e}).TutteConnected (k + 1)) (P : M.Separation) (hP : P.eConn k) (hP' : ∀ (i : Bool), k < (P i).encard) :
          P.Faithful (M.remove b {e})
          theorem Matroid.TutteConnected.faithful_of_tutteConnected_delete {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) (hN : (M.delete {e}).TutteConnected (k + 1)) (P : M.Separation) (hP : P.eConn k) (hP' : ∀ (i : Bool), k < (P i).encard) :

          If M and M \ {e} are (k + 1)-connected, then every k-separation of M with sides of size greater than k is faithful to M \ {e}.

          theorem Matroid.TutteConnected.faithful_of_tutteConnected_contract {α : Type u_1} {M : Matroid α} {k : ℕ∞} {e : α} (h : M.TutteConnected (k + 1)) (hN : (M.contract {e}).TutteConnected (k + 1)) (P : M.Separation) (hP : P.eConn k) (hP' : ∀ (i : Bool), k < (P i).encard) :

          If M and M / {e} are (k + 1)-connected, then every k-separation of M with sides of size greater than k is faithful to M / {e}.