1 Introduction

A planar straight-line graph (Pslg, for short) is a graph G=(V,E) where the vertices are distinct points in the plane, the edges are straight-line segments between vertices such that every edge can intersect vertices and other edges only at its endpoints. A simple polygon is a 2-regular connected Pslg. A geometric matching is a 1-regular 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.

Before presenting two of these stronger conjectures, we recall a few definitions. For a finite set M of disjoint line segments in the plane, a convex subdivision of the free space is a set C of interior disjoint convex cells such that every cell is disjoint from the segments in M, and the union of their closures tiles the plane. In a dual (multi-)graph G associated with M and C, the vertices correspond to the cells in C, and each endpoint of a segment in M corresponds to an edge between two incident cells (see Fig. 1). Note that M and C do not always determine the dual graph uniquely, since a segment endpoint may be incident to more than two convex cells, and the corresponding dual edge connects only two of those cells. In any case, the dual multigraph has exactly 2n edges, some of which may be parallel. For brevity, we use the term dual graph even if G has parallel edges. An orientation of a (multi-)graph G is an assignment of a direction to each edge of G. An orientation is even if the indegree of every node is even. It is well known that every connected (multi-)graph with an even number of edges has an even orientation [14].

Fig. 1
figure 1

(i) A geometric matching with eight edges in a bounding box. (ii) A convex subdivision eight cells. (iii) An associated dual graph

Let M be a geometric matching with n edges. The Two Trees Conjecture [1] asserts that there is a convex subdivision with n+1 cells such that an associated dual graph G is the edge-disjoint union of two spanning trees, and for every segment uvM, the edges of G corresponding to u and v are in different spanning trees. The Extension Conjecture [1] stipulates that if n is even, then there is a convex subdivision with n+1 cells such that an associated dual graph G admits an even orientation with the property that for every node of G of indegree 2, the two incoming edges do not correspond to the two endpoints of any segment uvM. We no longer believe that the stronger conjectures hold [4], but we use several elements of these conjectures. For example, an even orientation with the above property induces a disjoint compatible geometric matching even if the convex subdivision has fewer than n+1 cells (see Fig. 2).

Fig. 2
figure 2

(i) An even orientation of the dual graph from Fig. 1(iii) such that whenever a node has indegree 2, the two incoming edges do not correspond to the two endpoints of the same segment. (ii) The even orientation maps an even number of segment endpoints to each cell. The segment endpoints assigned to each cell can be matched without crossings within that cell. (iii) The union of the matchings in all cells forms a disjoint compatible geometric matching

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 edge-disjoint 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 edge-disjoint spanning trees.

Lemma 3

Let G=(V,E) be a multigraph with 4k edges that contains two edge-disjoint 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 edge-disjoint spanning trees. Specifically, we show that the dual graph contains two edge-disjoint 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 edge-disjoint 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 straight-line 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,EF) is a Pslg with property P. Theorem 1 shows that every 1-regular Pslg with an even number of edges and no three collinear vertices can be augmented to a 2-regular 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. Al-Jubeh et al. [3] proved that a Pslg matching on n≥4 vertices can be augmented to a 3-connected 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 Ω(3n) and O(10.05n), 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 n-element 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, Al-Jubeh 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 2-edge-connected. They proved that a bridge (i.e., a cut-edge) 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

For a set M of disjoint line segments, let \(\mathcal{D}(M)\) be the set of all convex subdivisions C that admit an orientation of the extension edges with the following properties (refer to Fig. 3(i)).

  • 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.

Fig. 3
figure 3

(i) A convex subdivision formed by a geometric matching and directed extension edges, with a sink q. (ii) The extension-paths emitted by segment endpoints u and v. (iii) The extension tree rooted at the sink q. (iv) The extension tree rooted at r

Let N=N(C) denote the 1-skeleton 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

Let C be a convex subdivision in \(\mathcal{D}(M)\) with directed extension edges.

  • The extension-path of a vertex p of outdegree 1 is the open directed path along extension edges starting from p to the first point qp lying on a segment or at a sink, or to infinity (see Fig. 3(ii)). The extension-path 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) extension-paths that terminate at v (see Figs. 3(iii)–(iv)). Every leaf of an extension tree is a segment endpoint.

Al-Jubeh et al. [2] considered convex subdivisions with no sinks. By allowing sinks, we have significantly more freedom in constructing and modifying convex subdivisions. Figure 4 illustrates how one can modify adjacent extension edges, create a sink, and reduce the number of cells by one. Note that we can relocate a sink q to any other Steiner vertex q′ of the same extension tree by changing the directions of the extension edges along the path between q and q′. We will employ such local deformations in Sect. 4 for constructing a convex subdivision with no critical polygons.

Fig. 4
figure 4

(i) A convex subdivision four segments five cells. (ii) Extensions edges are deformed so that two incoming edges at q become collinear. (iii) By removing the outgoing edge of q, it becomes a sink, and we obtain a convex subdivision four cells. (iv) We can move the sink to any Steiner vertex within the same extension tree by changing the directions of some extension edges

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 ns+1 cells. Indeed, the free space of the n segments and s sinks, ℝ2∖(MS), is a connected region with n+s holes. Insert the 2n extension-paths one by one. The insertion of each extension-path 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 ns 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 out-going 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

In this section, we establish a sufficient condition for a convex subdivision \(C\in\mathcal{D}(M)\) to imply that the dual graph G(C) contains two edge-disjoint spanning trees. Fix a convex subdivision \(C\in\mathcal{D} (M)\) with directed extension edges for a set M of n disjoint line segments. The dual graph G=G(C) has exactly 2n edges and at most n+1 nodes, so there are enough edges for two edge-disjoint spanning trees. According to a well-known result by Nash-Williams [15] and Tutte [22], a (multi-)graph G=(V,E) contains two edge-disjoint spanning trees if and only if, for every partition \(V=\bigcup_{i=1}^{r} V_{i}\) of the vertex set into r nonempty classes, there are at least 2(r−1) edges between different vertex classes. See Fig. 5 for an example. It is enough to consider vertex sets V i V that each induce connected subgraphs of G, otherwise we could break some V i into two classes without increasing the number of edges between different classes.

Fig. 5
figure 5

(i) A convex subdivision \(C\in\mathcal{D}(M)\) for a set M eight segments. (ii) A partition of C into three classes, labeled , , and . In the dual four solid edges are between distinct node classes, 12 dotted edges are within the node classes. (iii) Another partition of C into three classes. In the dual six solid edges are between distinct classes, more than the requisite 4

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 edge-disjoint 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) = 2|C|-2r\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 ns+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 edge-disjoint 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) \leq2|C|+2s-2r= 2(n-s+1)+2s-2r=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

Let C′⊂C be a set that induces a connected dual graph G(C′). Let A(C′) be the union of the closures of all cells in C′, that is, A(C′)=⋃ cCcl(c). See Fig. 6(i)–(ii). Denote by ∂A(C′) the boundary of A(C′). Since every edge of G(C′) corresponds to an edge of the network N(C) between cells in C′, the interior of A(C′) is connected.

Fig. 6
figure 6

(i) A convex subdivision \(C\in\mathcal{D}(M)\), the cells in a subset C′⊂C are shaded. (ii) Domain A(C′) is connected, and its complement ℝ2A(C′) has four connected components H 1,…,H 4. The dotted paths are removed from A(C′) to create R(C′). (iii) In this instance, the boundary of R(C′) is composed of two weakly simple polygonal curves: γ 1 is the boundary of a hole, and γ 2 is an outer boundary. The boundaries are perturbed into simple polygonal curves for clarity. Sink q 2 is in S(C′) because it is in the interior of a hole of R(C′) and an extension-path goes from a Steiner vertex on the boundary of this hole to q 2. However, sinks q 1 and q 3 are not in S(C′): sink q 1 is in the interior of a hole but no extension path can reach it from the boundary of the hole; and q 3 is on the outer boundary of R(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.

We define a polygonal domain R(C′)⊆A(C′), which will be used for assigning sinks to C′, and it will also simplify counting the number of edges and vertices of G(C′) later in Lemma 7. Refer to Fig. 6. Construct region R(C′) from A(C′) by removing a thin channel along every path of N(C) that

  • 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 extension-path 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≤in, 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_{n-1}',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

We can now assign sinks to each subset C′⊆C as follows (refer to Fig. 6(iii)). Let S(C′)⊆S(C) be the set of sinks qS(C) that satisfy one of the following conditions.

  • 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 extension-path from a Steiner point on the boundary of this hole to q.

Proposition 6

If C 1,C 2C such that C 1C 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 qS(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 extension-path 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 extension-path 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 qS(C 1)∩S(C 2). □

Counting the Number of Nodes and Edges of G(C′)

We next give a formula for the number of edges in G(C′) for C′⊆C. Let Γ denote the set of all oriented weakly simple polygonal curves in N(C) that subdivide the plane into a left and a right side. The orientation of a curve γΓ is independent from the directions of any extension edges along γ. In fact, every curve γΓ can be considered twice, once in each direction. Each curve in Γ partitions the plane into three parts: curve γ, an open left, and an open right side (depending the orientation of γ). We define local features for a curve γΓ. A local feature of γ is an edge of N(C) incident to a vertex of γ, of one of the following types (refer to Fig. 7):

  1. (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;

  2. (b)

    edge e lies on the left side of γ, and it is the outgoing extension edge of a Steiner vertex in γ;

  3. (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;

  4. (d)

    edge e lies on the right side of γ, and it is the outgoing extension edge of a Steiner vertex in γ.

Fig. 7
figure 7

(i) A convex subdivision, the polygonal curve is the boundary between the white and the shaded cells, where the left side of γ is shaded. The local features of γ are marked. For example, the segment edge pu is an (a)-feature, lying on the left side of γ, with vertices pγ and segment endpoint u. (ii) A simplified figure, which shows only the edges of γ and its local features

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′)∖(MS) is a connected polygonal domain with exactly h+x+s in holes.

The number of extension-paths 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 extension-paths. Every (b)-feature emits an extension-path into the interior of R(C′). Every (a)-feature either emits an extension-path 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 uvM 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 extension-path into the interior of R(C′)∖M.

Insert the a+b+2x extension-paths one after the other into R(C′). The insertion of each extension-path 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+xhs in steps in which a region is split into two regions. Thus the number of cells is |C′|=1+a+b+xhs in.

A segment endpoint corresponds to an edge between two cells in C′ if its outgoing extension edge lies in the interior of R(C′). There are exactly a+2x such segment endpoints. Hence, G(C′) has

edges, as required. □

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 extension-path from a Steiner point of γ to q.

Lemma 8

If \(C\in\mathcal{D}(M)\) is a convex subdivision such that

$$c(\gamma)+2d(\gamma)+2s(\gamma)\geq2 $$

for every γΓ +, then the dual graph G(C) contains two edge-disjoint spanning trees.

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.

Consider a subset C′⊆C such that G(C′) has more than 2(|C′|+s(C′)−1) edges. (See an example in Fig. 8.) By Lemma 7, we have 2(|C′|+s(C′)−1)<2(|C′|−1)−a−2b+2h+2s in(C′), that is, a+2b+2(s(C′)−s in(C′))<2h. Let γ 1,…,γ h Γ + denote the weakly simple polygons on the boundaries of the h holes of R(C′). By discarding features on the outer boundaries of R(C′), it is clear that

$$\sum_{i=1}^h c(\gamma_i)\leq a\quad\mathrm{and}\quad \sum_{i=1}^h d( \gamma_i)\leq b. $$

Thanks to the careful definition of the set S(C′) of sinks assigned to C′, we now have \(s(C')-s_{\mathrm{in}}(C')=\sum_{i=1}^{h} s(\gamma_{i})\). This yields

$$\sum_{i=1}^h \bigl(c( \gamma_i)+2d(\gamma_i)+2s(\gamma_i) \bigr)<2h. $$

For at least one of the holes γ i , we have c(γ i )+2d(γ i )+2s(γ i )<2.

Fig. 8
figure 8

(i) A convex subdivision \(C\in\mathcal{D}(M)\). (ii) The dual graph does not contain two edge-disjoint spanning trees because there are seven edges between five vertex classes labeled . Subgraph G(C 1) induced by six nodes labeled has 12 dotted edges, but 2⋅(6−1)=10, so C 1 violates the condition in Propositions 4 and 5. (iii) The cells are shaded, their union is region A(C 1). (iv) Region R(C 1) has one hole, bounded by a weakly simple polygon γ, such that c(γ)=d(γ)=s(γ)=0. So γ is a 0-critical polygon

 □

A closed counterclockwise polygonal curve γΓ + is called critical if c(γ)+2d(γ)+2s(γ)≤1. In particular, it is 0-critical if c(γ)+2d(γ)+2s(γ)=0, and 1-critical if c(γ)+2d(γ)+2s(γ)=1. See Fig. 9 for a few examples. Observe that if γΓ + is critical, then d(γ)=s(γ)=0, that is, it has no (d)-features, it does not pass through any sink, and there is no extension-path from γ to a sink in the interior of γ. A reformulation of Lemma 8 using this terminology is the following.

Fig. 9
figure 9

Schematic drawing of some critical polygons. Only the critical polygons and their features are shown: segment edges are bold, extension-paths are dotted (and curved). Upper row: 0-critical polygons with no (c)- or (d)-features, that is, they have no D-paths to their exteriors. Lower row: 1-critical polygons with exactly one (c)-feature each, that is, all D-paths to the exterior pass through the same segment edge

Corollary 9

If \(C\in\mathcal{D}(M)\) is a convex subdivision with no critical polygons, then the dual graph G(C) contains two edge-disjoint 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 0-critical then one cannot travel from γ to the exterior of γ respecting the directions of extension edges. Intuitively, “there is no way out” from γ. If γ is 1-critical, 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 extension-path starting from the exterior of γ can terminate at a sink on or in the interior of γ.

D-paths

We can formalize the above intuition. We say that a directed path in N(C) is a D-path, if it respects the directions of all extension edges that are not part of any extension tree rooted at a sink. That is, a D-path may traverse segment edges and edges of extension trees rooted at sinks in an arbitrary direction.

Proposition 10

  • If γΓ + is 0-critical, then there is no D-path from a point in γ to the exterior of γ.

  • If γΓ + is 1-critical, then every such D-path 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 D-path 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 extension-path that terminates at a sink q. If this extension-path 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 D-path 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 0-critical and maximal 1-critical 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

  1. (i)

    If γ 1,γ 2Γ + are maximal 0-critical, then R(γ 1) and R(γ 2) are disjoint.

  2. (ii)

    If there is no 0-critical polygon in Γ + and γ 1,γ 2Γ + are maximal 1-critical, then R(γ 1) and R(γ 2) are disjoint.

Proof

Suppose that γ 1,γ 2Γ + are maximal 0-critical polygons but they intersect (Fig. 10(i)–(ii)). By definition, they have no (c)- or (d)-features. Hence there is no such feature along the boundary of R(γ 1)∪R(γ 2). Let R be the union of R(γ 1), R(γ 2), and all holes of R(γ 1)∪R(γ 2). Then the boundary of R is a weakly simple polygon in Γ + with no (c)- or (d)-feature. So it is a 0-critical polygon containing all cells of C(γ 1) and C(γ 2), contradicting the maximality of γ 1 and γ 2.

Fig. 10
figure 10

(i)–(ii) Schematic drawings of two intersecting 0-critical polygons γ 1 and γ 2 in the same convex subdivision. (iii)–(iv) Two intersecting 1-critical polygons γ 3 and γ 4 in the same convex subdivision

Now suppose that there is no 0-critical polygon in Γ +, and γ 1,γ 2Γ + are maximal 1-critical 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 0-critical polygon. If ∂R has exactly one (c)-feature (Fig. 10(iii)–(iv)), then its outer boundary is a 1-critical 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 first show that the regions R(γ 1) and R(γ 2) overlap. Suppose, to the contrary, that R(γ 1) and R(γ 2) are interior disjoint, but they have some common edges. Assume first that their common boundary γ 1γ 2 contains an extension edge e (Fig. 11(i)–(ii)). Then e is part of an extension tree rooted at some point r. The root r also lies in γ 1γ 1, otherwise the extension-path enters the exterior of γ 1 or γ 2, creating a (d)-feature. Since neither γ 1 nor γ 2 contains any sink, the root r lies on some line segment uvM. Since R(γ 1) and R(γ 2) are interior disjoint, uv is a (c)-feature of both γ 1 and γ 2, hence R(γ 1)∪R(γ 2) has no (c)-feature, contradicting the above assumption that it has at least two (c)-features. Assume now that γ 1γ 2 contains no extension edge, but it contains a segment edge along some segment uvM. Then the two endpoints of (γ 1γ 2)∩uv are (c)-features of both γ 1 and γ 2, and hence neither γ 1 not γ 2 is critical.

Fig. 11
figure 11

(i)–(ii) Two intersecting 1-critical polygons γ 1 and γ 2 in the same convex subdivision, where R(γ 1) and R(γ 2) are interior disjoint, but their common boundary contains an extension edge e. (iii)–(iv) Two intersecting 1-critical polygons γ 3 and γ 4 in the same convex subdivision, where R(γ 1) and R(γ 2) overlap, and R(γ 1)∩R(γ 2) has two connected components, each of which is a 0-critical polygon

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 0-critical, 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)=ns(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 x-coordinate. 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 x-coordinates 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.

We show that a left–right subdivision contains no 0-critical polygon. Recall that N=N(C) is the network of all segment and extension edges of C (see Fig. 12(iii)). For a left–right subdivision \(C\in\mathcal{D}(M)\), let N 1N be the union of all segments edges, all extension trees rooted at sinks, and all left extensions (see Fig. 12(ii)). That is, N 1 is the union of edges we have at the end of phase 1 of the above subdivision algorithm. Recall that a D-path is a directed path in N that respects the directions of extension edges that are not part of any extension tree rooted at a sink (intuitively, a sink “neutralizes” the directions of an extension tree).

Fig. 12
figure 12

(i) Disjoint line segments with an extension tree rooted at a sink. (ii) Left extensions drawn in the first phase. (iii) Right extensions drawn in the second phase

Proposition 12

If \(C\in\mathcal{D}(M)\) is a left–right subdivision, then N 1 contains a D-path from any point pN 1 to infinity.

Proof

We construct a D-path starting from a point pN 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 x-coordinates, and so the walk visits every left segment endpoint at most once. □

Corollary 13

Left–right subdivisions have no 0-critical polygons.

Proof

Combine Propositions 10 and 12. □

Subdivisions with No 0-Critical Polygons

Our algorithm performs a sequence of local modifications starting from a left–right subdivision that will either eliminate all critical polygons from the resulting subdivisions or else introduce a new sink. It maintains the invariant that the subdivision always remains in the class \(\mathcal{D}^{*}(M) \subseteq\mathcal{D}(M)\) defined here. Refer to Fig. 13.

Fig. 13
figure 13

A subdivision \(C\in\mathcal{D}^{*}(M)\). The weakly simple polygon γ with white interior is maximal 1-critical. A sink q lies in the interior of γ. The outgoing edges of the segment endpoints v 1 and v 2 are not collinear with the incident segment in M; these endpoints are in the exterior of γ and not incident to any extension tree rooted at a sink. The outgoing edges of the Steiner points p 1,…,p 5 are not collinear with any incoming edges; these Steiner points are either in the exterior of γ or incident to an extension tree rooted at q

Definition 3

A subdivision \(C\in\mathcal{D}(M)\) is in the class \(\mathcal{D}^{*}(M)\) if it has the following properties.

  1. 1.

    N(C) contains a D-path from every point pN(C) to infinity.

  2. 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. 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 uvM. 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 0-critical polygons.

Proposition 15

Let \(C\in\mathcal{D}^{*}(M)\). If γΓ +(C) is a 1-critical polygon, then for every pN(C) in the closed polygonal domain bounded by γ, there is a D-path δ(p)⊂N(C) from p to the (c)-feature of γ.

Proof

By Definition 3, N contains a D-path δ(p) from p to infinity. By Proposition 10, δ(p) has to pass through the (c)-feature of γ. □

We can now focus on 1-critical polygons. For our local modification steps, it will be convenient to group together consecutive collinear extension edges in N. Let a straight-extension 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 straight-extension, even though they may consist of several collinear extension edges of N (see Fig. 12(iii)). Definition 3(2) requires that if a straight-extension 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 straight-extension.

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 mM C . Two D-paths in N are endpoint-disjoint if no segment endpoint lies in the relative interior of both paths.

Proposition 16

Let \(C\in\mathcal{D}^{*}(M)\) and mM. We have \(m\not\in M_{C}\) if and only if N(C) contains two endpoint-disjoint D-paths from any point pm to infinity.

Proof

First consider a segment mM C . Let γ be the maximal 1-critical polygon that intersects m or contains m in its interior. If m contains the (c)-feature of γ, then all D-paths from any point pm to infinity must pass through the endpoint of m lying in the exterior of γ. For all other segments mM C , all D-paths from any point pm 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 D-paths 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 D-path from any pm to infinity in N. Suppose that every D-path in N from pm to infinity passes through the same segment endpoint w. Let WN be the set of all points qN such that all D-paths from q to infinity go through w. The set W is bounded, and its outer boundary is a 1-critical 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)=ns(C)−|M C |.

Lemma 17

If \(C\in\mathcal{D}^{*}(M)\) and C has a 1-critical polygon, then there is a convex subdivision \(C'\in\mathcal{D}^{*}(M)\) such that ns(C)−|M C |<ns(C′)−|M C|.

Proof

Let \(C\in\mathcal{D}^{*}(M)\) and let γΓ + be a maximal 1-critical polygon (refer to Fig. 14). Let e 0 be the unique (c)-feature of γ, let p 0=e 0γ, and let q 0 be the endpoint of the line segment containing e 0 that lies either on or in the exterior of γ. Let H γ denote the geodesic hull of γ∪{q 0} with respect to the line segments of M lying in the exterior of γ. The geodesic hull H γ is a closed polygonal domain, with boundary ∂H γ . Note that every convex vertex of H γ is either q 0 or a convex vertex of γ; and every reflex vertex of H γ is a segment endpoint in the exterior of γ. Let (q 0,q 1,…,q k ) denote the convex vertices of H γ in counterclockwise order.

Fig. 14
figure 14

A left–right subdivision. The interior of a 1-critical polygon γ is shaded, its unique (c)-feature is the edge p 0 q 0. Dotted lines indicate the boundary of the geodesic hull H γ . The convex vertices of H γ are (q 0,…,q 5), where q 1 is counterclockwise, and q 2, q 3, q 4, q 5 are clockwise

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≤ik, 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

There are two consecutive convex vertices, q i and q i+1, 1≤ik−2, such that q i is oriented counterclockwise and q i+1 is oriented clockwise (e.g., q 1 and q 2 in Fig. 14 or q 2 and q 3 in Fig. 15(ii)). We distinguish two subcases.

Fig. 15
figure 15

Subcase 1a. (i) A 1-critical polygon γ with shaded interior. q 2 is counterclockwise and q 3 is clockwise, and q 2 q 3 is an edge of the geodesic ∂H γ . (ii) Introduce a sink at q 3, which is the root of the directed tree T 0 formed by edge q 2 q 3 and all extension-paths leading to q 2 and q 3. Extend T 0 recursively with the extension trees rooted at v 1 and v 2 to obtain a tree which has convex angles at all vertices. We perturb the tree at v 1 and v 2 so that they include very short outgoing edges collinear with the incident line segments, and obtain an extension tree rooted at q 3

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 extension-paths of N leading to q i , and all extension paths of N leading to q i+1. To show that T 0 is a crossing-free 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 extension-path 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 extension-path δ. 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 0-critical 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 non-leaf 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.

Subcase 1b: q i q i+1 is not an edge of H γ (see q 2 q 3 in Fig. 16). We replace the outgoing edge of q i or q i+1 with the incident edge of ∂H γ . This provides a new edge from γ to the exterior of γ, and ensures that some segment in M C has two endpoint-disjoint D-paths to infinity (cf. Claim 5 below). After modifying the outgoing edge of q i or q i+1, a careful rebuilding of the nearby extensions yields a subdivision \(C'\in\mathcal{D}^{*}(M)\) with M CM C . To control the extent of the modifications, we will define a polygonal domain PH γ : all extension edges in the exterior of P remain unchanged, and the extension edges inside P are redrawn. Polygon P is defined in the next two paragraphs.

Fig. 16
figure 16

Subcase 1b. (i) A 1-critical polygon γ with shaded interior. q 2 is counterclockwise and q 3 is clockwise. The geodesic H γ between q 2 and q 3 wraps around the segment endpoints r 2 and r 3. The ray \(\protect\overrightarrow{{q_{2}r_{2}}}\) hits the boundary of γ at point t. (ii) Modification in Subcase 1b: the outgoing edge of q 2 is replaced by q 2 r 2, and the outgoing edge of r 2 is replaced by r 2 t. The extensions originating in the shaded polygon P are redrawn. After the modification, segment uv has two endpoint-disjoint D-paths to infinity

By Proposition 15, N(C) contains D-paths δ(q i ) and δ(q i+1) from q i and q i+1, respectively, to the (c)-feature of γ. The D-paths δ(q i ) and δ(q i+1) meet at some point \(\widehat{q}\), and we denote by δ(q i ,q i+1) the union of the initial portions of δ(q i ) and δ(q i+1) up to \(\widehat{q}\) (see Fig. 17(i)). Let q i r i and r i+1 q i+1 be the edges of ∂H γ incident to q i and q i+1, respectively (possibly r i =r i+1). Since r i and r i+1 are reflex vertices of the geodesic hull H γ , they are endpoints of some line segments lying in the exterior of γ. The extension-paths emitted by r i and r i+1 reach γ(q i ,q i+1), so N(C) contains D-paths δ(r i ) and δ(r i+1) from r i and r i+1, respectively, to the (c)-feature of γ. Both δ(r i ) and δ(r i+1) reach δ(q i ,q i+1) at some points \(\widehat {r}_{i}\) and \(\widehat{r}_{i+1}\), respectively (possibly \(\widehat {r}_{i}=\widehat{r}_{i+1}\)). Since δ(r i ) and δ(r i+1) do not cross, the points \((q_{i},\widehat{r}_{i},\widehat{r}_{i+1},q_{i+1})\) appear in this order along path δ(q i ,q i+1). Assume, by applying a reflection if necessary, that \(\widehat{q}\) does not lie between q i and \(\widehat{r}_{i}\) along δ(q i ,q i+1).

Fig. 17
figure 17

(i) The portions of δ and ∂H γ between a counterclockwise vertex q i and a clockwise vertex q i+1. The paths δ(q i ), δ(r i ), δ(r i+1), and δ(q i+1) go to the (c)-feature of γ (which is outside of the figure). The interior of γ is shaded light gray. (ii) Three straight-extensions cross segment r i t, one of them contains an edge of δ(q i ). Polygon P is shaded dark gray. (iii) A straight-extension crosses q i r i , and it contains an edge of δ(q i )

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 pathFootnote 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 straight-extension 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 D-path 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 straight-extension 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 straight-extension of N(C) that intersects q i r i . Clearly, we have e 0E. Let every edge eE inherit its direction from the straight-extension it is contained in.

Claim 2

The interior of P lies on the right side of every edge eE.

Proof

Let P 0 be the polygonal domain enclosed by q i r i , δ(q i ), and δ(r i ). Consider an edge eE. Since e crosses neither δ(q i ) nor δ(r i ), we have eP 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 0P. Hence edge eE lies on δ(q i ), and the interiors of both P 0 and P are on the right side of e. □

Every straight-extension that contains an edge eE crosses segment q i r i (see Fig. 18(i)). Order the segments in E by e 0,…,e −1, according to their intersections with q i r i . The straight-extensions containing the segments in E decompose polygon P into sectors, each of which is adjacent to a unique edge in E by Claim 2. For j=0,…,−1, denote by S j the sector adjacent to e j E.

Fig. 18
figure 18

(i) Polygon P with edges E={e 0,e 1,e 2,e 3} is decomposed into four sectors. A ray enters the interior of P at point p of edge e 1. (ii) The edges of the subdivision \(C\in\mathcal{D}^{*}(M)\) that intersect P. (iii) The outgoing edge of q i is replaced by q i r i , and the outgoing edge of r i is replaced by r i y. The straight-extensions inside polygon P are erased unless they overlap with the boundary of P. (iv) New straight-extensions are created in polygon P

Claim 3

If p is a point on an edge eE, 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 pe of some edge eE, 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 xr 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 straight-line extensions that start from the interior of P and overlap with some edge of P are also preserved. Replace the straight-extension 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 eE 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 straight-extensions 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 straight-extensions 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 US 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 D-path from every point pN(C′) to infinity.

  • N(C′) contain a D-path from every point pR(γ)∪P to q 0.

Proof

Before the modifications, N(C) contained a D-path from every point pN(C) to infinity, since \(C\in\mathcal{D}^{*}(M)\). The modification affects only those paths that intersect the interior of polygon P. Suppose that pN(C), and its D-path δ(p) to infinity intersected polygon P. If δ(p) reached ∂P from the exterior of P, and overlapped with an edge eE, 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 mM is in M C . First we show that every segment mMM C continues to have two endpoint-disjoint D-paths to infinity. Let mMM C . It lies in the exterior of γ, and it had two endpoint-disjoint D-paths to infinity in N(C). The modification affects only those paths that intersect polygon P. Every D-path intersecting P reaches γ, and so it has to pass through the (c)-feature q 0. Out of two endpoint-disjoint D-paths 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 D-path reaches ∂P. It is enough to show that N(C′) contains a D-path from p to q 0. It was shown in Claim 4 that there is a D-path from p to q 0, which remains in the polygonal domain R(γ)∪P.

Next we show that at least one segment mM C has two endpoint-disjoint D-paths to infinity in N(C′). Let uγ be the segment endpoint whose extension-path reaches q i , and let uvM be the segment incident to u (see Fig. 16(ii)). We have uvM C , since uγ. After the modification, the extension-path 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 endpoint-disjoint D-paths to infinity: one goes to q 0 followed by some D-path α 1 to infinity, and the other a D-path α 2 remains entirely in the exterior of γ. After the modification, N(C′) contains two endpoint-disjoint D-paths 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 uvM C but \(uv\not\in M_{C'}\). □

Claim 6

  • If a segment endpoint vN(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 pN(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 extension-path 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

Vertex q 1 is oriented clockwise or q k is oriented counterclockwise (e.g. q 1 in Fig. 19(i)). We may assume w.l.o.g. that q 1 is clockwise (by applying a reflection if necessary). We distinguish two subcases.

Fig. 19
figure 19

Subcase 2a. (i) A 1-critical polygon γ with shaded interior. q 1 is oriented clockwise. q 0 q 1 is an edge of the geodesic ∂H γ . (ii) We replace the outgoing edge of q 1 with a directed edge \(q_{1}q_{0}'\), which creates a new D-path from q 1 to the exterior of γ that does not pass through the bottleneck (c)-feature q 0

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 D-path δ(q 1) (note that the D-path δ(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 MM C still have two endpoint-disjoint D-paths to infinity. Let u be the segment endpoint along γ whose extension-path reaches q 1. It is an endpoint of some segment uvM 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 D-path from v that starts with the extension-path emitted by v and goes to infinity. Since uvM C , the D-path α v passes through q 0, and \(q_{0}'\). After the modification, there is still a D-path from v to q 0 in the polygonal domain R(γ)∪P. On the other hand, u now has a D-path to \(q_{0}'\) along an extension-path that uses the new edge \(q_{1}q_{0}'\); this D-path bypasses the bottleneck q 0. So there are now two endpoint-disjoint D-paths from any point in M to \(q_{0}'\). Note that \(q_{0}'\) is in the exterior of γ, and by the maximality of the 1-critical polygon γ, it has two endpoint-disjoint D-paths to infinity. The composition of these D-paths (from m to \(q_{0}'\) and from \(q_{0}'\) to infinity) provides two endpoint-disjoint D-paths from m to infinity.

Subcase 2b: q 0 q 1 does not lie in the geodesic hull H γ (see q 0 q 1 in Fig. 20). We can repeat the same argument as in subcase 1b, with the only difference (in fact, simplification) that path δ(q 0) degenerates to a point. This implies that \(\widehat{q}=q_{0}\) and so δ(q 0,q 1)=δ(q 1).

Fig. 20
figure 20

Subcase 2b. (i) A 1-critical polygon γ with shaded interior. q 1 is oriented clockwise. The geodesic H γ between q 0 and q 1 wraps around the segment endpoint r 1. The ray \(\vec{q_{2}r_{2}}\) hits the boundary of γ at point t. (ii) Modification in Subcase 2b: x is the first intersection point of ray \(\vec{q_{1}r_{1}}\) with a straight-extension that contains an edge of δ(q i ,q i+1). The outgoing edge of q 1 is replaced by q 1 r 1, and the outgoing edge of r 1 is replaced by r 1 x. The extension edges in the shaded polygon P are redrawn. After the modification, segment uv has two endpoint-disjoint D-paths 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 straight-extension that contains an edge of δ(q 0,q 1), or x=q 0. Let δ(x) be a D-path 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 Edge-Disjoint 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 edge-disjoint 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 conflict-free spanning trees. Cannon et al. [7] have recently designed a polynomial-time 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 Edge-Disjoint Spanning Trees

We start with a brief review of well-known properties of multigraphs formed by the edge-disjoint 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 St=S∖{t}. Let G=(V,E) be a multigraph on n vertices which is the edge-disjoint 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 1V be a vertex of degree 2, incident to edges e 1,e 2E. 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 1B and e 2R. Then v is a leaf in each spanning tree. It follows that (Vv 1,Be 1) and (Vv 1,Re 2) are two edge-disjoint spanning trees on the vertex set Vv 1. Pruning vertex v 1 is the operation that replaces (V,BR) by (Vv 1,(Be 1)∪(Re 2)).

Now let v 2V 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 2B and e 3R. 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, (Vv 2,Be 1e 2+u 1 u 2) and (Vv 2,Re 3) are two edge-disjoint spanning trees on the vertex set Vv 2. Pruning vertex v 2 is the operation that replaces (V,BR) by (Vv 2,(Be 1e 2+u 1 u 2)∪(Re 3)).

We can reduce G to a single vertex by successively pruning vertices of degree 2 or 3 (see Fig. 21).

Algorithm 1. Successive Pruning

  1. 1.

    Input: a multigraph G 1=(V 1,E 1) such that E 1=B 1R 1, where (V 1,B 1) and (V 1,R 1) are edge-disjoint spanning trees.

  2. 2.

    Put i=1. While |E i |>0, do:

    1. (a)

      pick an arbitrary vertex v i V i which has degree 2 or 3 in G i ;

    2. (b)

      prune v i from G i =(V i ,B i R i ) to obtain G i+1=(V i+1,B i+1R i+1);

    3. (c)

      put i=i+1.

Fig. 21
figure 21

Multigraph G 1, which is the edge-disjoint union of a dotted red tree and a dashed blue tree. Algorithm 1 successively prunes vertices v 1,…,v 7 of degree 2 or 3, and maintains two edge-disjoint spanning trees

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 2B and e 3R. 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 one-vertex component of (V,Be 1e 2). Suppose that u 3 is in the same component as u 2. Then (V,Be 2+e 3) and (V,Re 3+e 2) are also two edge-disjoint spanning trees of G. An edge flip at v 2 is the operation that replaces the edge partition E=BR by E=(Ee 2+e 3)∪(Ee 3+e 2).

Contracting Double Edges

Suppose that G=(V,E) contains two parallel edges, that is, edges e 1,e 2E with two common endpoints u,vV. Since no spanning tree has double edges, e 1 and e 2 are in distinct spanning trees, say e 1B and e 2R. 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 edge-disjoint union of two spanning trees.

5.2 Conflict-Free Tree Representations

Our proof of Lemma 3 is based on the concept of conflict-free tree representation, defined below. Recall that a vertex splitting in a (multi-)graph G=(V,E) is the operation that replaces a vertex vV with two vertices v 1 and v 2, and replaces each edge vuE incident to v with a new edge incident to either v 1 or v 2 (see Fig. 22(i)–(ii)). We assume that the replacement edge is identified with the original edge, and in particular it preserves the same conflicts.

Fig. 22
figure 22

(i) A graph G with an even number of edges. Conflicting pairs of edges are joined by small circular arcs. (ii) A conflict-free tree representation with a leaf at u after some vertex splitting steps. (iii) An even orientation on the tree. (iv) The induced even orientation of the original graph G

Definition 4

Let G=(V,E) be a multigraph and let \(X\subseteq{E\choose2}\) be a collection of disjoint pairs of adjacent edges in E (called conflict pairs).

  • A subset of edges RE has a conflict-free 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 UV be a subset of vertices. A subset of edges RE has a conflict-free 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 uU 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 RE has a conflict-free 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 edge-disjoint spanning trees. Our technique for constructing an even orientation focuses on the subgraph of G formed by two edge-disjoint 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

Let G=(V,E) be a multigraph that contains two edge-disjoint spanning trees and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. There is a partition E=BRY such that (V,B) and (V,R) are spanning trees, and if two parallel edges of E are in conflict, then either both of them are in BR or neither of them is in BR. (See Fig23(i)(ii).)

Fig. 23
figure 23

(i) The dual (multi-)graph G from Fig. 1(iii). It contains two edge-disjoint spanning trees: the dotted red tree and the dashed blue tree. Two additional edges are solid black. Conflicting pairs of edges are joined by small circular arcs. (iiG also contains two edge-disjoint spanning trees, (V,B) and (V,R), with the property that if two parallel edges are in conflict then either both of them are contained in BR or neither of them is in BR. (iii) After some vertex splitting operations, we obtain a multigraph H in which (V,BR) is a subgraph, and all other edges have exactly one endpoint in V and are not in conflict with any adjacent edge

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 edge-disjoint spanning trees have the required property. Suppose that edges e 1,e 2E are parallel and in conflict. Let u,vV 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 edge-disjoint spanning trees. By induction, G′ contains two edge-disjoint 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 edge-disjoint spanning trees in G with the required property. □

Corollary 20

Let G=(V,E) be a multigraph that contains two edge-disjoint 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=(VW,BRY) 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 Fig23(iii).)

Proof

Let E=BRY be the edge partition from Proposition 19. We use a vertex splitting operation to turn one endpoint of each edge eY into a leaf as follows. Recall that every edge eE is in conflict with at most one other edge. Assign successively every edge uvY 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 eY: if an edge e=uvY 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 conflict-free tree representation with a leaf at a common vertex vV. In general we cannot hope for a single conflict-free 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 conflict-free tree representation.

Let G=(V,E) be a multigraph on n vertices that contains two edge-disjoint spanning trees and let \(X\subseteq{E\choose2}\) be a set of disjoint conflict pairs. Let H=(VW,BRY) 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,BR). Now G 1 is the edge-disjoint 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 edge-disjoint 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 conflict-free 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 eE i between vertices u,vV i corresponds to a unique nonempty edge set \(E_{i}(e)\in\mathcal{E}_{i}\), which has a conflict-free tree representation with leaves at both u and v. In the conflict-free 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 vV i , such that A i has a conflict-free 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 vV i . For every vertex vV 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 eBR, create a set E 1(e)={e} corresponding to eE 1. For every edge eY, incident to vV and a leaf wW, 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 conflict-free 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

v i has degree 2 in G i . Refer to Fig. 24(i)–(ii). Assume without loss of generality that v i is incident to the edges v i u 1B i and v i u 2R i (possibly u 1=u 2). Vertex v i and the edges v i u 1, v i u 2 are removed from G i to obtain G i+1. We need to take care of the associated edge sets E i (v i u 1), E i (v i u 2) and all sets in \(\mathcal {E}_{i}(v_{i})\). Put E i+1(u 1)=E i (v i u 1); and then successively augment E i+1(u 1) with sets \(A_{i}(v_{i})\in\mathcal{E}_{i}(v_{i})\) such that the designated edge of A i (v i ) is in conflict with neither the designated edge of E i (v i u 1) at v i , nor the designated edge of any other set \(A'_{i}(v_{i})\in\mathcal{E}_{i}(v_{i})\) that has already been added to E i+1(u 1). Let E i+1(u 2) be the union of E i (v i u 2) and all remaining sets from \(\mathcal{E}_{i}(v_{i})\) (whose designated edges are in conflict with neither the designated edge of E i (v i u 2) incident to v i , nor each other). Note that both E i+1(u 1) and E i+1(u 2) have a conflict-free tree representation. We construct \(\mathcal{E}_{i+1}\) from \(\mathcal{E}_{i}\) by removing E i (v i u 1), E i (v i u 2) and all sets in \(\mathcal {E}_{i}(v_{i})\); and adding E i+1(u 1) and E i+1(u 2). Let the designated edge of E i+1(u 1) (resp., E i+1(u 2)) be the designated edge of E i (v i u 1) (resp., E i (v i u 2)) incident to u 1 (resp., u 2).

Fig. 24
figure 24

(i) Graph G i with a vertex v i of degree 2. (ii) Graph G i+1 after pruning v i . (iii) Graph G i with a vertex v i of degree 3. (iv) Graph G i+1 after pruning v i

Case 2

v i has degree 3 in G i . Refer to Fig. 24(iii)–(iv). Assume without loss of generality that v i is incident to the edges v i u 1B i and v i u 2,v i u 3R i . If the designated edges of E i (v i u 2) and E i (v i u 3) are in conflict, then perform an edge flip at v i in the graph G i (see G 2 in Fig. 25, for an example). We may now assume that v i is incident to the edges v i u 1B i and v i u 2,v i u 3R i ; and the designated edges of E i (v i u 2) and E i (v i u 3) are not in conflict. Put E i+1(u 1)=E i (v i u 1); and then successively augment E i+1(u 1) with sets \(A_{i}(v_{i})\in \mathcal {E}_{i}(v_{i})\) such that the designated edge of A i (v i ) is in conflict with neither the designated edge of E i (v i u 1) at v i , nor the designated edge of any other set \(A'_{i}(v_{i})\in\mathcal{E}_{i}(v_{i})\) that has already been added to E i+1(u 1). Let E i+1(u 2 u 3) be the union of E i (v i u 2), E i (v i u 3), and all remaining sets from \(\mathcal{E}_{i}(v_{i})\) (whose designated edges are in conflict with neither the designated edges of E i (v i u 2) and E i (v i u 3) incident to v i , nor each other). Now E i+1(u 1) and E i+1(u 2 u 3) each have a conflict-free tree representation. We construct \(\mathcal{E}_{i+1}\) from \(\mathcal{E}_{i}\) by removing E i (v i u 1), E i (v i u 2), E i (v i u 3) and all sets in \(\mathcal {E}_{i}(v_{i})\); and adding E i+1(u 1) and E i+1(u 2 u 3). Let the designated edge of E i+1(u 1) be the designated edge of E i (v i u 1) incident to u 1; and let the designated edges of E i+1(u 2 u 3) be the designated edges of E i (v i u 2) and E i (v i u 3) incident to u 2 and u 3, respectively.

Fig. 25
figure 25

A sequence of graphs G 1,…,G 8 is obtained by successively pruning vertices v 1,…,v 7. Each G i , i=1,…,8, is the edge-disjoint union of a dotted red spanning tree and a dashed blue spanning tree. Conflicts are indicated by small circular arcs. Before v 2 is pruned, an edge flip is applied at v 2 to ensure that the two incident edges of the same color are not in conflict. Each G i , i=1,…,8, corresponds to an edge partition \(\mathcal{E}_{i}\), where each set has a conflict-free tree representation, as shown in the figure. There are four sets in \(\mathcal{E}_{8}\), each of which contains a designated edge incident to v 8. Each even set has a conflict-free even orientation; and each odd set has an orientation where the indegree of v 8 is odd. In this instance, the two edges oriented into v 8 are not in conflict, hence we obtain a conflict-free even orientation for H and hence for G

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 edge-disjoint 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 conflict-free tree representation with a leaf at v n for each set \(A\in\mathcal{E}_{n}\). A vertex vV may have several copies (due to vertex splitting) over the conflict-free tree representations of the sets in \(\mathcal{E}_{n}\), but at most two copies of each vV 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 vV have degree 2 or higher, notice that H=(VW,BRY) (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 vV have degree 2 or higher over the conflict-free 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

Let G=(V,E) be a multigraph with n vertices and an even number of edges that contains two edge-disjoint spanning trees and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. Suppose that there is a vertex v 0 and a partition of E into a collection \(\mathcal{E}\) of subsets with the following properties:

  • every even set \(A\in\mathcal{E}\) has a conflict-free tree representation;

  • every odd set \(A\in\mathcal{E}\) has a conflict-free 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.

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

We show that E can be partitioned into even sets each of which has a conflict-free tree representation. Every such edge set has a conflict-free 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 conflict-free 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 conflict-free tree representation. □

We can now establish Lemma 3 in several important special cases.

Corollary 23

Let G=(V,E) be a multigraph with n vertices and an even number of edges that contains two edge-disjoint spanning trees and let \(X\subseteq{E\choose2}\) be a collection of disjoint conflict pairs. Assume that

  • G contains more than 2n−2 edges, or

  • G has a vertex such that no two incident edges are in conflict.

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

First assume that G has more than 2n−2 edges. Consider the multigraph H=(VW,BRY) 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 0V and w 0W. 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 edge-disjoint 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 0V 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.

Let G=(V,E) be a multigraph on n vertices which is the edge-disjoint union of two spanning trees and let \(X\subseteq{E\choose 2}\) be a collection of disjoint conflict pairs. Successively contract any pair of parallel edges that are in conflict, and denote the resulting graph by \(\widehat{G}=(\widehat{V},\widehat{E})\). (Refer to Fig. 26(i)–(ii)). Note that \(\widehat{E}\subset E\). Each vertex \(\hat{v}\in\widehat{V}\) is the result of identifying a set \(U_{\hat{v}}\subseteq V\) of vertices. Let \(G[\hat{v}]\) denote the subgraph of G induced by \(U_{\hat{v}}\). By construction, \(G[\hat{v}]\) is the edge-disjoint union of two spanning trees, a red tree \((U_{\hat {v}},R_{\hat{v}})\) and a blue tree \((U_{\hat{v}},B_{\hat{v}})\), each of which is conflict-free. We say that a vertex \(\hat{v}\in\widehat{V}\) is odd if both \(R_{\hat{v}}\) and \(B_{\hat{v}}\) are odd; and \(\hat {v}\in\widehat{V}\) is even if both \(R_{\hat{v}}\) and \(B_{\hat {v}}\) are even.

Fig. 26
figure 26

(iG is the edge-disjoint union of two spanning trees: a dotted red tree and a dashed blue tree. Edge pairs in conflict are marked with small circular arcs. (ii\(\widehat{G}\) is obtained from G by successively contracting parallel edges in conflict. Odd (even) vertices are marked with empty (full) dots. (iii\(\widehat{H}\) is obtained by adding two leaves in conflict to each odd vertex of \(\widehat{G}\). (iv) An even orientation for \(\widehat{H}\) such that whenever the indegree of a vertex is 2, the two incoming edges are not 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 edge-disjoint 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

Compute \(\widehat{H}\) and \(\widehat{X}\) as described above. We perform the edge partition algorithm on \(\widehat{H}\), with certain additional constraints to be specified below. The algorithm maintains the edge partitions \(\mathcal{E}_{1},\ldots, \mathcal{E}_{n}\) for the edges of \(\widehat{H}\) (that is, including the special edges). Recall that the algorithm is guided by a sequence of multigraphs \(\widehat {G}=G_{1},G_{2},\ldots, G_{n}\). Perform the edge partition algorithm on \(\widehat{H}\) until the first step , 1≤<n, where there exists an even vertex \(\hat{x}\in V_{\ell}\) of degree 2 or 3. For all steps i, the following invariants are automatically maintained by the algorithm:

  1. 1.

    For every edge uvE i , the edge set \(E_{i}(uv)\in\mathcal {E}_{i}\) has odd cardinality.

  2. 2.

    Every set \(A_{i}(v)\in\mathcal{E}_{i}(v)\) for every vV i , either consists of a single special edge or has even cardinality.

Both invariants clearly hold for i=1, where every set E 1(uv) associated with an edge uvE 1 contains exactly one edge; and every \(A_{1}(v)\in\mathcal{E}_{1}(v)\) associated with a vertex vV 1 contains exactly one edge, which is a special edge. For maintaining the invariants, consider cases 1 and 2 of the edge partition algorithm. Note that in every step i, the vertex v i is odd, and so it is incident to two special edges (leaves) in conflict. In case 1, two new edge sets are created, E i+1(u 1) and E i+1(u 2), each of which is associated with a vertex. They are each formed by the union of a set E i (v i u 1) or E i (v i u 2) associated with an edge, one special edge of v i , and some other sets associated with vertex v i . Due to the invariants, both E i+1(u 1) and E i+1(u 2) are even. In case 2, two new edge sets are created: E i+1(u 1) associated with vertex u 1, and E i+1(u 2 u 3) associated with edge u 2 u 3E i+1. E i+1(u 1) is the union of E i (v i u 1), one special edge of v i , and some other sets associated with vertex v i ; and so it is even. E i+1(u 2 u 3) is the union of E i (v i u 2), E i (v i u 3), one special edge of v i , and some other sets associated with vertex v i ; and so it is odd. We have established that both invariants hold for the edge partition \(\mathcal {E}_{\ell}\).

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 conflict-free 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 conflict-free tree representation. Proposition 22 completes the proof.

Case B

There are two edges in E i incident to \(\hat {x}\) such that their designated edges incident to \(\hat{x}\) are in conflict. See Fig. 27. In this case, prune \(\hat {x}\) in step , that is put \(v_{\ell}=\hat{x}\). Vertex \(v_{\ell}=\hat {x}\) is incident to two or three edges in G , say v u 1, v u 2, and possibly v u 3. We may assume without loss of generality that the designated edges of v u 1 and v u 2 are in conflict. Let \(\hat{u}=u_{1}\), and complete the edge partition algorithm so that \(\hat{u}\) is never pruned, that is, \(v_{i}\neq\hat{u}\) for i=+1,…,n−1. Invariant 1 implies that \(E_{\ell}(\hat {x}\hat {u})\) is odd; and invariant 2 implies that every set in \(\mathcal {E}_{\ell}(\hat{x})\) is even. In step , the union of \(E_{\ell}(\hat {x}\hat{u})\) and some of the even sets in \(\mathcal{E}_{\ell}(\hat{x})\) forms an odd set, say \(A(\hat{u})\in\mathcal{E}_{\ell+1}(\hat{u})\). This set \(A(\hat{u})\) remains in the edge partition in steps +1,…,n−1 of the algorithm, and so \(A(\hat{u})\in\mathcal {E}_{n}=\mathcal{E}_{n}(\hat{u})\).

Fig. 27
figure 27

(i\(\widehat{H}\) from Fig. 26(iii) is the edge-disjoint union of two spanning trees: a dotted red tree and a dashed blue tree. Edge pairs in conflict are marked with small circular arcs. (ii) The edge partition algorithm returns sets \(\mathcal{E}_{4}\), each with a conflict-free tree representation, and each incident to a common vertex \(\hat{v}_{4}\). Vertices \(\hat{v}_{1},\hat{v}_{2}, \hat{v}_{3}\) have been each split into two vertices. (iii) Each copy of \(\hat {v}_{1},\hat{v}_{2}, \hat{v}_{3}\) is replaced by a conflict-free copy of \(G[\hat{v}_{i}]\). The resulting graph now has an even orientation. (iv) This gives a required even orientation for graph G from Fig. 26(i)

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 conflict-free 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 0V 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 conflict-free 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}\), BA. 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 edge-disjoint 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

Let n=|V| be the number of vertices in G. If 4k>2n−2, then Corollary 23 completes the proof. Suppose that 4k=2n−2, and so G is the edge-disjoint union of two spanning trees. Compute the multigraph \(\widehat{G}=(\widehat{V},\widehat{E})\). Since \(\widehat{G}\) is also the edge-disjoint union of two spanning trees, it has \(|\widehat{E}|=2|\widehat{V}|-2\) edges. If a vertex \(\hat{v}\in \widehat{V}\) is odd, then the subgraph \(G[\hat{v}]\) of G represents and odd number of edge pairs. Therefore it has \(4k_{\hat{v}}-2\) edges for some \(k_{\hat{v}}\in\mathbb{N}\). If all vertices \(\hat {v}\in\widehat{V}\) are odd, then the total number of edges in G is

$$|E|=\bigl|\widehat{E}\bigr|+\sum_{\hat{v}\in\widehat{V}} (4k_{\hat{v}}-2) =\bigl(2\bigl|\widehat{V}\bigr|-2\bigr)-2\bigl|\widehat{V}\bigr|+4\sum_{\hat{v}\in\widehat{V}} k_{\hat{v}} =-2+4\sum_{\hat{v}\in\widehat{V}}k_{\hat{v}}, $$

which is not a multiple of 4. Since G has 4k edges, not all vertices of \(\widehat{G}\) are odd, and Lemma 24 completes the 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 straight-line matching M with an even number of edges, and no three collinear vertices, there is a disjoint compatible perfect straight-line 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 cC, assign incident segment endpoints to c if the corresponding edge is oriented into c. In every cell cC, 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. □