Documentation

Seymour.Matroid.Properties.Graphicness

Graphicness #

Here we study graphic and cographic matroids.

def IsIncidenceMatrixColumn {m : Type} [DecidableEq m] (v : m) :

Column of a node-edge incidence matrix is either all 0, or has exactly one +1 entry, exactly one -1 entry, and all other elements 0.

Equations
Instances For
    def Matrix.IsGraphic {m n : Type} [DecidableEq m] (A : Matrix m n ) :

    Matrix is called graphic iff it is a node-edge incidence matrix of a (directed) graph.

    Equations
    Instances For
      theorem IsIncidenceMatrixColumn.eq_if_mem {m : Type} [DecidableEq m] {v : m} (hv : IsIncidenceMatrixColumn v) :
      v = 0 ∃ (i₁ : m) (i₂ : m), i₁ i₂ v = fun (i : m) => if i [i₁, i₂].toFinset then if i = i₁ then 1 else -1 else 0

      The column function can be defined as an if statement with membership. We write it in this form to satisfy Fintype.sum_ite_mem.

      Every element of a column of a node-edge incidence matrix is 1, 0, or -1.

      theorem IsIncidenceMatrixColumn.sum_zero {m : Type} [Fintype m] [DecidableEq m] {v : m} (hv : IsIncidenceMatrixColumn v) :
      i : m, v i = 0

      The sum of a column of an incidence matrix is 0.

      theorem Matrix.IsGraphic.elem_in_signTypeCastRange {m n : Type} [DecidableEq m] {A : Matrix m n } (hA : A.IsGraphic) (i : m) (j : n) :
      A i j SignType.cast.range

      Every element of a graphic matrix is 1, 0, or -1.

      theorem IsIncidenceMatrixColumn.zero_or_two_nonzeros {m : Type} [DecidableEq m] {v : m} (hv : IsIncidenceMatrixColumn v) :
      v = 0 ∃ (i₁ : m) (i₂ : m), i₁ i₂ ∀ (i : m), i i₁i i₂v i = 0

      Column of a node-edge incidence matrix has either zero or two non-zero entries.

      theorem Matrix.IsGraphic.col_zero_or_two_nonzeros {m n : Type} [DecidableEq m] {A : Matrix m n } (hA : A.IsGraphic) (y : n) :
      (fun (x : m) => A x y) = 0 ∃ (i₁ : m) (i₂ : m), i₁ i₂ ∀ (i : m), i i₁i i₂(fun (x : m) => A x y) i = 0

      Column of a node-edge incidence matrix has either zero or two non-zero entries.

      theorem Matrix.IsGraphic.cols_sum_zero {m n : Type} [Fintype n] [Fintype m] [DecidableEq m] {A : Matrix m n } (hA : A.IsGraphic) :
      x : m, A x = 0

      The sum of the columns in a graphic matrix is 0.

      theorem Matrix.IsGraphic.submatrix_one_if_not_graphic {l m o n : Type} [DecidableEq l] [DecidableEq m] {A : Matrix m n } (hA : A.IsGraphic) {f : lm} {g : on} (hf : Function.Injective f) (hAfg : ¬(A.submatrix f g).IsGraphic) :
      ∃ (y : o) (x : l), (A.submatrix f g x y = 1 A.submatrix f g x y = -1) ∀ (i : l), i xA.submatrix f g i y = 0

      A nongraphic submatrix of a graphic matrix is only nongraphic iff there exists a column in it that only has one non-zero entry

      def Matroid.IsGraphic {α : Type} [DecidableEq α] (M : Matroid α) :

      Matroid is graphic iff it can be represented by a graphic matrix.

      Equations
      Instances For
        def Matroid.IsCographic {α : Type} [DecidableEq α] (M : Matroid α) :

        Matroid is cographic iff its dual is graphic.

        Equations
        Instances For
          theorem Matrix.IsGraphic.isTotallyUnimodular {α : Type} [DecidableEq α] {X Y : Set α} {A : Matrix X Y } (hA : A.IsGraphic) :

          Node-edge incidence matrix is totally unimodular.

          theorem Matroid.IsGraphic.isRegular {α : Type} [DecidableEq α] {M : Matroid α} (hM : M.IsGraphic) :

          Graphic matroid is regular.