Documentation

Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity

Edge Connectivity #

This file defines k-edge-connectivity for simple graphs.

Main definitions #

def SimpleGraph.IsEdgeReachable {V : Type u_1} (G : SimpleGraph V) (k : ) (u v : V) :

Two vertices are k-edge-reachable if they remain reachable after removing strictly fewer than k edges.

Equations
    Instances For
      def SimpleGraph.IsEdgeConnected {V : Type u_1} (G : SimpleGraph V) (k : ) :

      A graph is k-edge-connected if any two vertices are k-edge-reachable.

      Equations
        Instances For
          @[simp]
          theorem SimpleGraph.IsEdgeReachable.refl {V : Type u_1} {G : SimpleGraph V} {k : } (u : V) :
          @[deprecated SimpleGraph.IsEdgeReachable.refl (since := "2026-01-06")]
          theorem SimpleGraph.IsEdgeReachable.rfl {V : Type u_1} {G : SimpleGraph V} {k : } (u : V) :

          Alias of SimpleGraph.IsEdgeReachable.refl.

          theorem SimpleGraph.IsEdgeReachable.symm {V : Type u_1} {G : SimpleGraph V} {k : } {u v : V} (h : G.IsEdgeReachable k u v) :
          theorem SimpleGraph.IsEdgeReachable.trans {V : Type u_1} {G : SimpleGraph V} {k : } {u v w : V} (h1 : G.IsEdgeReachable k u v) (h2 : G.IsEdgeReachable k v w) :
          theorem SimpleGraph.IsEdgeReachable.mono {V : Type u_1} {G H : SimpleGraph V} {k : } {u v : V} (hGH : G H) (h : G.IsEdgeReachable k u v) :
          theorem SimpleGraph.IsEdgeReachable.anti {V : Type u_1} {G : SimpleGraph V} {k l : } {u v : V} (hkl : k l) (h : G.IsEdgeReachable l u v) :
          @[simp]
          theorem SimpleGraph.IsEdgeReachable.zero {V : Type u_1} {G : SimpleGraph V} {u v : V} :
          @[simp]
          theorem SimpleGraph.isEdgeReachable_one {V : Type u_1} {G : SimpleGraph V} {u v : V} :
          theorem SimpleGraph.IsEdgeReachable.reachable {V : Type u_1} {G : SimpleGraph V} {k : } {u v : V} (hk : k 0) (huv : G.IsEdgeReachable k u v) :
          G.Reachable u v
          theorem SimpleGraph.isEdgeReachable_add_one {V : Type u_1} {G : SimpleGraph V} {k : } {u v : V} (hk : k 0) :
          G.IsEdgeReachable (k + 1) u v ∀ (e : Sym2 V), (G.deleteEdges {e}).IsEdgeReachable k u v
          theorem SimpleGraph.isEdgeConnected_add_one {V : Type u_1} {G : SimpleGraph V} {k : } (hk : k 0) :
          G.IsEdgeConnected (k + 1) ∀ (e : Sym2 V), (G.deleteEdges {e}).IsEdgeConnected k

          An edge is a bridge iff its endpoints are adjacent and not 2-edge-reachable.

          theorem SimpleGraph.isEdgeReachable_two {V : Type u_1} {G : SimpleGraph V} {u v : V} :
          G.IsEdgeReachable 2 u v ∀ (e : Sym2 V), (G.deleteEdges {e}).Reachable u v

          A graph is 2-edge-connected iff it has no bridge.

          2-reachability #

          In this section, we prove results about 2-connected components of a graph, but without naming them.

          theorem SimpleGraph.Walk.IsTrail.not_mem_edges_of_not_isEdgeReachable_two {V : Type u_1} {G : SimpleGraph V} {u v x : V} {w : G.Walk u v} (hw : w.IsTrail) (huv : G.IsEdgeReachable 2 u v) (huy : ¬G.IsEdgeReachable 2 u x) :
          xw.support

          A trail doesn't go through a vertex that is not 2-edge-reachable from its 2-edge-reachable endpoints.