Graph minors
StructureFinite simple graph#✓fully proved
A finite graph consists of a finite vertex set \(V\) together with a simple graph on \(V\), that is, a symmetric and irreflexive adjacency relation on \(V\).
Stable source: https://en.wikipedia.org/wiki/Robertson%E2%80%93Seymour_theorem.
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
V : Type*
MathlibExt/Combinatorics/Graph/GraphMinor.lean:27
Used by 9
AbbreviationComplete graph as a finite graph#✓fully proved
For a natural number \(n\), \(K_n\) is the finite graph whose vertices are the natural numbers less than \(n\), in which any two distinct vertices are adjacent.
abbrev cliqueFinGraph (n : ℕ) : FinGraph where
V := Fin n
G := SimpleGraph.completeGraph (Fin n)
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
Uses 1 · Used by 1
TheoremAdjacency in the complete graph#✓fully proved
For every natural number \(n\) and all vertices \(x\) and \(y\) of the complete graph \(K_n\), whose vertices are the natural numbers less than \(n\), \(x\) and \(y\) are adjacent if and only if \(x \ne y\).
theorem cliqueFinGraph_adj {n : ℕ} {x y : Fin n} :
(cliqueFinGraph n).G.Adj x y ↔ x ≠ y
abbrev cliqueFinGraph (n : ℕ) : FinGraph where
V := Fin n
G := SimpleGraph.completeGraph (Fin n)
MathlibExt/Combinatorics/Graph/GraphMinor.lean:34
Uses 2
InductiveOne-step graph minor#✓fully proved
For finite graphs \(H\) and \(G\), \(H\) arises from \(G\) by one minor step when one of the following holds. Isomorphism: \(H\) is isomorphic to \(G\). Vertex deletion: for some vertex \(a\) of \(G\) there is an injective map \(f\) from the vertices of \(H\) to the vertices of \(G\) whose image consists of all vertices other than \(a\), such that vertices \(u, v\) of \(H\) are adjacent exactly when \(f(u), f(v)\) are adjacent in \(G\). Edge deletion: for some edge \(xy\) of \(G\) there is a bijection \(e\) from the vertices of \(H\) to the vertices of \(G\) such that, for all vertices \(u, v\) of \(H\), the vertices \(e(u), e(v)\) are adjacent in \(G\) whenever \(u, v\) are adjacent in \(H\), and if \(e(u), e(v)\) are adjacent in \(G\), then either \(u, v\) are adjacent in \(H\) or the pair \((e(u), e(v))\) is \((x, y)\) or \((y, x)\); moreover, \(e^{-1}(x), e^{-1}(y)\) are not adjacent in \(H\). Edge contraction: for some edge \(ab\) of \(G\) there is a surjective map \(f\) from the vertices of \(G\) to the vertices of \(H\) with \(f(a) = f(b)\) such that, for all vertices \(x, y\) of \(G\), \(f(x) = f(y)\) implies \(x = y\) or \((x, y)\) is \((a, b)\) or \((b, a)\), and vertices \(u, v\) of \(H\) are adjacent exactly when \(u \ne v\) and there are adjacent vertices \(u', v'\) of \(G\) with \(f(u') = u\) and \(f(v') = v\).
Stable source: https://en.wikipedia.org/wiki/Robertson%E2%80%93Seymour_theorem.
MetaMathlibExt.MinorStep · 21 lines
inductive MinorStep : FinGraph → FinGraph → Prop where
| iso (H G : FinGraph) (e : H.G ≃g G.G) : MinorStep H G
| deleteVertex (H G : FinGraph) (f : H.V ↪ G.V)
(h_induced : ∀ u v, H.G.Adj u v ↔ G.G.Adj (f u) (f v))
(a : G.V) (h_missing : ∀ x, (∃ y, f y = x) ↔ x ≠ a) : MinorStep H G
| deleteEdge (H G : FinGraph) (e : H.V ≃ G.V)
(h_sub : ∀ u v, H.G.Adj u v → G.G.Adj (e u) (e v))
(x y : G.V) (h_edge : G.G.Adj x y)
(h_miss : ¬H.G.Adj (e.symm x) (e.symm y))
(h_only : ∀ u v, G.G.Adj (e u) (e v) →
H.G.Adj u v ∨ (e u = x ∧ e v = y) ∨ (e u = y ∧ e v = x)) :
MinorStep H G
| contractEdge (H G : FinGraph) (f : G.V → H.V)
(hsurj : Function.Surjective f)
(a b : G.V) (h_adj : G.G.Adj a b) (h_ne : a ≠ b)
(h_collapse : f a = f b)
(h_single : ∀ x y, f x = f y →
x = y ∨ (x = a ∧ y = b) ∨ (x = b ∧ y = a))
(h_adj_iff : ∀ u v, H.G.Adj u v ↔
u ≠ v ∧ ∃ u' v', f u' = u ∧ f v' = v ∧ G.G.Adj u' v') :
MinorStep H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
Uses 1 · Used by 5
DefinitionGraph minor relation#✓fully proved
For finite graphs \(H\) and \(G\), \(H\) is a minor of \(G\) when there is a finite sequence \(H = G_0, G_1, \dots, G_k = G\) of finite graphs, with \(k \ge 0\), such that for each \(i < k\), \(G_i\) arises from \(G_{i+1}\) by one minor step: an isomorphism, the deletion of one vertex, the deletion of one edge, or the contraction of one edge.
Stable source: https://en.wikipedia.org/wiki/Robertson%E2%80%93Seymour_theorem.
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
inductive MinorStep : FinGraph → FinGraph → Prop where
| iso (H G : FinGraph) (e : H.G ≃g G.G) : MinorStep H G
| deleteVertex (H G : FinGraph) (f : H.V ↪ G.V)
(h_induced : ∀ u v, H.G.Adj u v ↔ G.G.Adj (f u) (f v))
(a : G.V) (h_missing : ∀ x, (∃ y, f y = x) ↔ x ≠ a) : MinorStep H G
| deleteEdge (H G : FinGraph) (e : H.V ≃ G.V)
(h_sub : ∀ u v, H.G.Adj u v → G.G.Adj (e u) (e v))
(x y : G.V) (h_edge : G.G.Adj x y)
(h_miss : ¬H.G.Adj (e.symm x) (e.symm y))
(h_only : ∀ u v, G.G.Adj (e u) (e v) →
H.G.Adj u v ∨ (e u = x ∧ e v = y) ∨ (e u = y ∧ e v = x)) :
MinorStep H G
⋯
MathlibExt/Combinatorics/Graph/GraphMinor.lean:54
Uses 2 · Used by 5
TheoremReflexivity of the graph minor relation#✓fully proved
Every finite graph \(G\) is a minor of itself.
theorem IsMinor.refl (G : FinGraph) : IsMinor G G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
MathlibExt/Combinatorics/Graph/GraphMinor.lean:80
Uses 3
TheoremTransitivity of the graph minor relation#✓fully proved
For finite graphs \(H\), \(K\) and \(G\), if \(H\) is a minor of \(K\) and \(K\) is a minor of \(G\), then \(H\) is a minor of \(G\).
theorem IsMinor.trans {H K G : FinGraph} :
IsMinor H K → IsMinor K G → IsMinor H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
MathlibExt/Combinatorics/Graph/GraphMinor.lean:80
Uses 3
TheoremA single minor step gives a minor#✓fully proved
For finite graphs \(H\) and \(G\), if \(H\) arises from \(G\) by one minor step, then \(H\) is a minor of \(G\).
theorem IsMinor.of_step {H G : FinGraph} (h : MinorStep H G) : IsMinor H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
inductive MinorStep : FinGraph → FinGraph → Prop where
| iso (H G : FinGraph) (e : H.G ≃g G.G) : MinorStep H G
| deleteVertex (H G : FinGraph) (f : H.V ↪ G.V)
(h_induced : ∀ u v, H.G.Adj u v ↔ G.G.Adj (f u) (f v))
(a : G.V) (h_missing : ∀ x, (∃ y, f y = x) ↔ x ≠ a) : MinorStep H G
| deleteEdge (H G : FinGraph) (e : H.V ≃ G.V)
(h_sub : ∀ u v, H.G.Adj u v → G.G.Adj (e u) (e v))
(x y : G.V) (h_edge : G.G.Adj x y)
(h_miss : ¬H.G.Adj (e.symm x) (e.symm y))
(h_only : ∀ u v, G.G.Adj (e u) (e v) →
H.G.Adj u v ∨ (e u = x ∧ e v = y) ∨ (e u = y ∧ e v = x)) :
MinorStep H G
⋯
MathlibExt/Combinatorics/Graph/GraphMinor.lean:54
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
MathlibExt/Combinatorics/Graph/GraphMinor.lean:80
Uses 3 · Used by 1
TheoremAn isomorphic copy is a minor#✓fully proved
For finite graphs \(H\) and \(G\), if \(H\) is isomorphic to \(G\), then \(H\) is a minor of \(G\).
theorem IsMinor.of_iso {H G : FinGraph} (e : H.G ≃g G.G) : IsMinor H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
MathlibExt/Combinatorics/Graph/GraphMinor.lean:80
Uses 4
TheoremRobertson–Seymour theorem#●ready to prove
Let \(F\) be a family of finite simple graphs that is closed under taking minors: whenever \(G \in F\) and \(H\) is a minor of \(G\), also \(H \in F\). Then any two finite graphs that are minors of each other are isomorphic, and there is a finite set \(O\) of finite graphs such that a finite graph \(G\) belongs to \(F\) if and only if no graph in \(O\) is a minor of \(G\).
Stable source: https://en.wikipedia.org/wiki/Robertson%E2%80%93Seymour_theorem.
theorem_wanted robertson_seymour
(F : Set FinGraph)
(h_closed : ∀ G H, IsMinor H G → G ∈ F → H ∈ F) :
(∀ G H : FinGraph, IsMinor G H → IsMinor H G →
Nonempty (G.G ≃g H.G)) ∧
∃ (Obstructions : Set FinGraph) (_ : Obstructions.Finite),
∀ G, G ∈ F ↔ ∀ H ∈ Obstructions, ¬IsMinor H G
structure FinGraph where
V : Type*
[fin : Finite V]
G : SimpleGraph V
MathlibExt/Combinatorics/Graph/GraphMinor.lean:26
def IsMinor (H G : FinGraph) : Prop :=
Relation.ReflTransGen MinorStep H G
MathlibExt/Combinatorics/Graph/GraphMinor.lean:80
Uses 2
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.