Disjoint Compatible Geometric Matchings
 226 Downloads
 3 Citations
Abstract
We prove that for every set of n pairwise disjoint line segments in the plane in general position, where n is even, there is another set of n segments such that the 2n segments form pairwise disjoint simple polygons in the plane. This settles in the affirmative the Disjoint Compatible Matching Conjecture by Aichholzer et al. (Comput. Geom. 42:617–626, 2009). The key tool in our proof is a novel subdivision of the free space around n disjoint line segments into at most n+1 convex cells such that the dual graph of the subdivision contains two edgedisjoint spanning trees.
Keywords
Span Tree Outgoing Edge Steiner Point Dual Graph Incoming Edge1 Introduction
A planar straightline graph (Pslg, for short) is a graph G=(V,E) where the vertices are distinct points in the plane, the edges are straightline segments between vertices such that every edge can intersect vertices and other edges only at its endpoints. A simple polygon is a 2regular connected Pslg. A geometric matching is a 1regular Pslg. The edges of a geometric matching are pairwise disjoint line segments in the plane. Two Pslgs (V,E _{1}) and (V,E _{2}) on the same vertex set are compatible if no edge in E _{1} crosses any edge in E _{2}.
A simple polygon with an even number of edges is the union of two disjoint compatible geometric matchings. Conversely, the union of two disjoint compatible geometric matchings is the union of pairwise disjoint simple polygons, each of which has an even number of edges. Aichholzer et al. [1] conjectured that for every geometric matching M with an even number of edges, there is a disjoint compatible geometric matching (Disjoint Compatible Matching Conjecture). The condition that M has an even number of edges cannot be dropped: for every odd n≥3, there are geometric matchings with n edges that do not admit a disjoint compatible matching [1]. Our main result is the proof of the Disjoint Compatible Matching Conjecture.
Theorem 1
For every geometric matching with an even number of edges, and no three collinear vertices, there is a disjoint compatible geometric matching.
The General Framework for the Proof of Theorem 1
Aichholzer et al. [1] proposed three stronger conjectures, each of which would immediately imply Theorem 1. Even though we do not prove any of these stronger conjectures, they laid out a framework that does lead to the proof of Theorem 1.
We first prove a weaker form of the Two Trees Conjecture (Theorem 2), and show that there exists a convex subdivision with at most n+1 cells whose dual graph contains two edgedisjoint spanning trees. Combining Theorem 2 with a purely graph theoretic lemma (Lemma 3), which is essentially a weaker form of the Extension Conjecture, we prove the Disjoint Compatible Matching Conjecture.
Theorem 2
For every set M of n disjoint line segments in the plane, with no three collinear segment endpoints, there is a convex subdivision of the free space into at most n+1 cells such that an associated dual graph G contains two edgedisjoint spanning trees.
Lemma 3
Let G=(V,E) be a multigraph with 4k edges that contains two edgedisjoint spanning trees, and let X be a collection of disjoint pairs of adjacent edges in E, called conflict pairs. Then G has an even orientation such that if the indegree of a vertex is 2, then the two incoming edges are not in X.
Outline
In Sect. 2, a class of convex subdivisions \(\mathcal{D}(M)\) and corresponding dual graphs are defined for a geometric matching M. Section 3 derives a sufficient conditions when a dual graph of a subdivision in \(\mathcal{D}(M)\) contains two edgedisjoint spanning trees. Specifically, we show that the dual graph contains two edgedisjoint spanning trees if the subdivisions contains no “critical polygons,” a class of polygons that we shall define below. To complete the proof of Theorem 2, it remains to construct a convex subdivision in \(\mathcal{D}(M)\) with no critical polygons. This is done algorithmically in Sect. 4. The algorithm starts with a simple initial convex subdivision with n+1 cells in \(\mathcal{D}(M)\), and modifies it recursively until all critical polygons are eliminated. The number of cells may decrease during the process, but the dual graph of the resulting convex subdivision contains two edgedisjoint spanning trees. Finally we prove Lemma 3 in Sect. 5, and show that the combination of Theorem 2 and Lemma 3 readily implies the Disjoint Compatible Matching Conjecture (Theorem 1).
Motivation and Related Work
The disjoint compatible matching conjecture is in the family of augmentation problems for planar straightline graphs. In a typical augmentation problem, we are given a Pslg G=(V,E) and a graph property P, and asked to find a minimum set F of new edges such that G′=(V,E∪F) is a Pslg with property P. Theorem 1 shows that every 1regular Pslg with an even number of edges and no three collinear vertices can be augmented to a 2regular Pslg. Previously, Bose et al. [5] proved that every Pslg matching can be augmented to a Pslg spanning tree of maximum degree 3, and the bound 3 is the best possible. Hoffmann et al. [11] showed that every Pslg can be augmented to a connected Pslg such that the degree of every vertex increases by at most two. AlJubeh et al. [3] proved that a Pslg matching on n≥4 vertices can be augmented to a 3connected Pslg iff no edge is a chord of the convex hull of the vertices, and the augmented Pslg has always at most 2n−2 edges. We refer to a recent survey by Hurtado and Tóth [13] on augmenting Pslgs.
The union of two disjoint compatible perfect geometric matchings is a collection of disjoint polygons in the plane. This simple fact is crucial for the best current upper bound on the number of simple polygons on a fixed set of n points in the plane [6, 12, 19]. The maximum number of perfect geometric matchings on a set of n points in the plane is known to be between Ω(3^{ n }) and O(10.05^{ n }), as shown by García et al. [10] and Sharir and Welzl [18], respectively. Replacing a geometric matching with a compatible matching can be thought of as a reconfiguration in the configuration space of all perfect geometric matchings on a fixed point set. The reconfigurations can be represented by the compatible matching graph (resp., disjoint compatible matching graph), whose nodes correspond to the perfect geometric matchings on a fixed set of n points in the plane (n even), and two nodes are adjacent iff the corresponding matchings are compatible (resp., disjoint and compatible). Aichholzer et al. [1] showed that the compatible matching graph is connected, and its diameter is O(logn). Razen [17] constructed an nelement point set in general position where the diameter of this graph is Ω(logn/loglogn). Theorem 1 shows that the disjoint compatible matching graph has no isolated nodes, but it remains an open problem whether it is always connected.
The stronger conjectures suggested by Aichholzer et al. [1] and our proof of Theorem 1 rely on the convex subdivision method. A disjoint compatible matching is constructed by studying the properties of a dual graph of a convex subdivision. This method has a long history in visibility problems in computational geometry, although the definition of dual graphs is not uniform. For example, O’Rourke [16] used connectivity properties of a dual graph of a convex subdivision to show that the free space around every set of n≥5 segments in the plane in general position can be covered by the visibility polygons of ⌊2n/3⌋ point guards, and this bound is the best possible. See also [20, 21] for variants of this problem. Recently, AlJubeh et al. [2] defined a general class of convex subdivisions for a set of disjoint line segments, and proved that there is a convex subdivision in this class whose dual graph is 2edgeconnected. They proved that a bridge (i.e., a cutedge) in the dual graph is equivalent to the existence of a simple polygon along the boundaries of some convex cells with certain properties (a “forbidden” pattern). Starting from an arbitrary convex subdivision in the class, they applied a sequence of local deformations until all forbidden configurations were removed. In this paper, we follow a similar strategy with a considerably more sophisticated machinery.
2 Convex Subdivisions
We define a general class of convex subdivisions for a set of disjoint line segments in the plane. Let M be a set of n disjoint line segments in the plane, with no three collinear segment endpoints. A convex subdivision of the free space is a set C of interior disjoint convex sets (called cells) such that every cell is disjoint from the segments in M, and the union of their closures tiles the plane. We can interpret a convex subdivision as a cell complex, and define the vertices and edges of a subdivision. The vertices of the subdivision are the endpoints of the segments in M as well as any other point that is incident to three or more cells. We will refer to these two types of vertex as segment endpoints and Steiner points. The edges of the subdivision are line segments between two consecutive vertices along the boundary of a cell, and rays lying on the boundary of a cell incident to a vertex. Note that every segment in M is the union of one or more edges of the subdivision. Every edge of the subdivision is either a segment edge which lies along some line segment in M, or an extension edge which lies in the free space. In the following definition, we orient the extension edges, but keep all segment edges undirected.
Definition 1

The outdegree of every segment endpoint is 1;

the outdegree of every Steiner point in the free space is 0 or 1; the Steiner points in the free space whose outdegree is 0 are called sinks;

the outdegree of every Steiner point lying in the relative interior of a segment is 0;

every cycle passes through at least one segment endpoint.
Let N=N(C) denote the 1skeleton of the convex subdivision \(C\in\mathcal{D} (C)\), that is, the planar network formed by all segments and all extension edges. The network N is partially directed: extension edges are directed and segment edges are undirected.
If no three segment endpoints are collinear, then it is easy to construct a convex subdivision in \(\mathcal{D}(C)\) with no sinks as follows. Consider the segment endpoints v _{1},v _{2},…,v _{2n } in an arbitrary order. For each v _{ i }, draw a directed edge (extension) along the supporting line of the incident line segment v _{ i } v _{ j } that starts from v _{ i } in direction \(\overrightarrow{v_{j}v_{i}}\) and ends when it reaches another line segment, a previous extension, or infinity. This simple algorithm does not produce sinks if no three segment endpoints are collinear. (Aichholzer et al. [1] considered convex subdivisions obtained by this simple algorithm only.)
Definition 2

The extensionpath of a vertex p of outdegree 1 is the open directed path along extension edges starting from p to the first point q≠p lying on a segment or at a sink, or to infinity (see Fig. 3(ii)). The extensionpath does not include the endpoints of the path, and so it is disjoint from all segments.

An extension tree rooted at a vertex v lying on a segment or at a sink is the union of all (open) extensionpaths that terminate at v (see Figs. 3(iii)–(iv)). Every leaf of an extension tree is a segment endpoint.
Let S=S(C) denote the set of sinks of a convex subdivision \(C\in\mathcal{D}(M)\), and let s=S(C). It is easy to verify that if there are M=n segments, then C has n−s+1 cells. Indeed, the free space of the n segments and s sinks, ℝ^{2}∖(M∪S), is a connected region with n+s holes. Insert the 2n extensionpaths one by one. The insertion of each extensionpath either splits a region into two regions or decreases the number of holes. Eventually, the regions are convex cells, which are simply connected. So there were exactly n−s steps in which a region is split into two.
A segment endpoint v may be incident to more than two cells. For a convex subdivision \(C\in\mathcal{D}(M)\), we define the dual graph G=G(C) such that the edge of G corresponding to a segment endpoint v connects the two cells adjacent to the unique outgoing edge of v. Double edges are possible, corresponding to two endpoints of a line segment lying on the common boundary of two cells.
3 Sufficient Conditions for Two Spanning Trees
For a subset C′⊆C of convex cells, let G(C′) be the subgraph of G induced by C′. We will determine the number of edges of each G(C′). Then we find a sufficient condition that guarantees that for every partition \(C=\bigcup_{i=1}^{r} C_{i}\), there are at most 2n−2(r−1) edges within the induced subgraphs G(C _{ i }), and so there are at least 2(r−1) edges between different vertex classes C _{1},…,C _{ r }.
Proposition 4
If every subset C′⊆C induces at most 2(C′−1) edges of the dual graph G, then G contains two edgedisjoint spanning trees.
Proof
For every partition \(C=\bigcup_{i=1}^{r} C_{i}\), the induced subgraphs G(C _{ i }), i=1,…,r, jointly have at most \(\sum_{i=1}^{r} 2(C_{i}1) = 2C2r\leq2(n+1)2r\) edges. The total number of edges is 2n. Therefore, there are at least 2(r−1) edges between distinct vertex classes. □
We can relax this condition noting that the total number of cells in C is only n−s+1. Intuitively, every sink “decreases” the total number of cells by one. We distribute this beneficial effect among disjoint subsets of C. To every subset C′⊆C, we will assign a set of sinks S(C′), of cardinality s(C′), such that disjoint subsets of C are assigned disjoint sets of sinks, that is, for every partition \(C=\bigcup_{i=1}^{r} C_{i}\) we have \(\sum_{i=1}^{r} s(C_{i})\leq s\).
Proposition 5
If every subset C′⊆C induces at most 2(C′+s(C′)−1) edges of the dual graph G, then G contains two edgedisjoint spanning trees.
Proof
For every partition \(C=\bigcup_{i=1}^{r} C_{i}\), the induced subgraphs G(C _{ i }), i=1,…,r, jointly have at most \(\sum_{i=1}^{r} 2(C_{i}+s(C_{i})1) \leq2C+2s2r= 2(ns+1)+2s2r=2(n+1)2r\) edges. The total number of edges is 2n. Therefore, there are at least 2(r−1) edges between distinct vertex classes. □
Associating a Region and Sinks to Sets C′⊆C
Remark 1
Although we would like to assign to C′⊆C every sink in the interior of A(C′), instead we will assign sinks to C′ more carefully. Some sinks in the interior of a hole of A(C′) will be assigned to C′, rather than to the hole. Similarly, A(C′) may lie in a hole of another domain A(C″) for some C″⊂C, and some sinks in the interior of A(C′) may be assigned to C″ instead of C′. This will be crucial later in Lemma 8.

connects a point of ∂A(C′) to a sink or to another point of ∂A(C′) via the interior of A(C′), and

does not contain the outgoing extension edge of any segment endpoint.
The boundary of R(C′) is the union of the boundary of A(C′) and all paths removed from A(C′). Note that the interior of R(C′) is connected, since the edges of N(C) that correspond to edges of G(C′) have not been removed. When we remove a path between two points of ∂A(C′), we effectively merge two components of ∂A(C′) into one component of ∂R(C′). When we remove a path between a boundary point and a sink q, we effectively move q to the boundary of ∂R(C′). As a result, no path of segment edges traverses the interior of R(C′) between two points of ∂R(C′); and no extensionpath traverses the interior of R(C′) from a Steiner point of ∂R(C′) to another point of ∂R(C′).
We say that a closed polygonal curve (p _{1},p _{2},…,p _{ n }) is weakly simple if either n∈{1,2}, or n≥3 and for every ε>0 and 1≤i≤n, there are points \(p_{i}'\) in the εneighborhood of p _{ i } such that \((p_{1}',p_{2}',\ldots, p_{n}')\) is a simple closed polygonal curve. Similarly, an open polygonal curve (p _{1},p _{2},…,p _{ n }), where p _{1} and p _{ n } are points at infinity, is weakly simple if n≥2 and for every ε>0 and 1<i<n, there are points \(p_{i}'\) in the εneighborhood of p _{ i } such that \((p_{1},p_{2}',\ldots, p_{n1}',p_{n})\) is a simple open polygonal curve. Note that every (closed or open) weakly simple polygonal curve with n≥2 vertices subdivides the plane into a left and a right side (one of which may be empty).
The boundary of R(C′) may have several connected components. Each connected component is a weakly simple polygonal curve. We distinguish two types of boundary curve: boundaries of holes (closed curve whose interior is disjoint from R(C′)); and outer boundaries (either a single closed curve whose interior contains R(C′), or one or more open curves).
Sink Assignment Rule

q lies in the interior of R(C′);

q lies on the boundary of a hole of R(C′);

q lies in the interior of a hole of R(C′) and there is an extensionpath from a Steiner point on the boundary of this hole to q.
Proposition 6
If C _{1},C _{2}⊂C such that C _{1}∩C _{2}=∅ and G(C _{1}) and G(C _{2}) are connected subgraphs, then S(C _{1})∩S(C _{2})=∅.
Proof
Suppose, to the contrary, that there is a sink q∈S(C _{1})∩S(C _{2}). Since C _{1} and C _{2} are disjoint, the corresponding domains R(C _{1}) and R(C _{2}) are interior disjoint, and the boundaries of their holes are also disjoint. Therefore q has to lie in the interior of a hole of R(C _{1}) or R(C _{2}). Assume without loss of generality that q lies in the interior of a hole of R(C _{1}) such that there is a extensionpath from a Steiner point on the boundary of that hole to q. Since R(C _{1}) is connected, the entire domain R(C _{2}) lies in (the closure of) a hole of R(C _{1}). The extensionpath from ∂R(C _{1}) to q would have to traverse R(C _{2}) from a Steiner point on the outer boundary of R(C _{2}) to the boundary of a hole of R(C _{2}). However, such an extension path cannot traverse R(C _{2}) by the construction of R(C _{2}). The contradiction shows that there is no sink q∈S(C _{1})∩S(C _{2}). □
Counting the Number of Nodes and Edges of G(C′)
 (a)
edge e lies on the left side of γ, and either e is a segment edge or the extension edge emitted by a segment endpoint;
 (b)
edge e lies on the left side of γ, and it is the outgoing extension edge of a Steiner vertex in γ;
 (c)
edge e lies on the right side of γ, and either e is a segment edge or the extension edge emitted by a segment endpoint;
 (d)
edge e lies on the right side of γ, and it is the outgoing extension edge of a Steiner vertex in γ.
Intuitively, an (a) or (b)feature is an opportunity to enter into the left side of γ along a directed extension edge or an (undirected) segment edge: an (a)feature offers an entry into the left side of γ along a segment edge or an extension edge that leaves a segment endpoint; a (b)feature offers an entry into the left side of γ entirely in the free space of M. The (c) and (d)features have analogous meaning, with an edge entering into the right side of γ.
Let a(γ), b(γ), c(γ), and d(γ) denote the number of (a), (b), (c), and (d)features of γ, respectively. Note that if −γ and γ denote the same curve in Γ taken with opposite orientations, then we have a(γ)=c(−γ), and b(γ)=d(−γ).
Lemma 7
Consider a subset C′⊆C that induces a connected subgraph G(C′). Let h be the number of holes of R(C′). Let s _{in} denote the number of all sinks lying in the interior of R(C′). Orient each component of the boundary ∂R(C′) such that R(C′) lies on their left side, and let a (resp., b) be the total number of (a)features (resp., (b)features) along ∂R(C′). Then graph G(C′) has 2(C′−1)−a−2b+2h+2s _{in} edges.
Proof
Since C′ induces a connected subgraph of G(C′), the domain R(C′) is connected. Let x be the number of line segments in M lying in the interior of R(C′). Now R(C′)∖(M∪S) is a connected polygonal domain with exactly h+x+s _{in} holes.
The number of extensionpaths that enter the interior of R(C′)∖M from its boundaries is exactly a+b+2x. Indeed, every segment in the interior of R(C′) emits two extensionpaths. Every (b)feature emits an extensionpath into the interior of R(C′). Every (a)feature either emits an extensionpath into the interior of R(C′)∖M, or is a segment edge. If an (a)feature is a segment edge, then it is contained in some segment uv∈M that enters the interior of R(C′) along e. If segment uv enters the interior of R(C′) along e, then the remaining portion of uv is in the interior of R(C′), since no path of segment edges traverses the interior of R(C′) by construction. The endpoint of uv corresponding to the (a)feature and lying in the interior of R(C′) emits an extensionpath into the interior of R(C′)∖M.
Insert the a+b+2x extensionpaths one after the other into R(C′). The insertion of each extensionpath either splits a region into two regions or decreases the number of holes. Eventually, we obtain convex cells, which are simply connected. So there were exactly (a+b+2x)−(h+x+s _{in})=a+b+x−h−s _{in} steps in which a region is split into two regions. Thus the number of cells is C′=1+a+b+x−h−s _{in}.
Critical Polygons
We show next that if G(C′) has more than 2(C′+s(C′)−1) edges for some C′⊆C, then a single component of the boundary ∂R(C′) is responsible for this. Let Γ _{+}⊂Γ be the set of all closed weakly simple polygonal curves in Γ oriented counterclockwise. For every γ∈Γ _{+}, let s(γ) denote the number of sinks q such that either q∈γ, or q lies in the interior of γ and there is an extensionpath from a Steiner point of γ to q.
Lemma 8
Proof
By Proposition 5, it is enough to show that if G(C′) has more than 2(C′+s(C′)−1) edges for some C′⊆C, then there is a curve γ∈Γ _{+} such that c(γ)+2d(γ)+2s(γ)<2.
Corollary 9
If \(C\in\mathcal{D}(M)\) is a convex subdivision with no critical polygons, then the dual graph G(C) contains two edgedisjoint spanning trees.
Intuitive Interpretation of Critical Polygons
Recall that N=N(C) denotes the planar network formed by all segments and extensions of a convex subdivision \(C\in\mathcal{D}(M)\). The line segments in M are undirected, and the extensions are directed. If a polygon γ is 0critical then one cannot travel from γ to the exterior of γ respecting the directions of extension edges. Intuitively, “there is no way out” from γ. If γ is 1critical, then every path to the exterior of γ that respects the directions of extension edges has to pass through the single (c)feature of γ. The condition that the directions of all extension edges should be respected can be relaxed for the edges of extension trees rooted at sinks: if γ is critical, then s(γ)=0, and thus no extensionpath starting from the exterior of γ can terminate at a sink on or in the interior of γ.
Dpaths
We can formalize the above intuition. We say that a directed path in N(C) is a Dpath, if it respects the directions of all extension edges that are not part of any extension tree rooted at a sink. That is, a Dpath may traverse segment edges and edges of extension trees rooted at sinks in an arbitrary direction.
Proposition 10

If γ∈Γ _{+} is 0critical, then there is no Dpath from a point in γ to the exterior of γ.

If γ∈Γ _{+} is 1critical, then every such Dpath enters the exterior of γ along the same edge, which is incident to a vertex lying on a line segment in M.
Proof
Suppose that there is a Dpath from γ∈Γ _{+} to its exterior, and let e be the first edge that enters the exterior of γ. If e is a segment edge (undirected) or an extension edge directed away from γ, then it is a (c) or (d)feature of γ. If e is an extension edge directed towards γ, then it lies on an extensionpath that terminates at a sink q. If this extensionpath leaves γ along some extension edge e′ before it reaches q, then e′ is a (d)feature of γ. If, however, sink q lies on or in the interior of γ, then s(γ)≥1. In all cases, we have c(γ)+2d(γ)+2s(γ)>0.
The only possibility for c(γ)+2d(γ)+2s(γ)=1 is that c(γ)=1. In this case, any such Dpath enters the exterior of γ along the same segment edge, which is incident to a vertex lying on a line segment. □
Maximal Critical Polygons
For every closed polygon γ∈Γ _{+}, let C(γ) denote the set of cells in the interior of γ; and let R(γ)=R(C(γ)). We define the size of γ to be the cardinality of C(γ). We say that a critical polygon γ is maximal if there is no other critical polygon γ′ such that C(γ)⊂C(γ′). Similarly, we define maximal 0critical and maximal 1critical polygons.
In the next section, we will construct a convex subdivision recursively, by modifying the boundary of a maximal critical polygon (defined below). The disjointness of maximal critical polygons is essential for this approach.
Proposition 11
 (i)
If γ _{1},γ _{2}∈Γ _{+} are maximal 0critical, then R(γ _{1}) and R(γ _{2}) are disjoint.
 (ii)
If there is no 0critical polygon in Γ _{+} and γ _{1},γ _{2}∈Γ _{+} are maximal 1critical, then R(γ _{1}) and R(γ _{2}) are disjoint.
Proof
Now suppose that there is no 0critical polygon in Γ _{+}, and γ _{1},γ _{2}∈Γ _{+} are maximal 1critical polygons (Fig. 10(iii)–(iv)). That is, γ _{1} and γ _{2} have no (d)features, and they each have exactly one (c)feature. Let R be the union of R(γ _{1}), R(γ _{2}), and all holes of R(γ _{1})∪R(γ _{2}). Then the boundary of R contains no (d)feature, and at most two (c)features. Any (c)feature of ∂R corresponds to a (c)feature of either γ _{1} or γ _{2}. However, ∂R must have at least one (c)feature, since we assumed that there is no 0critical polygon. If ∂R has exactly one (c)feature (Fig. 10(iii)–(iv)), then its outer boundary is a 1critical polygon that is strictly larger than γ _{1} and γ _{2}, contradicting the maximality of γ _{1} and γ _{2}. So we may assume that R has exactly two (c)features, each of which must be the same edge in N as the corresponding (c)feature of γ _{1} or γ _{2}. It follows that the (c)feature of γ _{1} (resp., γ _{2}) is in the exterior of R(γ _{2}) (resp., R(γ _{1})).
We have shown that R(γ _{1}) and R(γ _{2}) overlap, that is, C(γ _{1})∩C(γ _{2})≠∅ (Fig. 11(iii)–(iv)). Let R′ be a connected component of int(R(γ _{1}))∩int(R(γ _{2})). As noted above, R′ is disjoint of the (c)features of γ _{1} and γ _{2}. We conclude that ∂R′ has neither (c) nor (d)features, since it would be a local feature of the same type for γ _{1} or γ _{2}. Similarly, ∂R′ contains no sink, since such a sink would lie on γ _{1} or γ _{2}. Hence ∂R′ is 0critical, contradicting our assumption. □
4 Constructing a Convex Subdivision
Let M be a set of n disjoint line segments with no three collinear endpoints. In this section we construct a convex subdivision \(C\in\mathcal{D} (M)\) with no critical polygon. We start with an initial convex subdivision \(C_{0}\in\mathcal{D}(M)\), which has no sinks, and then apply a sequence of modifications in order to eliminate critical polygons. For a convex subdivision \(C\in\mathcal{D}(M)\), let s(C) denote the total number of sinks, and let M _{ C } be the set of segments that intersect or lie in the interior of some critical polygons. A modification step may have two possible outcomes: (1) We create a new sink and s(C) strictly increases. In this case, we redraw the convex subdivision by a simple “left–right” algorithm described below that preserves all existing sinks. (2) There are no new sinks but we destroy a maximal critical polygon and M _{ C } strictly decreases. In this case we consider the next maximal critical polygon and recurse. In each modification step, the function f(C)=n⋅s(C)−M _{ C } strictly increases. Since the value of f(C) is always between −n and n ^{2}, after fewer than n ^{2}+n modification steps, we obtain a convex subdivision \(C\in\mathcal{D}(M)\) with M _{ C }=∅, that is, with no critical polygons.
Left–right Subdivisions
Our initial convex subdivision \(C_{0}\in\mathcal{D}(M)\) is a “left–right” subdivision defined below. If a modification step creates a new sink, we redraw a left–right subdivision that preserves all extension trees rooted at sinks, and draws new extensions for all other segment endpoints.
Let M be a set of n disjoint line segments in the plane such that no three endpoints are collinear, and no two segment endpoints have the same xcoordinate. Assume that we are given a set T of s≥0 pairwise disjoint extension trees (initially s=0), each of which terminates at a sink, and have convex angles at their vertices. We construct extensions for all remaining segment endpoints in two phases.
Sort the segments in M according to the xcoordinates of their left endpoints in increasing order. Let u _{ i } and v _{ i } be the left and right endpoint, respectively, of the ith segment. In the first phase, consider the left endpoints u _{1},…,u _{ n }, successively. If u _{ i } is not incident to an extension tree in T, then draw a directed segment (left extension) along \(\overrightarrow{v_{i}u_{i}}\) from u _{ i } until it reaches another segment, a previous extension, or infinity. In the second phase, consider the right endpoints v _{1},…,v _{ n }. If v _{ i } is not incident to an extension tree in T, then draw a directed segment (right extension) along \(\overrightarrow {u_{i}v_{i}}\) from v _{ i } until it reaches another segment, a previous extension, or infinity. The algorithm extends all segments beyond both of their endpoints, all angles are convex, and so it produces a convex subdivision in \(\mathcal{D}(M)\) with exactly s sinks. The convex subdivision constructed by this algorithm, for any set T, is called a left–right subdivision of M.
Proposition 12
If \(C\in\mathcal{D}(M)\) is a left–right subdivision, then N _{1} contains a Dpath from any point p∈N _{1} to infinity.
Proof
We construct a Dpath starting from a point p∈N _{1} by repeating the following three steps: (1) If p lies on a segment, then walk to its left endpoint. (2) If p is a point incident to an extension tree rooted at a sink, then walk to the leftmost leaf of the extension tree. (3) If p lies on a left extension in N _{1}, then follow the left extension to the end. To prove that this walk goes to infinity, it is enough to show that it has no loops. Each left segment endpoint u _{ i } either emits a left extension or is incident to an extension tree rooted at a sink and the leftmost vertex of the extension tree is strictly to the left of u _{ i }. Therefore the left endpoints of the segments along the walk have decreasing xcoordinates, and so the walk visits every left segment endpoint at most once. □
Corollary 13
Left–right subdivisions have no 0critical polygons.
Proof
Combine Propositions 10 and 12. □
Subdivisions with No 0Critical Polygons
Definition 3
 1.
N(C) contains a Dpath from every point p∈N(C) to infinity.
 2.
If a segment endpoint v lies on or in the interior of a critical polygon, or if v is incident to any extension tree rooted at a sink, then its outgoing edge is collinear with the incident segment.
 3.
If a Steiner point p of outdegree 1 lies on or in the interior of a critical polygon, but it is not incident to any extension tree rooted at a sink, then its outgoing edge is collinear with an incoming edge.
Proposition 14
Every left–right subdivision is in \(\mathcal{D}^{*}(M)\).
Proof
Property 1 follows from Proposition 12. For property 2, consider an endpoint v of a segment uv∈M. If v is incident to an extension tree in T, rooted at a sink, then v is a leaf of this tree. Since every tree in T has convex angles at their vertices, the outgoing edge of v is collinear with segment uv. If v is not incident to any tree in T, then the outgoing edge is an extension of uv by construction. For property 3, let p be a Steiner vertex of outdegree 1, but not part of any tree in T. By construction, the outgoing edge of p is collinear with an incoming edge. □
In fact, the vertices of a left–right subdivision satisfy all these conditions in the exterior of critical polygons, too. The intuition for the definition of class \(\mathcal{D}^{*}(M)\) is that our local modifications successively destroy maximal critical polygons, but their effect remains largely outside of the surviving critical polygons. That is, on the boundary and inside the current critical polygons, we always find a structure similar to left–right subdivisions. The special conditions on the extension trees rooted at sinks ensure that at every incident segment endpoint v, the incident extension edge of the tree and the segment edge already determine convex angles (that is, two straight angles), independently of any incoming extension edges incident to v.
As an immediate consequence of Definition 3, the subdivisions in \(\mathcal{D}^{*}(M)\) have no 0critical polygons.
Proposition 15
Let \(C\in\mathcal{D}^{*}(M)\). If γ∈Γ _{+}(C) is a 1critical polygon, then for every p∈N(C) in the closed polygonal domain bounded by γ, there is a Dpath δ(p)⊂N(C) from p to the (c)feature of γ.
Proof
By Definition 3, N contains a Dpath δ(p) from p to infinity. By Proposition 10, δ(p) has to pass through the (c)feature of γ. □
We can now focus on 1critical polygons. For our local modification steps, it will be convenient to group together consecutive collinear extension edges in N. Let a straightextension be a maximal path along consecutive collinear extension edges in N. For example, in a left–right subdivision, every left extension (resp., right extension) is a straightextension, even though they may consist of several collinear extension edges of N (see Fig. 12(iii)). Definition 3(2) requires that if a straightextension is not part of an extension tree rooted at a sink and its endpoint p is a Steiner point on or in the interior of a critical polygon, then p must be in the relative interior of some other straightextension.
Testing Whether a Segment is in M _{ C }
While the number of sinks remains the same, we measure the progress of our algorithm with M _{ C }, the number of segments that intersect or lie in the interior of some critical polygon. If \(C\in\mathcal{D}^{*}(M)\), there is a simple equivalent condition for m∈M _{ C }. Two Dpaths in N are endpointdisjoint if no segment endpoint lies in the relative interior of both paths.
Proposition 16
Let \(C\in\mathcal{D}^{*}(M)\) and m∈M. We have \(m\not\in M_{C}\) if and only if N(C) contains two endpointdisjoint Dpaths from any point p∈m to infinity.
Proof
First consider a segment m∈M _{ C }. Let γ be the maximal 1critical polygon that intersects m or contains m in its interior. If m contains the (c)feature of γ, then all Dpaths from any point p∈m to infinity must pass through the endpoint of m lying in the exterior of γ. For all other segments m∈M _{ C }, all Dpaths from any point p∈m to infinity must pass through the (c)feature of γ, and then follow the line segment containing the (c)feature to its endpoint in the exterior of γ. Hence any two Dpaths to infinity have to pass through the same segment endpoint.
Next consider a segment \(m\not\in M_{C}\). By Definition 3(1), there is a Dpath from any p∈m to infinity in N. Suppose that every Dpath in N from p∈m to infinity passes through the same segment endpoint w. Let W⊂N be the set of all points q∈N such that all Dpaths from q to infinity go through w. The set W is bounded, and its outer boundary is a 1critical polygon γ∈Γ _{+}. Segment m lies on or in the interior of γ, contradicting our assumption that \(m\not\in M_{C}\). □
One Step of the Recursion
It remains to show that if a convex subdivision in \(\mathcal{D}^{*}(M)\) has a critical polygon, then we can perform a local modification step that strictly increases f(C)=n⋅s(C)−M _{ C }.
Lemma 17
If \(C\in\mathcal{D}^{*}(M)\) and C has a 1critical polygon, then there is a convex subdivision \(C'\in\mathcal{D}^{*}(M)\) such that n⋅s(C)−M _{ C }<n⋅s(C′)−M _{ C′}.
Proof
Every convex vertex q _{ i }, i=1,…,k, is a Steiner point in the free space: q _{ i } cannot be at a (c) or (d)feature of γ by our assumptions. It cannot be at an (a)feature, either, because an incident line segment would create a (c)feature of γ by Definition 3(2). Every q _{ i }, i=1,…,k, is incident to two edges of γ, which are extension edges.
We define an orientation for these vertices as follows. Vertex q _{ i } is counterclockwise if the edge preceding q _{ i } in a counterclockwise order along γ is directed into q _{ i }. Vertex q _{ i } is clockwise if the edge following q _{ i } in a counterclockwise order along γ is directed into q _{ i }. If both edges are directed into q _{ i }, then it is both clockwise and counterclockwise.
A Brief Preview
A very brief preview of the remainder of the proof of Lemma 17 follows. Choose a convex vertex q _{ i }, 1≤i≤k, modify the outgoing edge of q _{ i }, and make some additional adjustments to obtain a convex subdivision \(C'\in\mathcal{D}^{*}(M)\). One of the following two strategies will suffice. (1) Replace the outgoing edge of q _{ i } with q _{ i } q _{ i+1}, and introduce a new sink at q _{ i+1}. In this case, recompute a left–right subdivision (including the new sink) C′, and the number of sinks increases by one. (2) Replace the outgoing edge of q _{ i } with an edge of ∂H _{ γ }, and recompute some of the extension edges lying in the geodesic hull H _{ γ }. In this case, the number of sinks remains the same but M _{ C } strictly decreases.
We proceed with the details. Distinguish two cases.
Case 1
Subcase 1a: q _{ i } q _{ i+1} is an edge of H _{ γ } (see q _{2} q _{3} in Fig. 15). Replace the outgoing extension edge of q _{ i } with the directed edge q _{ i } q _{ i+1}, thereby introducing a new sink at q _{ i+1}. Build a valid extension tree rooted at q _{ i+1} (described below), which is disjoint from any extension trees rooted at existing sinks of C. Then compute a left–right subdivision C′ with these s(C)+1 sinks (the s(C) sinks of C and a new sink at q _{ i+1}). Subdivision C′ is in \(\mathcal{D}^{*}(M)\) because it is a left–right subdivision, and it has one more sink than C.
It remains to build an extension tree rooted at q _{ i+1}. Let T _{0} be the union of q _{ i } q _{ i+1}, all extensionpaths of N leading to q _{ i }, and all extension paths of N leading to q _{ i+1}. To show that T _{0} is a crossingfree directed tree rooted at q _{ i+1}, we need the following claim. Let γ(q _{ i },q _{ i+1}) denote the portion of γ from q _{ i } to q _{ i+1} in counterclockwise order.
Claim 1
There is no extensionpath in N(C) to q _{ i } (resp., q _{ i+1}) from any other vertex of γ(q _{ i },q _{ i+1}).
Proof
Suppose, to the contrary, that there is such an extensionpath δ. Then the composition of δ with (part of) γ(q _{ i },q _{ i+1}) is a weakly simple polygon with nonempty interior and without (c) or (d)features. This contradicts the fact that N(C) has no 0critical polygons, completing the proof. □
Since the original outgoing edges of q _{ i } and q _{ i+1} are not part of T _{0}, and any other vertex has outdegree at most one, T _{0} is a tree. The tree T _{0} does not contain any extension edge that crosses q _{ i } q _{ i+1}, because every such extension edge leads to an interior vertex of γ(q _{ i },q _{ i+1}), which are not in T _{0} by Claim 1. Therefore T _{0} is a plane directed tree rooted at q _{ i+1}. Its leaves are adjacent to segments in M by definition. At the leaves of T _{0} lying on the boundary or in the interior of γ, the adjacent segment is collinear with the leaf by Definition 3(2). But this does not necessarily hold for leaves in the exterior of γ (see, e.g., segment endpoint v _{1} in Fig. 15(i)).
We augment T _{0} to a tree in which every leaf is collinear with the incident segment edge. Set T=T _{0}, and augment it by recursively appending to it any extension tree rooted at a segment endpoint v, which is at a leaf of T but the leaf is not collinear with the incident line segment. The resulting directed tree T consists of extension edges, it is rooted at q _{ i+1}, but is it not necessarily an extension tree because some of its nonleaf vertices may be segment endpoints. Perturb T at each such segment endpoint v, by creating a sufficiently short outgoing edge vv′ collinear with the segment incident to v (see Fig. 15(ii)). After this perturbation, we obtain an extension tree rooted at q _{ i+1}, as required.
The ray \(\overrightarrow{q_{i}r_{i}}\) hits γ(q _{ i },q _{ i+1}) at some point t (see Fig. 17(ii)). Note that any extension edge that crosses q _{ i } t is directed from the right to the left side of \(\overrightarrow{q_{i}t}\), because no extension leaves γ(q _{ i },q _{ i+1}). Let α(r _{ i },q _{ i+1}) be the directed path^{1} from r _{ i } to q _{ i+1} that starts with the directed segment r _{ i } t and then follows γ counterclockwise from t to q _{ i+1}. Let x be the first point on α(r _{ i },q _{ i+1}) that lies on a straightextension that contains an edge of δ(q _{ i },q _{ i+1}). Point x∈α(r _{ i },q _{ i+1}) exists, because the outgoing edge of q _{ i+1} is part of δ(q _{ i },q _{ i+1}). Let δ(x) be a Dpath from x to the (c)feature of γ. Now let P be the polygonal domain enclosed by segment q _{ i } r _{ i }, the initial portion of path α(r _{ i },q _{ i+1}) from r _{ i } to x, and paths δ(q _{ i }) and δ(x).
Let e _{0} be the straightextension emitted by q _{ i } (see Fig. 17(iii)). We will replace e _{0} with q _{ i } r _{ i }. Any extension edge that crosses q _{ i } r _{ i } in N(C) will be truncated. Let E be the set of all edges of polygon P that are contained in some straightextension of N(C) that intersects q _{ i } r _{ i }. Clearly, we have e _{0}∈E. Let every edge e∈E inherit its direction from the straightextension it is contained in.
Claim 2
The interior of P lies on the right side of every edge e∈E.
Proof
Let P _{0} be the polygonal domain enclosed by q _{ i } r _{ i }, δ(q _{ i }), and δ(r _{ i }). Consider an edge e∈E. Since e crosses neither δ(q _{ i }) nor δ(r _{ i }), we have e⊂P _{0}. Recall that \(\widehat{q}\) does not lie between q _{ i } and \(\widehat{r}_{i}\) along path δ(q _{ i },q _{ i+1}). This implies that P _{0}⊂P. Hence edge e∈E lies on δ(q _{ i }), and the interiors of both P _{0} and P are on the right side of e. □
Claim 3
If p is a point on an edge e∈E, then a ray shot from p into the interior of P cannot hit any other edge in E.
Proof
If a ray is emitted from a point p∈e of some edge e∈E, then it cannot hit another edge of E in the same sector, and it can only cross the boundary between any two adjacent sectors from left to right. □
Let r _{ i } y=r _{ i } t∩∂P be the portion of r _{ i } t on the boundary of P (that is, y=x if x∈r _{ i } t as in Fig. 17(ii), and y=t otherwise as in Fig. 16(ii)).
We are now ready to construct a new convex subdivision C′, by modifying some extensions of C. Refer to Fig. 18. All extensions in the exterior of P remain the same (but some new extensions starting from P may enter the exterior of P). All extension trees rooted at sinks remain the same (even if they are in the polygon P). All straightline extensions that start from the interior of P and overlap with some edge of P are also preserved. Replace the straightextension e _{0} emitted by q _{ i } by the directed segments q _{ i } r _{ i } and r _{ i } y (these become the outgoing edges of q _{ i } and r _{ i }, respectively). The edges of N(C) that cross q _{ i } y (from the exterior of P into the interior of P) are truncated such that they now end at q _{ i } y. In particular, all extension edges along e _{0},…,e _{ ℓ−1} are erased. Extend the edges of N(C) that hit some e∈E from the exterior of P successively into the interior of P until they hit a line segment, the boundary of ∂P, or another extension (by Claim 3, they do not hit any other edge in E). See Fig. 18(iii).
It remains to replace the straightextensions of N(C) that start from a segment endpoint u in the interior of P but do not overlap with any edge of P and are not part of any extension tree rooted at a sink. Denote by U the set of segments endpoints in the interior of P whose straightextensions are still missing. Consider the sectors S _{0},…,S _{ ℓ−1} in this order. Recall that no segment in M crosses the boundary between sectors. For each sector S _{ j }, we draw extensions for the endpoints U∩S _{ j } in two phases. In the first phase, successively draw the extensions whose directions point towards the right of edge e _{ j }. In the second phase, draw successively the extensions whose directions point towards the left of e _{ j }. The extensions drawn in the first phase remain in polygon P (they may enter sectors S _{ j′}, j′>j); the extensions drawn in the second phase may exit polygon P through the segment e _{ j }. Denote by \(C'\in \mathcal{D}(M)\) the resulting convex subdivision of M (Fig. 18(iv)).
Claim 4

N(C′) contains a Dpath from every point p∈N(C′) to infinity.

N(C′) contain a Dpath from every point p∈R(γ)∪P to q _{0}.
Proof
Before the modifications, N(C) contained a Dpath from every point p∈N(C) to infinity, since \(C\in\mathcal{D}^{*}(M)\). The modification affects only those paths that intersect the interior of polygon P. Suppose that p∈N(C), and its Dpath δ(p) to infinity intersected polygon P. If δ(p) reached ∂P from the exterior of P, and overlapped with an edge e∈E, then it now enters the interior of P, reaches a point p′∈∂P (along extensions drawn in the first phase in each sector, as in the proof of Proposition 12), and then goes to infinity along δ(p′). If δ(p) reached ∂P from the exterior of P at the edge q _{ i } y, then it now follows q _{ i } y to y, and goes to infinity along δ(y). Finally, if p lies in the interior of P, then N(C′) now contains a path from p to a point p′∈∂P (along the extensions drawn in the first phase in each sector), and then path δ(p′) continues in the exterior of P to infinity. □
Claim 5
We have M _{ C′}⊆̷M _{ C }.
Proof
We use Proposition 16 to check whether a segment m∈M is in M _{ C }. First we show that every segment m∈M∖M _{ C } continues to have two endpointdisjoint Dpaths to infinity. Let m∈M∖M _{ C }. It lies in the exterior of γ, and it had two endpointdisjoint Dpaths to infinity in N(C). The modification affects only those paths that intersect polygon P. Every Dpath intersecting P reaches γ, and so it has to pass through the (c)feature q _{0}. Out of two endpointdisjoint Dpaths from m, at most one passes through q _{0}, and so at most one intersects polygon P. Let p∈∂P be the point where this Dpath reaches ∂P. It is enough to show that N(C′) contains a Dpath from p to q _{0}. It was shown in Claim 4 that there is a Dpath from p to q _{0}, which remains in the polygonal domain R(γ)∪P.
Next we show that at least one segment m∈M _{ C } has two endpointdisjoint Dpaths to infinity in N(C′). Let u∈γ be the segment endpoint whose extensionpath reaches q _{ i }, and let uv∈M be the segment incident to u (see Fig. 16(ii)). We have uv∈M _{ C }, since u∈γ. After the modification, the extensionpath of u ends at r _{ i }, which is the endpoint of a segment in the exterior of γ. From the other endpoint v, however, there is still a path to q _{0} by Claim 4. In N(C), r _{ i } had two endpointdisjoint Dpaths to infinity: one goes to q _{0} followed by some Dpath α _{1} to infinity, and the other a Dpath α _{2} remains entirely in the exterior of γ. After the modification, N(C′) contains two endpointdisjoint Dpaths from uv to infinity: one going from v to q _{0} followed by α _{1}, and another one goes from u to r _{ i } followed by α _{2}. Hence uv∈M _{ C } but \(uv\not\in M_{C'}\). □
Claim 6

If a segment endpoint v∈N(C′) lies on or in the interior of a critical polygon, or if v is incident to an extension tree rooted at a sink, then its outgoing edge is collinear with the line segment.

If a Steiner point p∈N(C′) of outdegree 1 lies on or in the interior of a critical polygon, but it is not part of any extension tree rooted at a sink, then its outgoing edge is collinear with an incoming edge.
Proof
As a result of the modifications in polygon P, the first condition is violated only at the segment endpoint r _{ i } (the new outgoing edge of r _{ i } is contained in r _{ i } y, which is not collinear with the incident segment in M). However, r _{ i } was in the exterior of all critical polygons in N(C) by the maximality of γ∈Γ _{+}, and by Claim 5 it is also in the exterior of all critical polygons in N(C′). The second condition is violated only for the Steiner vertex q _{ i }. However, q _{ i } now has an extensionpath to r _{ i }, which lies in the exterior of all critical polygons of N(C′), and so q _{ i } is also in the exterior of all critical polygons of N(C′). □
By Claims 4, 5, and 6, the modification in subcase 1b produces a subdivision \(C'\in\mathcal{D}^{*}(M)\) such that s(C′)=s(C) and M _{ C′}<M _{ C }.
Case 2
Subcase 2a: the line segment q _{0} q _{1} lies in the geodesic hull H _{ γ } (see q _{0} q _{1} in Fig. 19(i)). Replace the outgoing edge of q _{1} with the directed edge \(q_{1}q_{0}'\), where \(q_{0}'\) is a point on the outgoing edge of q _{0} in a small neighborhood of q _{0} (Fig. 19). Let P be the polygonal domain bounded by \(q_{1}q_{0}'\), \(q_{0}q_{0}'\), and the Dpath δ(q _{1}) (note that the Dpath δ(q _{0}) degenerates to a single point). Recompute the extensions within P in the same way as it was done in Subcase 1b above. We obtain a new convex subdivision \(C'\in\mathcal{D}^{*}(M)\), analogously to subcase 1b. All segments in M∖M _{ C } still have two endpointdisjoint Dpaths to infinity. Let u be the segment endpoint along γ whose extensionpath reaches q _{1}. It is an endpoint of some segment uv∈M _{ C }. We show that \(uv\not\in M_{C'}\), and so M _{ C′}≤M _{ C }, as required.
We use Proposition 16 to verify that \(uv\not\in M_{C'}\). Let α _{ v } be the Dpath from v that starts with the extensionpath emitted by v and goes to infinity. Since uv∈M _{ C }, the Dpath α _{ v } passes through q _{0}, and \(q_{0}'\). After the modification, there is still a Dpath from v to q _{0} in the polygonal domain R(γ)∪P. On the other hand, u now has a Dpath to \(q_{0}'\) along an extensionpath that uses the new edge \(q_{1}q_{0}'\); this Dpath bypasses the bottleneck q _{0}. So there are now two endpointdisjoint Dpaths from any point in M to \(q_{0}'\). Note that \(q_{0}'\) is in the exterior of γ, and by the maximality of the 1critical polygon γ, it has two endpointdisjoint Dpaths to infinity. The composition of these Dpaths (from m to \(q_{0}'\) and from \(q_{0}'\) to infinity) provides two endpointdisjoint Dpaths from m to infinity.
Let q _{1} r _{1} be the edge of ∂H _{ γ } incident to q _{1}. Since r _{1} is a reflex vertex of the geodesic hull H _{ γ }, it is an endpoint of some line segments lying in the exterior of γ. The ray \(\overrightarrow{q_{1}r_{1}}\) hits γ(q _{0},q _{1}) at some point t (Fig. 20(i)). Note that any extension edge that crosses q _{ i } t is directed from the left to the right side of \(\overrightarrow{q_{1} t}\), because no extension leaves γ(q _{0},q _{1}). Let α(r _{1},q _{0}) be the directed path from r _{1} to q _{0} that starts with the directed segment r _{1} t and then follows γ clockwise from t to q _{0}. Let x be the first point on α(r _{1},q _{0}) such that either x lies on a straightextension that contains an edge of δ(q _{0},q _{1}), or x=q _{0}. Let δ(x) be a Dpath from x to q _{0}. Now let P be the polygonal domain enclosed by segment q _{1} r _{1}, the initial portion of path α(r _{1},q _{0}) from r _{1} to x, and paths δ(q _{1}) and δ(x). Analogously to subcase 1b, we construct a subdivision \(C'\in\mathcal{D}^{*}(C)\) by replacing the outgoing edge of q _{1} by q _{1} r _{1}, and redrawing the extensions inside polygon P (Fig. 20(ii)). This completes Subcase 2b, and the proof of Lemma 17. □
5 From Two EdgeDisjoint Spanning Trees to Disjoint Compatible Matchings
In this section, we prove the disjoint compatible matching conjecture. We first prove Lemma 3, which involves purely graph theoretic arguments. Then we show that Theorem 2 and Lemma 3 readily imply the existence of a compatible disjoint matching for any matching M.
We mention two related results. Farber et al. [9] and Cordovil and Moreira [8] proved independently that if G=(V,E) is the union of two edgedisjoint spanning trees on n vertices, then one can exchange all edges of the two trees in n−1 steps such that each step exchanges one pair of edges and maintains a partition of E into two spanning trees. These exchange steps, however, do not seem to be sufficient to reach a partition of E into two conflictfree spanning trees. Cannon et al. [7] have recently designed a polynomialtime algorithm for testing whether a multigraph with given conflict pairs has an even orientation such that if the indegree of a vertex is 2, then the two incoming edges are not in conflict.
5.1 The Union of Two EdgeDisjoint Spanning Trees
We start with a brief review of wellknown properties of multigraphs formed by the edgedisjoint union of two spanning trees. We use the following shorthand notation throughout this section: for a set S and an element t, we write S+t=S∪{t} and S−t=S∖{t}. Let G=(V,E) be a multigraph on n vertices which is the edgedisjoint union of a blue spanning tree (V,B) and a red spanning tree (V,R). Since G has n vertices and 2n−2 edges, the sum of the vertex degrees is 4n−4. Since each vertex is incident to both spanning trees, the minimum vertex degree is 2. It follows that G has at least two vertices of degree 2 or 3.
Vertex Pruning
Let v _{1}∈V be a vertex of degree 2, incident to edges e _{1},e _{2}∈E. Then {e _{1},e _{2}} is a cut set of G, and so each spanning tree has at least one edge in {e _{1},e _{2}}. Assume without loss of generality that e _{1}∈B and e _{2}∈R. Then v is a leaf in each spanning tree. It follows that (V−v _{1},B−e _{1}) and (V−v _{1},R−e _{2}) are two edgedisjoint spanning trees on the vertex set V−v _{1}. Pruning vertex v _{1} is the operation that replaces (V,B∪R) by (V−v _{1},(B−e _{1})∪(R−e _{2})).
Now let v _{2}∈V be a vertex of degree 3, incident to edges e _{1}=v _{2} u _{1}, e _{2}=v _{2} u _{2}, and e _{3}=v _{2} u _{3}. Then two of these edges are in the same tree, and the third edge is in the other tree. Assume without loss of generality that e _{1},e _{2}∈B and e _{3}∈R. Note that if we remove v _{2} and all three incident edges from G, then the blue tree breaks into exactly two connected components, where u _{2} and u _{3} are in distinct components. The two components can be reconnected by adding a new edge between u _{2} and u _{3}. Consequently, (V−v _{2},B−e _{1}−e _{2}+u _{1} u _{2}) and (V−v _{2},R−e _{3}) are two edgedisjoint spanning trees on the vertex set V−v _{2}. Pruning vertex v _{2} is the operation that replaces (V,B∪R) by (V−v _{2},(B−e _{1}−e _{2}+u _{1} u _{2})∪(R−e _{3})).
Algorithm 1. Successive Pruning
 1.
Input: a multigraph G _{1}=(V _{1},E _{1}) such that E _{1}=B _{1}∪R _{1}, where (V _{1},B _{1}) and (V _{1},R _{1}) are edgedisjoint spanning trees.
 2.Put i=1. While E _{ i }>0, do:
 (a)
pick an arbitrary vertex v _{ i }∈V _{ i } which has degree 2 or 3 in G _{ i };
 (b)
prune v _{ i } from G _{ i }=(V _{ i },B _{ i }∪R _{ i }) to obtain G _{ i+1}=(V _{ i+1},B _{ i+1}∪R _{ i+1});
 (c)
put i=i+1.
 (a)
Edge Flip at a Vertex of Degree 3
Consider again a vertex v _{2} of degree 3 in G, incident to edges e _{1}=v _{2} u _{1}, e _{2}=v _{2} u _{2}, and e _{3}=v _{2} u _{3}. Assume, without loss of generality, that e _{1},e _{2}∈B and e _{3}∈R. If we delete e _{1} and e _{2}, the blue tree breaks into three components, containing the vertices u _{1}, u _{2} and v _{2}, respectively, where {v _{2}} is a onevertex component of (V,B−e _{1}−e _{2}). Suppose that u _{3} is in the same component as u _{2}. Then (V,B−e _{2}+e _{3}) and (V,R−e _{3}+e _{2}) are also two edgedisjoint spanning trees of G. An edge flip at v _{2} is the operation that replaces the edge partition E=B∪R by E=(E−e _{2}+e _{3})∪(E−e _{3}+e _{2}).
Contracting Double Edges
Suppose that G=(V,E) contains two parallel edges, that is, edges e _{1},e _{2}∈E with two common endpoints u,v∈V. Since no spanning tree has double edges, e _{1} and e _{2} are in distinct spanning trees, say e _{1}∈B and e _{2}∈R. The contraction of e _{1} and e _{2} is the operation of deleting edges e _{1} and e _{2} and identifying vertices u and v. We obtain a multigraph G′ with n−1 vertices and 2(n−2) edges. Exactly one edge is contracted in each of (V,B) and (V,R), hence G′ is the edgedisjoint union of two spanning trees.
5.2 ConflictFree Tree Representations
Definition 4

A subset of edges R⊆E has a conflictfree tree representation if, after some appropriate vertex splitting operations, the edges in R form a tree in which adjacent edges are not in conflict.

Let U⊆V be a subset of vertices. A subset of edges R⊆E has a conflictfree tree representation with leaves at U if, after some appropriate vertex splitting operations, the edges in R form a tree in which adjacent edges are not in conflict, and all copies of each vertex u∈U are leaves.
Proposition 18
Let G=(V,E) be a multigraph and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. If R⊆E has a conflictfree tree representation and R is even, then (V,R) has an even orientation such that if the indegree of a vertex is 2, then the two inbound edges are not in conflict.
Proof
It is well known that every connected graph with an even number of edges has an even orientation [14]. After some vertex splitting operations, (V,R) becomes a spanning tree (V′,R′) with no two adjacent edges in conflict (as in Fig. 22). Fix an arbitrary even orientation for the tree (V′,R′). Since all indegrees are even, for every directed edge \(\overrightarrow{e}\in R'\), there is another edge \(\overrightarrow{f}\in R'\) directed into the same vertex such that e and f are not in conflict. This orientation is an even orientation of (V,R) with the same property. Hence, if a vertex has indegree 2, then the two inbound edges are not in conflict. □
In the proof of Lemma 3, we find an even orientation for a multigraph G=(V,E) which contains two edgedisjoint spanning trees. Our technique for constructing an even orientation focuses on the subgraph of G formed by two edgedisjoint spanning trees, and all other edges will have only supporting roles. To avoid conflicts between the extra edges and the edges of the two spanning trees, we choose two spanning trees with special properties, established in the following proposition.
Proposition 19
Proof
We proceed by induction on n=V. If n=1, then both spanning trees are empty, and the claim trivially holds. Let n>1 and assume that the claim holds for all smaller multigraphs. If no two parallel edges are in conflict, then any two edgedisjoint spanning trees have the required property. Suppose that edges e _{1},e _{2}∈E are parallel and in conflict. Let u,v∈V be the endpoints of e _{1} and e _{2}. Contract edges e _{1} and e _{2} (that is, identify u and v, and remove all edges between u and v), and denote by G′ the resulting multigraph on n−1 vertices, which also contains two edgedisjoint spanning trees. By induction, G′ contains two edgedisjoint spanning trees, say B′ and R′, such that conflicting parallel edges are either both in B′∪R′, or neither of them is in B′∪R′. Let \(B_{0}'\) and \(R_{0}'\) be the subgraphs of G corresponding to B′ and R′, respectively. Note that \(B_{0}'\) and \(R_{0}'\) each have two components such that u and v lie in distinct components. Now \(B_{0}'\cup\{e_{1}\}\) and \(R_{0}'\cup\{e_{2}\}\) are edgedisjoint spanning trees in G with the required property. □
Corollary 20
Let G=(V,E) be a multigraph that contains two edgedisjoint spanning trees and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. Then there is a sequence of vertex splitting operations on G that produces a multigraph H=(V∪W,B∪R∪Y) where (V,B) and (V,R) are spanning trees on V, each edge in Y connects a vertex in V to a leaf in W, and no edge in Y is in conflict with any adjacent edge. (See Fig. 23(iii).)
Proof
Let E=B∪R∪Y be the edge partition from Proposition 19. We use a vertex splitting operation to turn one endpoint of each edge e∈Y into a leaf as follows. Recall that every edge e∈E is in conflict with at most one other edge. Assign successively every edge uv∈Y to either u or v such that (1) if e=uv is in conflict with a parallel edge f=uv (hence f is also in Y), then assign e and f to different endpoints; (2) if uv is in conflict with a nonparallel but adjacent edge vw, then assign uv to u (the vertex not incident to the conflicting edge); (3) if uv is not in conflict with any adjacent edge, then assign it to u or v arbitrarily. Apply a vertex splitting operation successively for every e∈Y: if an edge e=uv∈Y is assigned to u, then split v into two vertices, one of which becomes a leaf incident to e only. □
Edge Partition Algorithm
We next present an algorithm that partitions the edges of G=(V,E) into nonempty subsets such that each subset has a conflictfree tree representation with a leaf at a common vertex v∈V. In general we cannot hope for a single conflictfree tree representation for all edges in E. For example, if G=(V,E) consists of two parallel edges, and the two edges are in conflict, then E does not have any conflictfree tree representation.
Let G=(V,E) be a multigraph on n vertices that contains two edgedisjoint spanning trees and let \(X\subseteq{E\choose2}\) be a set of disjoint conflict pairs. Let H=(V∪W,B∪R∪Y) be the multigraph from Corollary 20. We apply a sequence of vertex splitting operations on H to obtain a partition of the edge set E.
The edge partition algorithm is guided by a successive pruning algorithm, with possible edge flips between consecutive prune steps. Put G _{1}=(V,B∪R). Now G _{1} is the edgedisjoint union of a blue spanning tree (V _{1},B _{1})=(V,B) and a red spanning tree (V _{1},R _{1})=(V,R). The successive pruning algorithm will produce a sequence of multigraphs G=G _{1},G _{2},…,G _{ n }=({v _{ n }},∅), where G _{ i }=(V _{ i },E _{ i }) is an edgedisjoint union of two spanning trees: a blue tree (V _{ i },B _{ i }) and a red tree (V _{ i },R _{ i }). Simultaneously with the pruning steps on G _{ i }, we maintain a dynamic data structure that consists of a partition \(\mathcal{E}_{i}\) of E into subsets, each of which has a conflictfree tree representation. Each set in \(\mathcal{E}_{i}\) is associated with a vertex or an edge of G _{ i }, as described below. When we prune a vertex v _{ i } from G _{ i }, the sets associated with v _{ i } and its incident edges are “rearranged” to form new sets associated with the vertices and edges of G _{ i+1}. Eventually, we have G _{ n }=({v _{ n }},∅), and all sets in \(\mathcal{E}_{n}\) are associated with v _{ n }. The edge partition \(\mathcal{E}_{n}\) will be the output of the algorithm.
We maintain the following invariants for i=1,2,…,n. Each edge e∈E _{ i } between vertices u,v∈V _{ i } corresponds to a unique nonempty edge set \(E_{i}(e)\in\mathcal{E}_{i}\), which has a conflictfree tree representation with leaves at both u and v. In the conflictfree tree representation of E _{ i }(e), two edges incident to the leaves u and v are called the designated edges of E _{ i }(e) (the two designated edges may coincide if E(e)={e}). Any other set \(A_{i}\in\mathcal{E}_{i}\) is associated with some vertex v∈V _{ i }, such that A _{ i } has a conflictfree tree representation with a leaf at v. The edge in A _{ i } incident to the leaf v is called the designated edge of A _{ i }. Several sets may be associated to the same vertex v∈V _{ i }. For every vertex v∈V _{ i }, denote by \(\mathcal {E}_{i}(v)\subset\mathcal{E}_{i}\) the edge sets associated with v.
Initialization and a General Step i
For every edge e∈B∪R, create a set E _{1}(e)={e} corresponding to e∈E _{1}. For every edge e∈Y, incident to v∈V and a leaf w∈W, create a set A _{1}(v), associated with vertex v. Each edge set in \(\mathcal {E}_{1}\) contains a single edge, and so they each have a conflictfree tree representation in which each vertex is a leaf. Consider now one step of the successive pruning algorithm where we are given G _{ i }=(V _{ i },E _{ i }) and E _{ i }=B _{ i }∪R _{ i }. Let v _{ i }∈V _{ i } be a vertex of degree 2 or 3 in G _{ i } that we wish to prune. We distinguish between two cases based on the degree of v _{ i }.
Case 1
Case 2
After n−1 prune steps, we obtain G _{ n }=({v _{ n }},∅). That is, G _{ n } has only one vertex, and no edges. It follows that \(\mathcal {E}_{n}=\mathcal{E}_{n}(v_{n})\). This completes the description of our edge partition algorithm. See Fig. 25 for an example.
As noted above, the edge partition algorithm is guided by the successive pruning algorithm. Since G _{ i } has at least two vertices of degree 2 or 3, , for i=1,…,n−1, we always have at least two possible choices for the vertex v _{ i }∈V _{ i } we prune in step i. These choices are crucial for the proof of Lemma 3. We now point out several important properties of the edge partition algorithm, which hold independently of the choices for the vertices v _{1},…,v _{ n−1}.
Proposition 21
Let G=(V,E) be a multigraph on n vertices that contains two edgedisjoint spanning trees and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. Then the above algorithm returns: (1) a vertex v _{ n }∈V, (2) a partition of E into a collection \(\mathcal{E}_{n}\) of nonempty edge sets, and (3) a conflictfree tree representation with a leaf at v _{ n } for each set \(A\in\mathcal{E}_{n}\). A vertex v∈V may have several copies (due to vertex splitting) over the conflictfree tree representations of the sets in \(\mathcal{E}_{n}\), but at most two copies of each v∈V have degree 2 or higher.
Proof
The first claim follows directly from the invariants maintained for the sets in E _{ i }, i=1,2,…,n. To verify that at most two copies of each v∈V have degree 2 or higher, notice that H=(V∪W,B∪R∪Y) (cf. Corollary 20) was obtained from G=(V,E) by a sequence of vertex splitting operations, where exactly one copy of each vertex has degree 2 or higher. In the remainder of the algorithm, every vertex v _{ i } is split only once, when pruning v _{ i }. Hence at most two copies of each vertex v∈V have degree 2 or higher over the conflictfree tree representations of all sets in \(\mathcal{E}_{n}\). □
If all edge sets in \(\mathcal{E}_{n}\) have even size, then they each have an even orientation. In this case, by Proposition 18, graph G has an even orientation such that whenever the indegree of a vertex is 2, then the two incoming edges are not in conflict. If some sets in E _{ n } have odd size, we can still construct a desired orientation for G under certain conditions.
Proposition 22

every even set \(A\in\mathcal{E}\) has a conflictfree tree representation;

every odd set \(A\in\mathcal{E}\) has a conflictfree tree representation with a leaf at v _{0};

if \(\mathcal{E}\) contains exactly two odd sets, then their edges incident to v _{0} are not in conflict.
Proof
We show that E can be partitioned into even sets each of which has a conflictfree tree representation. Every such edge set has a conflictfree even orientation and so Proposition 18 completes the proof. If \(\mathcal{E}\) contains no odd sets, then our proof is complete. Since E is even, the number of odd sets in \(\mathcal{E}\) is even. If \(\mathcal{E}\) contains exactly two odd sets but their edges incident to v _{0} are not in conflict, then the union of the two odd sets is even, and it has a conflictfree tree representation. If \(\mathcal{E}\) contains four or more odd sets, then they can be paired up so that the edges incident to v _{0} in each pair are not in conflict. The union of each pair has even cardinality and has a conflictfree tree representation. □
We can now establish Lemma 3 in several important special cases.
Corollary 23

G contains more than 2n−2 edges, or

G has a vertex such that no two incident edges are in conflict.
Proof
First assume that G has more than 2n−2 edges. Consider the multigraph H=(V∪W,B∪R∪Y) from Corollary 20. Since B and R are spanning trees, we have B=R=n−1 and so Y≠∅. Let v _{0} w _{0}=e _{0} be an arbitrary edge in Y with v _{0}∈V and w _{0}∈W. Recall that e _{0} is not in conflict with any adjacent edge in H. Perform the edge partition algorithm such that vertex v _{0} is never pruned (that is, v _{ i }≠v _{0} for i=1,…,n−1). This is possible, since G _{ i } has at least two vertices of degree 2 or 3 for i=1,…,n−1. The algorithm returns an edge partition \(\mathcal{E}_{n}=\mathcal{E}_{n}(v_{0})\), with \(\{e_{0}\} \in \mathcal{E}_{n}\). If \(\mathcal{E}_{n}\) contains exactly two odd sets, then one of them is {e _{0}}, and so the designated edges of these two sets are not in conflict. Proposition 22 completes the proof.
Assume now that G has a vertex v _{0} such that no two incident edges are in conflict. Perform the edge partition algorithm such that vertex v _{0} is never pruned (that is, v _{ i }≠v _{0} for i=1,…,n−1). This is possible, since G _{ i } has at least two vertices of degree 2 or 3 for i=1,…,n−1. The algorithm returns an edge partition \(\mathcal{E}_{n}=\mathcal{E}_{n}(v_{0})\). The designated edges of no two sets in \(\mathcal{E}_{n}\) are in conflict, and Proposition 22 completes the proof. □
5.3 Contracting Double Edges in Conflict
By Corollary 23, we may assume that G=(V,E) is the edgedisjoint union of two spanning trees. Then G has V=n vertices and E=2n−2 edges, and so there are at most n−1 conflict pairs in X. If any two conflicting edges have at most one common endpoint, then there is a vertex v _{0}∈V such that no two incident edges are in conflict, and Corollary 23 yields a desired even orientation for G. Therefore, we may assume that G contains at least one pair of parallel edges in conflict.
We shall construct an even orientation for \(\widehat{G}\) such that (1) the indegree of every odd vertex \(\hat{v}\in\widehat{V}\) is at least 2; and (2) if the indegree of an even vertex \(\hat{v}\in \widehat{V}\) is 2, then the two incoming edges are not in conflict. See Fig. 26(iii)–(iv). The minimum degree requirement is enforced by augmenting \(\widehat{G}\) with pairs of leaves in conflict: For each odd vertex \(\hat{v}\), introduce two new vertices \(\hat{w}_{1}, \hat{w}_{2}\), two new edges \(\hat{v}\hat{w}_{1},\hat{v}\hat{w}_{2}\), and a new conflict pair \(\{\hat{v}\hat{w}_{1},\hat{v}\hat{w}_{2}\}\). Denote the augmented multigraph by \(\widehat{H}=(\widehat{V}\cup\widehat{W}, \widehat{E}\cup\widehat{S})\), and the augmented conflict pairs by \(\widehat{X}\). We refer to the new edges in \(\widehat{H}\) as special edges. Consider an even orientation of \(\widehat{H}\) such that if the indegree of a vertex is 2, then the two incoming edges are not in conflict. At each odd vertex \(\hat{v}\in\widehat{V}\), the two special edges must be oriented into \(\hat{v}\). However, the two special edges are in conflict, so at least two edges of \(\mathcal{E}\) must also be oriented into \(\hat{v}\).
Lemma 24
Let G=(V,E) be a multigraph on n vertices which is the edgedisjoint union of two spanning trees and let \(X\subseteq{E\choose 2}\) be a collection of disjoint conflict pairs. Assume that not all vertices of \(\widehat{G}\) are odd. Then G has an even orientation such that whenever the indegree of a vertex is 2, then the two incoming edges are not in conflict.
Proof
 1.
For every edge uv∈E _{ i }, the edge set \(E_{i}(uv)\in\mathcal {E}_{i}\) has odd cardinality.
 2.
Every set \(A_{i}(v)\in\mathcal{E}_{i}(v)\) for every v∈V _{ i }, either consists of a single special edge or has even cardinality.
Now consider step ℓ of the algorithm, where there exists an even vertex \(\hat{x}\in V_{\ell}\) of degree 2 or 3. We distinguish between two possible scenarios.
Case A
For any two edges of G _{ ℓ } incident to \(\hat {x}\), the two designated edges incident to \(\hat{x}\) are not in conflict. In this case, complete the edge partition algorithm so that \(\hat{x}\) is never pruned (that is, \(v_{i}\neq\hat{x}\) for i=ℓ,…,n−1). The algorithm returns the edge partition \(\mathcal {E}_{n}=\mathcal{E}_{n}(\hat{x})\). Note that \(\mathcal{E}_{n}(\hat{x})\) contains all sets of \(\mathcal{E}_{\ell}(\hat{x})\), which are even by invariant 2. The designated edges of the other sets in \(\mathcal {E}_{n}(\hat{x})\) are not in conflict with each other.
Based on the edge partition \(\mathcal{E}_{n}\) of \(\widehat{H}\), we now construct an edge partition \(\mathcal{E}\) for the original graph G=(V,E). The edge partition algorithm for \(\widehat{H}\) has split each vertex \(\hat{v}\in\widehat{V}\), \(\hat{v}\neq\hat{x}\), into exactly two copies (in the step when \(\hat{v}\) is pruned). If \(\hat{v}\) is an odd vertex, then its two special edges are incident to distinct copies of \(\hat{v}\). Modify the sets in \(\mathcal{E}_{n}(\hat{x})\) as follows: replace the two copies of each vertex \(\hat{v}\in\widehat {V}\), \(\hat{v}\neq\hat{x}\), by the spanning trees \((U_{\hat {v}},R_{\hat {v}})\) and \((U_{\hat{v}},B_{\hat{v}})\); and remove any special edges incident to \(\hat{v}\) (in case \(\hat{v}\) is odd). Denote the resulting collection of sets by \(\mathcal{E}'\). Note that this operation preserves the parity of every set in \(\mathcal{E}_{n}\). Each edge set in \(\mathcal{E}'\) has a conflictfree tree representation with a leaf in \(U_{\hat{x}}\). So far, we have not replaced \(\hat{x}\) with the two corresponding even trees \((U_{\hat{x}},R_{\hat{x}})\) and \((U_{\hat {x}},B_{\hat{x}})\). We can now define the edge partition \(\mathcal{E}\) of G. Let \(\mathcal{E}\) contain all even sets of \(\mathcal{E}'\), the set \(B_{\hat{x}}\), and the union of \(R_{\hat{x}}\) with all odd sets of \(\mathcal{E}'\). Every set in \(\mathcal{E}\) is even, and has a conflictfree tree representation. Proposition 22 completes the proof.
Case B
Based on the edge partition \(\mathcal{E}_{n}\) of \(\widehat{H}\), we now construct an edge partition \(\mathcal{E}\) for the original graph G=(V,E). Similarly to Case A, replace the two copies of each vertex \(\hat{v}\in\widehat{V}\), \(\hat{v}\neq\hat{u}\), by the spanning trees \((U_{\hat{v}},R_{\hat{v}})\) and \((U_{\hat{v}},B_{\hat{v}})\); and remove any special edges incident to \(\hat{v}\) (in case \(\hat{v}\) is odd). Denote the resulting collection of sets by \(\mathcal{E}'\), and let \(A\in\mathcal{E}'\) be the set that contains \(A(\hat{u})\). Since this operation preserves the parity of all edge sets in \(\mathcal{E}_{n}\), the set A is odd. Each edge set in \(\mathcal{E}'\) has a conflictfree tree representation with a leaf in \(U_{\hat{u}}\). Let \(v_{0}\in U_{\hat {u}}\) be the designated leaf of \(A\in\mathcal{E}'\) (note that v _{0}∈V is a vertex of the original graph G). Partition \(\mathcal{E}'\) into three sets \(\mathcal{E}'=\mathcal{E}^{0}\cup\mathcal{E}^{}\cup \mathcal{E}^{+}\) as follows: let \(\mathcal{E}^{0}\) contain every set in \(\mathcal{E}'\) with a leaf at v _{0}; the remaining sets in \(\mathcal {E}'\) are partitioned between \(\mathcal{E}^{}\) and \(\mathcal{E}^{+}\) such that if their leaves incident to \(U_{\hat{u}}\) are in conflict then they are in different collections. We can now define the edge partition \(\mathcal{E}\) of G. Let \(\mathcal{E}\) contain all sets of \(\mathcal {E}^{0}\), the union of \(B_{\hat{u}}\) and all sets in \(\mathcal{E}^{}\), and the union of \(R_{\hat{x}}\) and all sets in \(\mathcal{E}^{+}\). Every set in \(\mathcal{E}\) has a conflictfree tree representation with a leaf at v _{0}. Proposition 22 completes the proof unless \(\mathcal {E}\) contains exactly two odd edge sets and their edges incident to v _{0} are in conflict.
Suppose now that \(\mathcal{E}\) contains exactly two odd edge sets, and their edges incident to v _{0} are in conflict. By construction, one of the two odd edge sets in \(\mathcal{E}\) is A. Recall that \(E_{\ell}(\hat {x}\hat{u})\subset A\), and the edge in A incident to \(v_{0}\in U_{\hat {u}}\) is the designated edge of \(E_{\ell}(\hat{x}\hat{u})\) incident to \(\hat{u}\). Consider step ℓ of the edge partition algorithm above. In Case B, we assumed that the designated edge of \(E_{\ell}(\hat{x}\hat {u})\) is in conflict with some other edge incident to \(\hat{x}\). Since \(\widehat{G}\) has no two parallel edges in conflict, the edge set \(E_{\ell}(\hat{x}\hat{u})\) has two distinct designated edges, incident to \(\hat{x}\) and \(\hat{u}\), respectively. In particular, \(E_{\ell}(\hat{x}\hat{u})\) contains at least two edges. Let j<ℓ be the largest index such that some edge in \(E_{\ell}(\hat{x}\hat{u})\) is incident to v _{ j }. Since j<ℓ, v _{ j } is an odd vertex. In step j, vertex v _{ j } was pruned. That is, v _{ j } was split into two copies: one is incident to \(E_{\ell}(\hat{u}\hat{x})\), and the other is incident to some component \(B_{j+1}\in\mathcal{E}_{j+1}\), which becomes part of some set \(B\in\mathcal{E}\), B≠A. Merge A into B by splitting \(\hat{u}\) into two copies and identifying the two copies of v _{ j } (effectively, reversing the vertex split operation performed in step j). Proposition 22 completes the proof. □
We are now ready to prove Lemma 3.
Lemma 1
Let G=(V,E) be a multigraph with 4k edges that contains two edgedisjoint spanning trees, and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. Then G has an even orientation such that if the indegree of a vertex is 2, then the two incoming edges are not in conflict.
Proof
5.4 Disjoint Compatible Matchings
We recall a result by Aichholzer et al. [1] [Lemma 2] for points in convex position.
Proposition 2
[1]
Let P be a set of points in convex position. Let M be a (not necessarily perfect) matching on P such that every segment in M is on the boundary of the convex hull of P. Then there is a perfect matching of P that is disjoint and compatible with M if and only if P is even and P=2 implies M=∅.
We can now prove Theorem 1 and settle the Disjoint Compatible Matching Conjecture.
Theorem 1
For every perfect straightline matching M with an even number of edges, and no three collinear vertices, there is a disjoint compatible perfect straightline matching.
Proof
Let M be a set of disjoint line segments in the plane, with no three collinear segment endpoints. Refer to Fig. 1 and 2. By Theorem 2, there is a convex subdivision \(C\in\mathcal{D}(M)\) with no critical polygons. In the dual graph, the nodes correspond to cells in C, and the edges correspond to segment endpoints. Two edges of the dual graph are in conflict if they are adjacent and correspond to the two endpoints of the same segment. By Lemma 3, the dual graph has an even orientation such that if a vertex has indegree 2, then the two incoming edges are not in conflict. Fix such an orientation for the remainder of the proof.
For every cell c∈C, assign incident segment endpoints to c if the corresponding edge is oriented into c. In every cell c∈C, independently, we construct a perfect matching on the segment endpoints assigned to c. Since the orientation is even, every cell is assigned to an even number of segment endpoints. Furthermore, if a cell is assigned to exactly two segment endpoints, then these endpoints are not connected by a segment in M. By Proposition 2, there is a perfect matching on the segment endpoints assigned to each c. The union of these perfect matchings is a perfect matching on all segment endpoints. It is disjoint from M and compatible with M, as required. □
Footnotes
 1.
Path α(r _{ i },q _{ i+1}) is not part of N(C), and does not have to follow the directions of extension edges along γ.
Notes
Acknowledgements
The Disjoint Compatible Matchings Conjecture was posed at the U.P.C. Workshop on Combinatorial Geometry (Caldes de Malavella, Catalunya, Spain, May 2006). The third author heard of the problem independently, started working on it with a collaborator, and raised the problem at a meeting of the MITTufts Combinatorial Geometry Research Group in 2007. We thank all our collaborators in papers [1, 2, 4], and [7].
Authors were partially supported by NSF Grants #CCF0830734 and #CBET0941538. C.D. Tóth was partially supported by NSERC grant RGPIN 35586.
References
 1.Aichholzer, O., Bereg, S., Dumitrescu, A., García, A., Huemer, C., Hurtado, F., Kano, M., Márquez, A., Rappaport, D., Smorodinsky, S., Souvaine, D., Urrutia, J., Wood, D.: Compatible geometric matchings. Comput. Geom. 42, 617–626 (2009) MathSciNetMATHCrossRefGoogle Scholar
 2.AlJubeh, M., Ishaque, M., Hoffmann, M., Souvaine, D.L., Tóth, C.D.: Convex partitions with 2edge connected dual graphs. J. Comb. Optim. 22(3), 409–425 (2010) CrossRefGoogle Scholar
 3.AlJubeh, M., Barequet, G., Ishaque, M., Souvaine, D.L., Tóth, C.D., Winslow, A.: Constrained triconnected planar straight line graphs. In: Pach, J. (ed.) Thirty Essays on Geometric Graph Theory. Algorithms and Combinatorics, vol. 29. Springer, Berlin (2013, to appear) Google Scholar
 4.Benbernou, N.M., Demaine, E.D., Demaine, M.L., Hoffmann, M., Ishaque, M., Souvaine, D.L., Tóth, C.D.: Disjoint segments have a convex partition with a 2edge connected dual graph. In: Proc. 19th Canadian Conf. Comp. Geom, Ottawa, ON, pp. 13–16 (2007). Erratum in Proc. 20th Canadian Conf. Comp. Geom., Montreal, QC, 2008, p. 223 Google Scholar
 5.Bose, P., Houle, M.E., Toussaint, G.T.: Every set of disjoint line segments admits a binary tree. Discrete Comput. Geom. 26(3), 387–410 (2001) MathSciNetMATHCrossRefGoogle Scholar
 6.Buchin, K., Knauer, C., Kriegel, K., Schulz, A., Seidel, R.: On the number of cycles in planar graphs. In: Proc. 13th COCOON. LNCS, vol. 4598, pp. 97–107. Springer, Berlin (2007) Google Scholar
 7.Cannon, S., Ishaque, M., Tóth, C.D.: Even orientations with forbidden pairs and demands. In: Proc. 6th Conf. on Fun with Algorithms. LNCS, vol. 7288, pp. 57–68. Springer, Berlin (2012) CrossRefGoogle Scholar
 8.Cordovil, R., Moreira, M.L.: Bases–cobases graphs and polytopes of matroids. Combinatorica 13(2), 157–165 (1993) MathSciNetMATHCrossRefGoogle Scholar
 9.Farber, M., Richter, B., Shank, H.: Edgedisjoint spanning trees: a connectedness theorem. J. Graph Theory 8, 319–324 (1985) MathSciNetCrossRefGoogle Scholar
 10.García, A., Noy, M., Tejel, J.: Lower bounds on the number of crossingfree subgraphs of K _{N}. Comput. Geom. Theory Appl. 16, 211–221 (2000) MATHCrossRefGoogle Scholar
 11.Hoffmann, M., Speckmann, B., Tóth, C.D.: Pointed binary encompassing trees: simple and optimal. Comput. Geom. Theory Appl. 43(1), 35–41 (2010) MATHCrossRefGoogle Scholar
 12.Hoffmann, M., Sharir, M., Sheffer, A., Tóth, Cs.D., Welzl, E.: Counting plane graphs: flippability and its applications. In: Proc. WADS. LNCS, vol. 6844, pp. 524–535. Springer, Berlin (2011) Google Scholar
 13.Hurtado, F., Tóth, C.D.: Plane geometric graph augmentation: a generic perspective. In: Pach, J. (ed.) Thirty Essays on Geometric Graph Theory. Algorithms and Combinatorics, vol. 29. Springer, Berlin (2013, to appear) Google Scholar
 14.Lovász, L., Plummer, M.D.: Matching Theory. AMS Chelsea, New York (2009) MATHGoogle Scholar
 15.NashWilliams, C.St.J.A.: Edgedisjoint spanning trees in finite graphs. J. Lond. Math. Soc. 36, 445–450 (1961) MathSciNetMATHCrossRefGoogle Scholar
 16.O’Rourke, J.: Art Gallery Theorems and Algorithms. Oxford University Press, London (1987) MATHGoogle Scholar
 17.Razen, A.: A lower bound for the transformation of compatible perfect matchings. In: Abstracts of the 24th European Workshop on Comput. Geom, pp. 115–118 (2008) Google Scholar
 18.Sharir, M., Welzl, E.: On the number of crossingfree matchings, cycles, and partitions. SIAM J. Comput. 36, 695–720 (2006) MathSciNetMATHCrossRefGoogle Scholar
 19.Sharir, M., Sheffer, A., Welzl, E.: Counting plane graphs: perfect matchings, spanning cycles, and Kasteleyn’s technique. In: Proc. 28th Sympos. Comput. Geom., pp. 189–198. ACM, New York (2012) Google Scholar
 20.Tóth, C.D.: Illuminating both sides of line segments. In: Akiyama, J., Kano, M., Urabe, M. (eds.) Discrete and Computational Geometry. LNCS, vol. 2098, pp. 370–380. Springer, Berlin (2001) CrossRefGoogle Scholar
 21.Tóth, C.D.: Illumination in the presence of opaque line segments in the plane. Comput. Geom. Theory Appl. 21(3), 193–204 (2002) MATHCrossRefGoogle Scholar
 22.Tutte, W.T.: On the problem of decomposing a graph into n connected factors. J. Lond. Math. Soc. 36, 221–230 (1961) MathSciNetMATHCrossRefGoogle Scholar