Simple Graph
Results named in Tau Ceti's TauCeti.Combinatorics.SimpleGraph modules and in no roadmap's section, as Tau Ceti has them at commit ace60277.
TheoremDirac's theorem#
For 2 ≤ k, every set of at most k vertices of a k-vertex-connected
simple graph on a finite vertex type lies on a common cycle.
SimpleGraph.IsVertexConnected.exists_isCycle_forall_mem_support.{u} {V : Type u} {G : SimpleGraph V}
[Finite V] {k : ℕ} (hk : 2 ≤ k) (h : G.IsVertexConnected ↑k) {S : Finset V} (hS : S.card ≤ k) :
∃ u c, c.IsCycle ∧ ∀ v ∈ S, v ∈ c.support
Lean
Formalized in Tau Ceti as SimpleGraph.IsVertexConnected.exists_isCycle_forall_mem_support.
Sources
Uses 2
TheoremThe global form of Menger's theorem#
A simple graph on a finite vertex type with more than
k vertices is k-vertex-connected exactly when every two distinct vertices s and t,
adjacent or not, are joined by k distinct paths pairwise sharing no vertex other than s and
t.
SimpleGraph.isVertexConnected_iff_forall_exists_paths.{u} {V : Type u} {G : SimpleGraph V}
[Finite V] {k : ℕ} (hk : k < Nat.card V) :
G.IsVertexConnected ↑k ↔
∀ (s t : V),
s ≠ t →
∃ P,
Function.Injective P ∧
(∀ (i : Fin k), (P i).IsPath) ∧ Pairwise fun i j => (P i).InternallyDisjoint (P j)
Lean
Formalized in Tau Ceti as SimpleGraph.isVertexConnected_iff_forall_exists_paths.
Sources
Uses 1
TheoremLempel–Even–Cederbaum theorem#
On a finite vertex type with at least three vertices, a
simple graph G admits an st-numbering for distinct vertices s ≠ t if and only if
G ⊔ SimpleGraph.edge s t is 2-vertex-connected.
SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two_sup_edge.{u} {V : Type u} [Fintype V]
{G : SimpleGraph V} (h3 : 3 ≤ Fintype.card V) {s t : V} (hst : s ≠ t) :
Nonempty (G.STNumbering s t) ↔ (G ⊔ SimpleGraph.edge s t).IsVertexConnected 2
Lean
Formalized in Tau Ceti as SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two_sup_edge.
Other forms
Lempel–Even–Cederbaum theorem (existence). Formalized in Tau Ceti as SimpleGraph.nonempty_stNumbering_of_isVertexConnected_two_sup_edge.
SimpleGraph.nonempty_stNumbering_of_isVertexConnected_two_sup_edge.{u} {V : Type u} [Fintype V]
{G : SimpleGraph V} {s t : V} (hst : s ≠ t)
(hG : (G ⊔ SimpleGraph.edge s t).IsVertexConnected 2) : Nonempty (G.STNumbering s t)
Lempel–Even–Cederbaum theorem for adjacent endpoints. Formalized in Tau Ceti as SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two.
SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two.{u} {V : Type u} [Fintype V]
{G : SimpleGraph V} (h3 : 3 ≤ Fintype.card V) {s t : V} (hst : G.Adj s t) :
Nonempty (G.STNumbering s t) ↔ G.IsVertexConnected 2
Sources
Uses 1
TheoremMenger's theorem for fans#
Let x be a vertex outside a set U of vertices of a simple
graph on a finite vertex type. Some family of k paths, the i-th from x to u i ∈ U with its
other vertices outside U, any two of which share only the vertex x, and some set of k
vertices other than x meeting every walk from x to a vertex of U exist. By
SimpleGraph.card_le_card_of_fan, the fan is then largest and the separator smallest.
SimpleGraph.exists_fan_separator_card_eq.{u} {V : Type u} {G : SimpleGraph V} {x : V} {U : Finset V}
[Finite V] (hx : x ∉ U) :
∃ k u P X,
Function.Injective u ∧
(∀ (i : Fin k), u i ∈ U) ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (i : Fin k), ∀ v ∈ (P i).support, v ≠ u i → v ∉ U) ∧
(Pairwise fun i j => ∀ v ∈ (P i).support, v ∈ (P j).support → v = x) ∧
x ∉ X ∧ (∀ y ∈ U, ∀ (p : G.Walk x y), ∃ v ∈ p.support, v ∈ X) ∧ X.card = k
Lean
Formalized in Tau Ceti as SimpleGraph.exists_fan_separator_card_eq.
Other forms
Menger's theorem for fans, predicate form. Formalized in Tau Ceti as SimpleGraph.forall_exists_walk_iff_exists_fan.
SimpleGraph.forall_exists_walk_iff_exists_fan.{u} {V : Type u} {G : SimpleGraph V} {x : V}
{U : Finset V} [Finite V] (hx : x ∉ U) (k : ℕ) :
(∀ (X : Finset V), X.card < k → x ∉ X → ∃ y ∈ U, ∃ p, ∀ v ∈ p.support, v ∉ X) ↔
∃ u P,
Function.Injective u ∧
(∀ (i : Fin k), u i ∈ U) ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (i : Fin k), ∀ v ∈ (P i).support, v ≠ u i → v ∉ U) ∧
Pairwise fun i j => ∀ v ∈ (P i).support, v ∈ (P j).support → v = x
Menger's theorem for internally vertex-disjoint paths. Formalized in Tau Ceti as SimpleGraph.exists_paths_vertexSeparator_card_eq.
SimpleGraph.exists_paths_vertexSeparator_card_eq.{u} {V : Type u} {G : SimpleGraph V} {s t : V}
[Finite V] (hst : s ≠ t) (hadj : ¬G.Adj s t) :
∃ k P X,
Function.Injective P ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(Pairwise fun i j => (P i).InternallyDisjoint (P j)) ∧
∃ (hs : s ∉ X) (ht : t ∉ X),
¬(SimpleGraph.induce (↑X)ᶜ G).Reachable ⟨s, hs⟩ ⟨t, ht⟩ ∧ X.card = k
Menger's theorem for internally vertex-disjoint paths between adjacent vertices. Formalized in Tau Ceti as SimpleGraph.exists_paths_vertexSeparator_card_add_one_eq.
SimpleGraph.exists_paths_vertexSeparator_card_add_one_eq.{u} {V : Type u} {G : SimpleGraph V}
{s t : V} [Finite V] (h : G.Adj s t) :
∃ k P X,
Function.Injective P ∧
(∀ (i : Fin (k + 1)), (P i).IsPath) ∧
(Pairwise fun i j => (P i).InternallyDisjoint (P j)) ∧
P (Fin.last k) = h.toWalk ∧
∃ (hs : s ∉ X) (ht : t ∉ X),
¬(SimpleGraph.induce (↑X)ᶜ (G.deleteEdges {s(s, t)})).Reachable ⟨s, hs⟩ ⟨t, ht⟩ ∧
X.card = k
Menger's theorem for internally vertex-disjoint paths, predicate form. Formalized in Tau Ceti as SimpleGraph.forall_reachable_induce_iff_exists_paths.
SimpleGraph.forall_reachable_induce_iff_exists_paths.{u} {V : Type u} {G : SimpleGraph V} {s t : V}
[Finite V] (hst : s ≠ t) (hadj : ¬G.Adj s t) (k : ℕ) :
(∀ (X : Finset V) (hs : s ∉ X) (ht : t ∉ X),
X.card < k → (SimpleGraph.induce (↑X)ᶜ G).Reachable ⟨s, hs⟩ ⟨t, ht⟩) ↔
∃ P, (∀ (i : Fin k), (P i).IsPath) ∧ Pairwise fun i j => (P i).InternallyDisjoint (P j)
Menger's theorem for vertex reachability. Formalized in Tau Ceti as SimpleGraph.isVertexReachable_iff_exists_paths.
SimpleGraph.isVertexReachable_iff_exists_paths.{u} {V : Type u} {G : SimpleGraph V} [Finite V]
{s t : V} (hst : s ≠ t) (hadj : ¬G.Adj s t) (k : ℕ) :
G.IsVertexReachable (↑k) s t ↔
∃ P, (∀ (i : Fin k), (P i).IsPath) ∧ Pairwise fun i j => (P i).InternallyDisjoint (P j)
Menger's theorem for vertex-disjoint paths between vertex sets. Formalized in Tau Ceti as SimpleGraph.exists_paths_setSeparator_card_eq.
SimpleGraph.exists_paths_setSeparator_card_eq.{u} {V : Type u} {G : SimpleGraph V} [Finite V]
(A B : Finset V) :
∃ k a b P X,
(∀ (i : Fin k), a i ∈ A) ∧
(∀ (i : Fin k), b i ∈ B) ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (i : Fin k), ∀ v ∈ (P i).support, v ≠ a i → v ≠ b i → v ∉ A ∧ v ∉ B) ∧
(Pairwise fun i j => (P i).support.Disjoint (P j).support) ∧
(∀ a ∈ A, ∀ b ∈ B, ∀ (p : G.Walk a b), ∃ v ∈ p.support, v ∈ X) ∧ X.card = k
Menger's theorem for vertex-disjoint paths between vertex sets, predicate form. Formalized in Tau Ceti as SimpleGraph.forall_exists_walk_iff_exists_paths.
SimpleGraph.forall_exists_walk_iff_exists_paths.{u} {V : Type u} {G : SimpleGraph V} [Finite V]
(A B : Finset V) (k : ℕ) :
(∀ (X : Finset V), X.card < k → ∃ a ∈ A, ∃ b ∈ B, ∃ p, ∀ v ∈ p.support, v ∉ X) ↔
∃ a b P,
(∀ (i : Fin k), a i ∈ A) ∧
(∀ (i : Fin k), b i ∈ B) ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (i : Fin k), ∀ v ∈ (P i).support, v ≠ a i → v ≠ b i → v ∉ A ∧ v ∉ B) ∧
Pairwise fun i j => (P i).support.Disjoint (P j).support
Sources
TheoremVertex-capacitated Menger's theorem#
Let s and t be distinct nonadjacent vertices of a
simple graph on a finite vertex type, and let c v be a capacity on every vertex. Some family of
k paths from s to t, in which every vertex v other than s and t lies on at most c v
members, and some set X of vertices other than s and t, whose deletion separates s from
t, satisfy ∑ v ∈ X, c v = k. By SimpleGraph.card_le_sum_of_not_reachable_induce, the family is
then largest and the separator of least weight.
SimpleGraph.exists_paths_vertexSeparator_sum_eq.{u} {V : Type u} {G : SimpleGraph V} {s t : V}
[Finite V] [DecidableEq V] (c : V → ℕ) (hst : s ≠ t) (hadj : ¬G.Adj s t) :
∃ k P X,
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (v : V), v ≠ s → v ≠ t → {i | v ∈ (P i).support}.card ≤ c v) ∧
∃ (hs : s ∉ X) (ht : t ∉ X),
¬(SimpleGraph.induce (↑X)ᶜ G).Reachable ⟨s, hs⟩ ⟨t, ht⟩ ∧ ∑ v ∈ X, c v = k
Lean
Formalized in Tau Ceti as SimpleGraph.exists_paths_vertexSeparator_sum_eq.
Other forms
Vertex-capacitated Menger's theorem between vertex sets. Formalized in Tau Ceti as SimpleGraph.exists_paths_setSeparator_sum_eq.
SimpleGraph.exists_paths_setSeparator_sum_eq.{u} {V : Type u} {G : SimpleGraph V} [Finite V]
[DecidableEq V] (c : V → ℕ) (A B : Finset V) :
∃ k a b P X,
(∀ (i : Fin k), a i ∈ A) ∧
(∀ (i : Fin k), b i ∈ B) ∧
(∀ (i : Fin k), (P i).IsPath) ∧
(∀ (i : Fin k), ∀ v ∈ (P i).support, v ≠ a i → v ≠ b i → v ∉ A ∧ v ∉ B) ∧
(∀ (v : V), {i | v ∈ (P i).support}.card ≤ c v) ∧
(∀ a ∈ A, ∀ b ∈ B, ∀ (p : G.Walk a b), ∃ v ∈ p.support, v ∈ X) ∧ ∑ v ∈ X, c v = k
Sources
Uses 1 · Used by 1
TheoremWhitney's inequality#
the vertex connectivity of a simple graph is at most its edge connectivity.
SimpleGraph.vertexConnectivity_le_edgeConnectivity.{u} {V : Type u} {G : SimpleGraph V} :
G.vertexConnectivity ≤ G.edgeConnectivity
Lean
Formalized in Tau Ceti as SimpleGraph.vertexConnectivity_le_edgeConnectivity.
Other forms
Whitney's inequality, predicate form. Formalized in Tau Ceti as SimpleGraph.IsVertexConnected.isEdgeConnected.
SimpleGraph.IsVertexConnected.isEdgeConnected.{u} {V : Type u} {G : SimpleGraph V} {k : ℕ∞}
(h : G.IsVertexConnected k) : G.IsEdgeConnected k
Sources
Used by 2
TheoremWhitney's theorem with prescribed initial cycle#
For any cycle c in a 2-vertex-connected
simple graph on a finite vertex type, there is an open ear decomposition of ⊤ whose initial
subgraph is c.toSubgraph.
SimpleGraph.IsVertexConnected.exists_isOpen_earDecomposition_initial_eq.{u} {V : Type u}
{G : SimpleGraph V} [Finite V] (hG : G.IsVertexConnected 2) {u : V} (c : G.Walk u u)
(hc : c.IsCycle) : ∃ d, d.IsOpen ∧ d.initial = c.toSubgraph
Lean
Formalized in Tau Ceti as SimpleGraph.IsVertexConnected.exists_isOpen_earDecomposition_initial_eq.
Sources
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.