Skip to content
Open
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
4c562de
feat(Combinatorics/SimpleGraph/Connectivity): add edge reachability a…
JadAbouHawili Aug 6, 2026
deb56a0
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 6, 2026
facdcae
remove file from scripts
JadAbouHawili Aug 6, 2026
92ce84a
Merge branch 'master' into graph-theory
JadAbouHawili Aug 6, 2026
a4a5e41
Ring
JadAbouHawili Aug 6, 2026
56d3f93
fix ci
JadAbouHawili Aug 6, 2026
8aede9b
remove docstring changes
JadAbouHawili Aug 6, 2026
78bffa5
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 6, 2026
87ac82c
golfed
JadAbouHawili Aug 6, 2026
ca41347
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 6, 2026
4313ee3
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 6, 2026
25576b7
simp suggestion
JadAbouHawili Aug 7, 2026
3ba9b38
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 7, 2026
7e49347
shorter proof
JadAbouHawili Aug 7, 2026
19af63a
fixed spacing
JadAbouHawili Aug 7, 2026
7015c33
new theorems and doc strings
JadAbouHawili Aug 7, 2026
83f8c36
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 7, 2026
6d982cd
ordered
JadAbouHawili Aug 7, 2026
55283ee
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 7, 2026
02b2272
theorems
JadAbouHawili Aug 7, 2026
d256953
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 8, 2026
29f0b1c
le_isup suggestion implemented
JadAbouHawili Aug 8, 2026
aa329cb
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 8, 2026
636c8d0
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 8, 2026
508b539
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 8, 2026
6cdd655
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 8, 2026
a6719de
ne_zero
JadAbouHawili Aug 8, 2026
d7ce638
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 8, 2026
36fef53
fix ci fail
JadAbouHawili Aug 9, 2026
61f75f2
2 more proofs and helper theorem
JadAbouHawili Aug 10, 2026
ddb9601
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 10, 2026
6cc186d
fix lint style
JadAbouHawili Aug 10, 2026
a3f4d80
fix ci
JadAbouHawili Aug 10, 2026
35a7e4e
suitable name
JadAbouHawili Aug 11, 2026
cf7d080
fixing spacing
JadAbouHawili Aug 11, 2026
8ac9b7b
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 11, 2026
d4d2e62
cleaner proof of le_degree_left
JadAbouHawili Aug 11, 2026
512e216
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 11, 2026
646a452
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
1066c78
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
a2696f6
spacing
JadAbouHawili Aug 12, 2026
bfb37ff
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 12, 2026
4ba4c79
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
375b3cc
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
52c682f
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
655b046
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 12, 2026
d9bbd90
finished todo
JadAbouHawili Aug 13, 2026
7bd77e2
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 13, 2026
621ada7
fixed warnings , should pass ci
JadAbouHawili Aug 13, 2026
c595625
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 13, 2026
40ebccf
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Aug 13, 2026
5d6dc30
min imports
JadAbouHawili Aug 13, 2026
2754288
space before semicolon
JadAbouHawili Aug 13, 2026
7ab45bd
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 13, 2026
a0561a4
start ci
JadAbouHawili Aug 13, 2026
2a02712
Merge branch 'master' into graph-theory
JadAbouHawili Aug 13, 2026
3b6fd35
edgeconnectivity_le_mindegree
JadAbouHawili Aug 15, 2026
9dd49c0
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 16, 2026
af7a0ac
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 16, 2026
62e56ff
remove notedgereachable
JadAbouHawili Aug 16, 2026
1801937
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 16, 2026
cb2499b
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 16, 2026
07809f5
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 16, 2026
04a1172
extracting lemma
JadAbouHawili Aug 16, 2026
1d0f6ac
lemma
JadAbouHawili Aug 16, 2026
9eb8d62
todo solution moved to another PR
JadAbouHawili Aug 16, 2026
526af92
Merge branch 'master' into graph-theory
JadAbouHawili Aug 16, 2026
ee19d10
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
9be639b
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
0bb5b1f
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
147abd2
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
41578bc
simp lemma
JadAbouHawili Aug 18, 2026
7335512
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
7fb0764
Merge branch 'graph-theory' of https://github.com/JadAbouHawili/mathl…
JadAbouHawili Aug 18, 2026
b66439d
Update Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivit…
JadAbouHawili Aug 18, 2026
aa9e05e
simpler proof
JadAbouHawili Aug 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ Authors: Youheng Luo
module

public import Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
public import Mathlib.Data.ENat.Lattice
public import Mathlib.Data.Set.Card
public import Mathlib.Order.CompletePartialOrder

/-!
# Edge Connectivity
Expand Down Expand Up @@ -105,6 +107,10 @@ lemma IsEdgeConnected.le_degree [Fintype (G.neighborSet u)] [Nontrivial V]
obtain ⟨v, hv⟩ := exists_ne u
exact (h u v).le_degree hv.symm

theorem IsEdgeConnected.le_minDegree [Fintype V] [Nontrivial V] [DecidableRel G.Adj]
(h : G.IsEdgeConnected k) : k ≤ G.minDegree :=
le_minDegree_of_forall_le_degree G k fun _ ↦ le_degree h

lemma isEdgeReachable_add_one (hk : k ≠ 0) :
G.IsEdgeReachable (k + 1) u v ↔ ∀ e, (G.deleteEdges {e}).IsEdgeReachable k u v := by
refine ⟨fun h e s hk ↦ ?_, fun h s hs ↦ ?_⟩
Expand Down Expand Up @@ -168,6 +174,59 @@ lemma exists_adj_isEdgeReachable_two (hne : u ≠ v) (h : G.IsEdgeReachable 2 u
refine (Set.subsingleton_iff_singleton h').mp ?_
exact Set.encard_le_one_iff_subsingleton.mp (Order.le_of_lt_succ hs)

/--
The edge reachability number of a graph `G` and two vertices `u`,`v` is the largest `k` for which
`u`,`v` are `k`-edge-reachable
-/
noncomputable def edgeReachability (G : SimpleGraph V) (u v : V) : ℕ∞ :=
⨆ (k : ℕ) (_ : G.IsEdgeReachable k u v), k

/--
The edge connectivity number of a graph `G` is the largest `k` such that `G` is `k`-edge-connected.
-/
noncomputable def edgeConnectivity (G : SimpleGraph V) : ℕ∞ :=
⨆ (k : ℕ) (_ : G.IsEdgeConnected k), k

theorem IsEdgeReachable.le_edgeReachability (h : G.IsEdgeReachable k u v) :
k ≤ G.edgeReachability u v :=
le_iSup₂ (α := ℕ∞) k h

theorem Reachable.edgeReachability_ne_zero (h : G.Reachable u v) : G.edgeReachability u v ≠ 0 := by
simpa [← Order.one_le_iff_ne_zero] using isEdgeReachable_one.mpr h |>.le_edgeReachability

theorem IsEdgeConnected.le_edgeConnectivity (h : G.IsEdgeConnected k) : k ≤ G.edgeConnectivity :=
le_iSup₂ (α := ℕ∞) k h

@[simp]
theorem edgeConnectivity_eq_top_of_subsingleton [Subsingleton V] : G.edgeConnectivity = ⊤ := by
Comment thread
JadAbouHawili marked this conversation as resolved.
simpa [edgeConnectivity, IsEdgeConnected, IsEdgeReachable] using ENat.iSup_natCast

@[simp]
theorem edgeReachability_self : G.edgeReachability v v = ⊤ := by
Comment thread
JadAbouHawili marked this conversation as resolved.
simp only [edgeReachability, IsEdgeReachable.rfl, iSup_pos, ENat.iSup_natCast]

@[simp]
theorem edgeReachability_eq_top_of_subsingleton [Subsingleton V] : G.edgeReachability u v = ⊤ := by
Comment thread
JadAbouHawili marked this conversation as resolved.
simp [Subsingleton.elim u v]

theorem edgeReachability_comm : G.edgeReachability u v = G.edgeReachability v u := by
simp only [isEdgeReachable_comm, edgeReachability]

theorem edgeConnectivity_le_edgeReachability : G.edgeConnectivity ≤ G.edgeReachability u v :=
iSup₂_le fun _ hi ↦ IsEdgeReachable.le_edgeReachability (hi u v)

theorem edgeReachability_le_degree_left [Fintype <| G.neighborSet u] (huv : u ≠ v) :
G.edgeReachability u v ≤ G.degree u :=
iSup₂_le fun _ hk ↦ mod_cast hk.le_degree huv

theorem edgeReachability_le_degree_right [Fintype <| G.neighborSet v] (huv : u ≠ v) :
G.edgeReachability u v ≤ G.degree v := by
rw [edgeReachability_comm]
exact edgeReachability_le_degree_left huv.symm

theorem edgeConnectivity_le_minDegree [Fintype V] [Nontrivial V] [DecidableRel G.Adj] :
G.edgeConnectivity ≤ G.minDegree := iSup₂_le fun _ h ↦ mod_cast h.le_minDegree

/-!
### 2-reachability

Expand Down
Loading