Documentation

Mathlib.Combinatorics.SimpleGraph.Hall

Hall's Marriage Theorem #

This file derives Hall's Marriage Theorem for bipartite graphs from the combinatorial formulation in Mathlib/Combinatorics/Hall/Basic.lean.

Main statements #

Tags #

Hall's Marriage Theorem

theorem SimpleGraph.exists_isMatching_of_forall_ncard_le {V : Type u_1} {G : SimpleGraph V} [DecidableEq V] [G.LocallyFinite] {p₁ p₂ : Set V} [DecidablePred fun (x : V) => x p₁] (h₁ : G.IsBipartiteWith p₁ p₂) (h₂ : sp₁, s.ncard (⋃ xs, G.neighborSet x).ncard) :
∃ (M : G.Subgraph), p₁ M.verts M.IsMatching

This is the version of Hall's marriage theorem for bipartite graphs that finds a matching for a single partition given that the neighborhood-condition only holds for elements of that partition.

theorem SimpleGraph.union_eq_univ_of_forall_ncard_le {V : Type u_1} {G : SimpleGraph V} [DecidableEq V] [G.LocallyFinite] {p₁ p₂ : Set V} (h₁ : G.IsBipartiteWith p₁ p₂) (h₂ : ∀ (s : Set V), s.ncard (⋃ xs, G.neighborSet x).ncard) :
p₁ p₂ = Set.univ
theorem SimpleGraph.exists_bijective_of_forall_ncard_le {V : Type u_1} {G : SimpleGraph V} [DecidableEq V] [G.LocallyFinite] {p₁ p₂ : Set V} (h₁ : G.IsBipartiteWith p₁ p₂) (h₂ : ∀ (s : Set V), s.ncard (⋃ xs, G.neighborSet x).ncard) :
∃ (h : p₁p₂), Function.Bijective h ∀ (a : p₁), G.Adj a (h a)
theorem SimpleGraph.exists_isPerfectMatching_of_forall_ncard_le {V : Type u_1} {G : SimpleGraph V} [DecidableEq V] [G.LocallyFinite] {p₁ p₂ : Set V} [DecidablePred fun (x : V) => x p₁] (h₁ : G.IsBipartiteWith p₁ p₂) (h₂ : ∀ (s : Set V), s.ncard (⋃ xs, G.neighborSet x).ncard) :

This is the version of Hall's marriage theorem for bipartite graphs that finds a perfect matching given that the neighborhood-condition holds globally.