@@ -5,21 +5,22 @@ Authors: Youheng Luo
55-/
66module
77public import Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
8- public import Mathlib.Data.Set.Card
98public import Mathlib.Combinatorics.SimpleGraph.IsolateVerts
9+ public import Mathlib.Data.Set.Card
10+
1011/-!
1112# Vertex Connectivity
1213
13- This file defines k -vertex connectivity for simple graphs.
14+ This file defines `k` -vertex connectivity for simple graphs.
1415
1516## Main definitions
1617
1718* `SimpleGraph.IsVertexReachable`: Two vertices are `k`-vertex-reachable if they remain reachable
1819 after removing strictly fewer than `k` other vertices.
1920* `SimpleGraph.IsVertexPreconnected`: A graph is `k`-vertex-preconnected if any two vertices
2021 are `k`-vertex-reachable.
21- * `SimpleGraph.IsVertexConnected`: A graph is `k`-vertex-connected if its order is at least
22- `k + 1` and any two vertices are `k`-vertex-reachable .
22+ * `SimpleGraph.IsVertexConnected`: A graph is `k`-vertex-connected if it is `k`-vertex-preconnected
23+ and it has more than `k` vertices .
2324 -/
2425
2526@[expose] public section
@@ -93,8 +94,7 @@ lemma isVertexPreconnected_one : G.IsVertexPreconnected 1 ↔ G.Preconnected :=
9394 simp [IsVertexPreconnected, isVertexReachable_one_iff, Preconnected]
9495
9596/-- A preconnected graph is 1-vertex-preconnected. -/
96- lemma Preconnected.isVertexPreconnected_one (h : G.Preconnected) : G.IsVertexPreconnected 1 :=
97- SimpleGraph.isVertexPreconnected_one.mpr h
97+ alias ⟨_, Preconnected.isVertexPreconnected_one⟩ := isVertexPreconnected_one
9898
9999/-- Vertex preconnectivity is antitonic in `k`. -/
100100@[gcongr]
@@ -116,34 +116,41 @@ lemma isVertexPreconnected_top [Fintype V] :
116116 exacts [h ▸ .refl _, .of_adj _ h]
117117
118118variable (G k) in
119- /-- A graph is `k`-vertex-connected if its order is at least `k + 1` and any two vertices
120- are `k`-vertex-reachable . -/
119+ /-- A graph is `k`-vertex-connected if it is `k`-vertex-preconnected and it has more than `k`
120+ vertices . -/
121121def IsVertexConnected : Prop :=
122122 k + 1 ≤ ENat.card V ∧ G.IsVertexPreconnected k
123123
124- /-- A 0-vertex-connected graph is just a nonempty graph . -/
124+ /-- A graph is 0-vertex-connected iff it is nonempty. -/
125125@[simp]
126126lemma isVertexConnected_zero : G.IsVertexConnected 0 ↔ Nonempty V := by
127127 simp [IsVertexConnected, ENat.one_le_card_iff_nonempty]
128128
129- /-- 1-vertex-connectivity is equivalent to preconnectedness and having at least two vertices. -/
129+ lemma IsVertexConnected.zero [Nonempty V] : G.IsVertexConnected 0 :=
130+ Iff.mpr SimpleGraph.isVertexConnected_zero ‹_›
131+
132+ /-- 1-vertex-connectivity is equivalent to preconnectedness and `V` being nontrivial. -/
130133@[simp]
131- lemma isVertexConnected_one : G.IsVertexConnected 1 ↔ 2 ≤ ENat.card V ∧ G.Preconnected := by
132- rw [IsVertexConnected, isVertexPreconnected_one, show (1 : ℕ∞) + 1 = 2 from rfl]
134+ lemma isVertexConnected_one : G.IsVertexConnected 1 ↔ Nontrivial V ∧ G.Preconnected := by
135+ rw [IsVertexConnected, isVertexPreconnected_one, ← ENat.one_lt_card_iff_nontrivial]
136+ exact and_congr_left' <| ENat.add_one_le_iff ENat.one_ne_top
137+
138+ lemma Preconnected.isVertexConnected_one [Nontrivial V] (h : G.Preconnected) :
139+ G.IsVertexConnected 1 :=
140+ Iff.mpr SimpleGraph.isVertexConnected_one ⟨‹_›, h⟩
133141
134142/-- Vertex connectivity is antitonic in `k`. -/
135143@[gcongr]
136144lemma IsVertexConnected.anti (hkl : l ≤ k) (hc : G.IsVertexConnected k) :
137145 G.IsVertexConnected l := by
138146 constructor
139147 · rw [add_comm]
140- exact (add_le_add_right hkl 1 ).trans (by rw [add_comm]; exact hc.1 )
141- · exact hc.2 .anti hkl
148+ exact (add_le_add_right hkl 1 ).trans (by rw [add_comm]; exact hc.left )
149+ · exact hc.right .anti hkl
142150
143151/-- Vertex connectivity is monotonic in the graph. -/
144152@[gcongr]
145- lemma IsVertexConnected.mono (hGH : G ≤ H) (hc : G.IsVertexConnected k) :
146- H.IsVertexConnected k :=
147- ⟨hc.1 , hc.2 .mono hGH⟩
153+ lemma IsVertexConnected.mono (hGH : G ≤ H) (hc : G.IsVertexConnected k) : H.IsVertexConnected k :=
154+ ⟨hc.left, hc.right.mono hGH⟩
148155
149156end SimpleGraph
0 commit comments