Bipartitions of multigraphs #
A bipartition of a multigraph G : Graph α β is a pair of disjoint finite sets L and R of
actual vertices, together covering V(G), such that every edge joins a vertex of L to a vertex
of R. Parallel edges are allowed, isolated vertices may lie on either side, and either side may
be empty; loops are excluded, since the two ends of a loop coincide.
The sides are finite sets of actual vertices, so that sums of vertex capacities over a side, or over a part of it, are finite sums; in particular a multigraph with a bipartition has finitely many actual vertices. Since every actual edge has exactly one end in each side, summing over one side the values of the edges incident with each vertex counts every actual edge exactly once, so the total usage of either side by edge multiplicities equals their sum.
Main definitions #
Graph.IsBipartition G L R: the finite setsLandRof actual vertices form a bipartition ofG.Graph.BipartiteHom G L: one arrow for every actual edge, directed fromLto its other end.
Main results #
Graph.isBipartition_comm: a bipartition is symmetric in its two sides.Graph.IsBipartition.loopless: a multigraph with a bipartition has no loops.Graph.IsBipartition.finite: a multigraph with a bipartition has finitely many actual vertices.Graph.IsBipartition.deleteEdges: deleting edges preserves a displayed bipartition.SimpleGraph.isBipartition_ofSimpleGraph_iff: covering bipartitions ofGraph.ofSimpleGraph Hare precisely bipartitions ofHwhose two sides cover every vertex.Graph.IsBipartition.isVertexCover_left: the sideLof a bipartition is a vertex cover, and similarly forR.Graph.IsBipartition.sum_sum_incidentEdges_left: summing overLthe values of the edges incident with each vertex sums every actual edge once, and similarly forR.
The finite sets L and R of actual vertices form a bipartition of the multigraph G: they
are disjoint, every actual vertex lies in one of them, and every edge joins a vertex of L to a
vertex of R.
- disjoint : Disjoint L R
Instances For
Exchanging the two sides of a bipartition gives a bipartition.
A multigraph with a bipartition has no loops.
A multigraph with a bipartition has finitely many actual vertices.
Deleting any set of edges preserves a displayed bipartition. The actual vertex set, including its isolated vertices, is unchanged.
The side L of a bipartition is a vertex cover.
The side R of a bipartition is a vertex cover.
Every actual edge has exactly one end in L, so summing over L the values of the edges
incident with each vertex sums every actual edge once.
Every actual edge has exactly one end in R, so summing over R the values of the edges
incident with each vertex sums every actual edge once.
Bipartite arrow family #
The arrow family obtained by directing every actual edge of G from its end in L to its
other end. Under a bipartition by L, R, these are exactly the edges directed from L to R.
Instances For
The original edge underlying an arrow of the bipartite arrow family.
Instances For
The source of every bipartite arrow belongs to L.
The target of every bipartite arrow belongs to R.
Finite sets L and R form a covering bipartition of the multigraph associated to a simple
graph H exactly when they are bipartition classes of H and cover its entire vertex type.
The covering condition is separate because SimpleGraph.IsBipartiteWith permits isolated
vertices outside both displayed sets, whereas Graph.IsBipartition partitions all actual
vertices.