Theorem (P), p. 126 — the vertices of the polyhedron C are exactly the matching vectors of G
ProvedEdmondsMatching65.Polyhedron.theorem_P_vertices_eq_matching_vectorsLet be a finite graph with node set and edge set . Let be the polyhedron of vectors satisfying
- for every edge ;
- for every node ;
- for every set of nodes, a strictly positive integer;
and let be the set of matching vectors: the vectors with all components or that satisfy (2), i.e. the incidence vectors of matchings of .
Theorem (P). is the set of vertices (extreme points) of :
Consequently, for any real edge weights , the maximum weight of a matching equals the maximum of the linear form over : maximum-weight matching is a linear program over a polyhedron described by explicit inequalities. This is the first polyhedral description of the matching polytope of a general (non-bipartite) graph.
Formalization Note The graph is given by a finite node type , a finite edge type and, for each edge, the unordered pair of its ends (no loops). Parallel edges are allowed, which covers the contracted graphs of Theorem (M); a simple graph is the special case of an injective end map. Vectors have one real coordinate per edge.
import Mathlib import Definitions.Def_EdmondsMatching65_Polyhedron_Graph import Definitions.Def_EdmondsMatching65_Polyhedron_MatchingPolyhedron
namespace EdmondsMatching65.Polyhedron
theorem theorem_P_vertices_eq_matching_vectors {V E : Type*} [Fintype V] [DecidableEq V]
[Fintype E] [DecidableEq E] (G : Graph V E) :
Set.extremePoints ℝ (matchingPolyhedron G) = matchingVectors G := by sorry
end EdmondsMatching65.Polyhedron
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.