Guillaume Ducoffe

Alexandru Popa

The use of a pruned modular decomposition for Maximum Matching algorithms on some graph classes *

Keywords: maximum matching, FPT in P, modular decomposition, pruned graphs, one-vertex extensions, P 4 -structure

We address the following general question: given a graph class C on which we can solve Maximum Matching in (quasi) linear time, does the same hold true for the class of graphs that can be modularly decomposed into C ? A major difficulty in this task is that the Maximum Matching problem is not preserved by quotient, thereby making difficult to exploit the structural properties of the quotient subgraphs of the modular decomposition. So far, we are only aware of a recent framework in [Coudert et al., SODA'18] that only applies when the quotient subgraphs have bounded order and/or under additional assumptions on the nontrivial modules in the graph. As a first attempt toward improving this framework we study the combined effect of modular decomposition with a pruning process over the quotient subgraphs. More precisely, we remove sequentially from all such subgraphs their so-called one-vertex extensions (i.e., pendant, anti-pendant, twin, universal and isolated vertices). Doing so, we obtain a "pruned modular decomposition", that can be computed in O(m log n)-time. Our main result is that if all the pruned quotient subgraphs have bounded order then a maximum matching can be computed in linear time. This result is mostly based on two pruning rules on pendant and anti-pendant modules -that are adjacent, respectively, to one or all but one other modules in the graph. Furthermore, these two latter rules are surprisingly intricate and we consider them as our main technical contribution in the paper.

We stress that the class of graphs that can be totally decomposed by the pruned modular decomposition contains all the distance-hereditary graphs, and so, it is larger than cographs. In particular, as a byproduct of our approach we also obtain the first known linear-time algorithms for Maximum Matching on distance-hereditary graphs and graphs with modular-treewidth at most one. Finally, we can use an extended version of our framework in order to compute a maximum matching, in linear-time, for all graph classes that can be modularly decomposed into cycles. Our work is the first to explain why the existence of some nice ordering over the modules of a graph, instead of just over its vertices, can help to speed up the computation of maximum matchings on some graph classes.

Introduction

Can we compute a maximum matching in a graph in linear-time? -i.e., computing a maximum set of pairwise disjoint edges in a graph. -On one hand, despite considerable years of research and the design of elegant combinatorial and linear programming techniques, the best-known algorithms for this fundamental problem have stayed blocked to an O(m √ n)-time complexity [START_REF] Gabow | The weighted matching approach to maximum cardinality matching[END_REF][START_REF] Micali | An O( √ V E) algorithm for finding maximum matching in general graphs[END_REF]. On the other hand, the Maximum Matching problem has several applications [START_REF] Bunke | Graph matching: Theoretical foundations, algorithms, and applications[END_REF][START_REF] Dekel | A parallel matching algorithm for convex bipartite graphs and applications to scheduling[END_REF][START_REF] Lovász | Matching theory[END_REF][START_REF] Pulleyblank | Matchings and extensions[END_REF], some of them being relevant only for specific graph families. For instance, there exists a special matching problem arising in industry that can be rephrased as finding a maximum matching in a given convex bipartite graph [START_REF] Glover | Maximum matching in a convex bipartite graph[END_REF]. It may then be tempting to use some well-structured graph classes in order to overcome this superlinear barrier for particular cases of graphs. We follow this well-established line of research (e.g., see [START_REF] Chang | Algorithms for maximum matching and minimum fill-in on chordal bipartite graphs[END_REF][START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF][START_REF] Dahlhaus | Matching and multidimensional matching in chordal and strongly chordal graphs[END_REF][START_REF] Dragan | On greedy matching ordering and greedy matchable graphs[END_REF][START_REF] Fouquet | An O(n)-time algorithm for maximum matching in P 4 -tidy graphs[END_REF][START_REF] Fouquet | Bipartite graphs totally decomposable by canonical decomposition[END_REF][START_REF] Glover | Maximum matching in a convex bipartite graph[END_REF][START_REF] Hopcroft | An nˆ5/2 algorithm for maximum matchings in bipartite graphs[END_REF][START_REF] Karp | Maximum matching in sparse random graphs[END_REF][START_REF] Liang | Finding a maximum matching in a circular-arc graph[END_REF][START_REF] Mertzios | Linear-time algorithm for maximum-cardinality matching on cocomparability graphs[END_REF][START_REF] Moitra | A parallel algorithm for maximum matching on interval graphs[END_REF][START_REF] Yu | An O(n)-time algorithm for maximum matching on cographs[END_REF][START_REF] Yuster | Maximum matching in graphs with an excluded minor[END_REF][START_REF] Yuster | Maximum matching in regular and almost regular graphs[END_REF]). Our work will combine two successful approaches for this problem, namely, the use of a vertex-ordering characterization for certain graph classes, and a recent technique based on the decomposition of a graph by its modules. We detail these two approaches in what follows, before summarizing our contributions.

Related work

A cornerstone of most Maximum Matching algorithms is the notion of augmenting paths [START_REF] Berge | Two theorems in graph theory[END_REF][START_REF] Edmonds | Paths, trees, and flowers[END_REF].

-See [START_REF] Fomin | Fully polynomial-time parameterized computations for graphs and matrices of low treewidth[END_REF][START_REF] Lovász | On determinants, matchings, and random algorithms[END_REF][START_REF] Mulmuley | Matching is as easy as matrix inversion[END_REF] for some other approaches based on matrix multiplication. -Roughly, given some matching F in a graph, an F -augmenting path is a simple path between two exposed vertices (i.e., not part of V (F )) in which the edges belong alternatively to F and not to F . The symmetric difference between F and any F -augmenting path leads to a new matching of greater cardinality |F | + 1. Therefore, the standard strategy in order to solve Maximum Matching is to repeatedly compute a set of vertex-disjoint augmenting paths (w.r.t. the current matching) until no more such path can be found. However, although we can compute a set of augmenting paths in linear-time [START_REF] Gabow | A linear-time algorithm for a special case of disjoint set union[END_REF], this is a tedious task that involves the technical notion of blossoms and this may need to be repeated Ω( √ n) times before a maximum matching can be computed [START_REF] Hopcroft | An nˆ5/2 algorithm for maximum matchings in bipartite graphs[END_REF]. One way to circumvent this issue for a specific graph class is to use the structural properties of this class in order to compute the augmenting paths more efficiently.

For instance, a well-known greedy approach consists in, given some total ordering (v 1 , v 2 , . . . , v n ) over the vertices in the graph, to consider the exposed vertices v i by increasing order, then to try to match them with some exposed neighbour v j that appears later in the ordering [START_REF] Dragan | On greedy matching ordering and greedy matchable graphs[END_REF]. The candidate vertex v j can be chosen either arbitrarily or according to some specific rules depending on the graph class we consider. On the positive side, variants of the greedy approach have been used in order to compute maximum matchings in quasi linear-time on some graph classes that admit a vertex-ordering characterization, such as: interval graphs [START_REF] Moitra | A parallel algorithm for maximum matching on interval graphs[END_REF], convex bipartite graphs [START_REF] Glover | Maximum matching in a convex bipartite graph[END_REF], strongly chordal graphs [START_REF] Dahlhaus | Matching and multidimensional matching in chordal and strongly chordal graphs[END_REF], cocomparability graphs [START_REF] Mertzios | Linear-time algorithm for maximum-cardinality matching on cocomparability graphs[END_REF], etc. But on the negative side, the greedy approach does not look promising for chordal graphs (defined by the existence of a perfect elimination ordering) since computing a maximum matching in a given split graph is already O(n 2 )-time equivalent to the same problem on general bipartite graphs [START_REF] Dahlhaus | Matching and multidimensional matching in chordal and strongly chordal graphs[END_REF].

More related to our work are the reduction rules, presented in [START_REF] Karp | Maximum matching in sparse random graphs[END_REF], for the vertices of degree at most two. Indeed, since a pendant vertex in any path, and in particular in an augmenting one, can only be an endpoint, it can be easily seen that we can always match a pendant vertex with its unique neighbour w.l.o.g. A slightly more complicated reduction rule is presented for degreetwo vertices in [START_REF] Karp | Maximum matching in sparse random graphs[END_REF]. Nevertheless, no such rule is likely to exist already for degree-three vertices since Maximum Matching on cubic graphs is linear-time equivalent to Maximum Matching on general graphs [START_REF] Biedl | Linear reductions of maximum matching[END_REF]. Our initial goal was to extend similar reduction rules to module-orderingsdefined next -of which vertex-orderings are a particular case. Modular Decomposition. A module in a graph G = (V, E) is any vertex-subset X such that every vertex of V \X is either adjacent to every of X or nonadjacent to every of X. Trivial examples of modules are ∅, V and {v} for every v ∈ V . Roughly, the modular decomposition of G is a recursive decomposition of G according to its nontrivial modules [START_REF] Habib | A survey of the algorithmic aspects of modular decomposition[END_REF]. We postpone its formal definition until Section 2. For now, we only want to stress that the vertices in the "quotient subgraphs" that are outputted by this decomposition represent modules of G.

The use of modular decomposition in the algorithmic field has a rich history. The successive improvements on the best-known complexity for computing this decomposition are already interesting on their own since they required the introduction of several new techniques [START_REF] Cournier | A new linear algorithm for modular decomposition[END_REF][START_REF] Dahlhaus | Efficient and practical algorithms for sequential modular decomposition[END_REF][START_REF] Habib | A simple linear-time modular decomposition algorithm for graphs, using order extension[END_REF][START_REF] Mcconnell | Linear-time modular decomposition and efficient transitive orientation of comparability graphs[END_REF][START_REF] Tedder | Simpler linear-time modular decomposition via recursive factorizing permutations[END_REF].

There is now a practical linear-time algorithm for computing the modular decomposition of any graph [START_REF] Tedder | Simpler linear-time modular decomposition via recursive factorizing permutations[END_REF]. Furthermore, the story does not end here since modular decomposition was also applied in order to solve several graph-theoretic problems (e.g., see [START_REF] Abu-Khzam | Modular-width: An auxiliary parameter for parameterized parallel complexity[END_REF][START_REF] Brandstädt | P 6 -and triangle-free graphs revisited: structure and bounded clique-width[END_REF][START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF][START_REF] Dahlhaus | Minimum fill-in and treewidth for graphs modularly decomposable into chordal graphs[END_REF][START_REF] Fomin | Algorithms parameterized by vertex cover and modular-width, through potential maximal cliques[END_REF][START_REF] Gajarskỳ | Parameterized Algorithms for Modular-Width[END_REF]). Our main motivation for considering modular decomposition in this note is its recent use in the field of parameterized complexity for polynomial problems. -For some earlier applications to NP-hard problems, see [START_REF] Gajarskỳ | Parameterized Algorithms for Modular-Width[END_REF]. -More precisely, let us call modular-width of a graph G the minimum k ≥ 2 such that every quotient subgraph in the modular decomposition of G is either "degenerate" (i.e., complete or edgeless) or of order at most k. With Coudert, we proved in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF] that many "hard" graph problems in P -for which no linear-time algorithm is likely to exist -can be solved in k O (1) (n + m)-time on graphs with modular-width at most k. In particular, we proposed an O(k 4 n + m)-time algorithm for Maximum Matching.

One appealing aspect of our approach in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF] was that, for most problems studied, we obtained a linear-time reduction from the input graph G to some (smaller) quotient subgraph G in its modular decomposition. -We say that the problem is preserved by quotient. -This paved the way to the design of efficient algorithms for these problems on graph classes with unbounded modular-width, assuming their quotient subgraphs are simple enough w.r.t. the problem at hands. We illustrated this possibility through the case of (q, q -3)-graphs (i.e., graphs where no set of at most q vertices, q ≥ 7, can induce more than q -3 paths of length four). However, this approach completely fell down for Maximum Matching. Indeed, our Maximum Matching algorithm in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF] works on supergraphs of the quotient graphs that need to be repeatedly updated every time a new augmenting path is computed. Such approach did not help much in exploiting the structure of quotient graphs. We managed to do so for (q, q -3)-graphs only through the help of a deeper structural theorem on the nontrivial modules in this class of graphs. Nevertheless, to take a shameful example, it was not even known before this work whether Maximum Matching could be solved faster than with the state-of-the art algorithms on the graphs that can be modularly decomposed into paths!

Our contributions

We propose pruning rules on the modules in a graph (some of them new and some others revisited) that can be used in order to compute Maximum Matching in linear-time on several new graph classes. More precisely, given a module M in a graph G = (V, E), recall that M is corresponding to some vertex v M in a quotient graph G of the modular decomposition of G. Assuming v M is a so-called one-vertex extension in G (i.e., it is pendant, anti-pendant, universal, isolated or it has a twin), we show that a maximum matching for G can be computed from a maximum matching of G[M ] and a maximum matching of G \ M efficiently (see Section 4). Our rules are purely structural, in the sense that they only rely on the structural properties of v M in G and not on any additional assumption on the nontrivial modules. Some of these rules (e.g., for isolated or universal modules) were first introduced in [13] -although with slightly different correctness proofs. Our main technical contributions in this work are the pruning rules for, respectively, pendant and antipendant modules (see Sections 4.2 and 4.3). The latter two cases are surprisingly the most intricate. In particular, they require amongst other techniques: the computation of specified augmenting paths of length up to 7, the addition of some "virtual edges" in other modules, and a careful swapping between some matched and unmatched edges.

Then, we are left with pruning every quotient subgraph in the modular decomposition by sequentially removing the one-vertex extensions. We prove that the resulting "pruned quotient subgraphs" are unique (independent from the removal orderings) and that they can be computed in quasi linear-time using a trie data-structure (Section 3). Furthermore, many interesting graph classes are totally decomposable w.r.t. this new "pruned modular decomposition", namely, every graph that can be decomposed into: trees, distance-hereditary graphs [START_REF] Bandelt | Distance-hereditary graphs[END_REF], tree-perfect graphs [START_REF] Brandstädt | Tree-and forest-perfect graphs[END_REF], etc. These classes are further discussed in Section 5. Note that for some of them, such as distancehereditary graphs, we so obtain the first known linear-time algorithm for Maximum Matching. With slightly more work, we can extend our approach to every graph that can be modularly decomposed into cycles (Section 5.2). The case of graphs that can be modularly decomposed into series-parallel graphs [START_REF] Eppstein | Parallel recognition of series-parallel graphs[END_REF], or more generally the graphs of bounded modular treewidth [START_REF] Paulusma | Model counting for cnf formulas of bounded modular treewidth[END_REF], is left as an interesting open question.

Definitions and our first results are presented in Section 2. We introduce the pruned modular decomposition in Section 3, where we show that it can be computed in quasi linear-time. Then, the core of the paper is Section 4 where the pruning rules are presented along with their correctness proofs. In particular, we state our main result in Section 4.4. Applications of our approach to some graph classes are discussed in Section 5. Finally, we conclude in Section 6 with some open questions.

Preliminaries

For the standard graph terminology, see [START_REF] Bondy | Graph theory[END_REF][START_REF] Diestel | Graph Theory[END_REF]. We only consider graphs that are finite, simple (hence without loops or multiple edges), and unweighted -unless stated otherwise. Furthermore we make the standard assumption that graphs are encoded as adjacency lists. In what follows, we introduce our main algorithmic tool for the paper as well as the graph problems we study.

Modular decomposition

We define a module in a graph G = (V, E) as any subset M ⊆ V (G) such that for any u, v ∈ M we have N G (v) \ M = N G (u) \ M . Said otherwise, every vertex of V \ M is either adjacent to every vertex of M or nonadjacent to every vertex of M . There are trivial examples of modules such as ∅, V, and {v} for every v ∈ V . Other less trivial examples of modules are the connected components of G and, similarly, the co-connected components of G. Let P = {M 1 , M 2 , . . . , M p } be a partition of the vertex-set V . If for every 1 ≤ i ≤ p, M i is a module of G, then we call P a modular partition of G. By abuse of notation, we will sometimes identify a module M i with the induced subgraph H i = G[M i ], i.e., we will write P = {H 1 , H 2 , . . . H p }.

The quotient subgraph G/P has for vertex-set P, and there is an edge between every two modules M i , M j ∈ P such that M i × M j ⊆ E. Conversely, let G = (V , E ) be a graph and let P = {H 1 , H 2 , . . . H p }. be a collection of subgraphs. The substitution graph G (P) is obtained from G by replacing every vertex v i ∈ V with a module inducing H i . In particular, for G = G/P we have that G (P) = G.

The modular decomposition of G is a compact representation of all the modules in G (in O(n + m)-space), that can be recursively defined as follows. First we say that G is prime if its only modules are trivial (i.e., ∅, V, and the singletons {v}). Roughly, the modular decomposition of G is a tree-like collection of prime quotient subgraphs of G. In order to make this more precise, let us introduce a few more notions. We call a module M strong if it does not overlap any other module, i.e., for any module M of G, either one of M or M is contained in the other or M and M do not intersect. Let M(G) be the family of all inclusion wise maximal strong modules of G that are proper subsets of V . The family M(G) is a modular partition of G [START_REF] Habib | A survey of the algorithmic aspects of modular decomposition[END_REF], and so, we can define G = G/M(G). The following structure theorem is due to Gallai.

Theorem 1 ( [33]

). For an arbitrary graph G exactly one of the following conditions is satisfied.

1. G is disconnected; 2. its complement G is disconnected;
3. or its quotient graph G is prime for modular decomposition.

Then, the modular decomposition of G is formally defined as follows. We output the quotient graph G and, for any strong module M ∈ M(G) that is nontrivial (possibly none if G = G ), we also output the modular decomposition of G[M ]. Observe that, by Theorem 1, the subgraphs from the modular decomposition are either edgeless, complete, or prime for modular decomposition. See Fig. 1 for an example. The modular decomposition of a given graph G = (V, E) can be computed in linear-time [START_REF] Tedder | Simpler linear-time modular decomposition via recursive factorizing permutations[END_REF]. We stress that there are many graph classes that can be characterized using the modular decomposition [START_REF] Arumugam | Handbook of graph theory, combinatorial optimization, and algorithms[END_REF]. In particular, G is a cograph if and only if every quotient subgraph in its modular decomposition is either complete or disconnected [START_REF] Corneil | A linear recognition algorithm for cographs[END_REF].

Maximum Matching

A matching in a graph is defined as a set of edges with pairwise disjoint end vertices. The maximum cardinality of a matching in a given graph G = (V, E) is denoted by µ(G). We consider the problem of computing a matching of maximum cardinality.

Problem 1 (Maximum Matching).

Input: A graph G = (V, E).

Output: A matching of G with maximum cardinality.

We remind the reader that Maximum Matching can be solved in O(m √ n)-time on general graphs -although we do not use this result directly in our paper [START_REF] Gabow | The weighted matching approach to maximum cardinality matching[END_REF][START_REF] Micali | An O( √ V E) algorithm for finding maximum matching in general graphs[END_REF]. Furthermore, let G = (V, E) be a graph and let F ⊆ E be a matching of G. We call a vertex matched if it is incident to an edge of F , and exposed otherwise. Then, we define an F -augmenting path as a path where the two ends are exposed, and the edges belong alternatively to F and not to F . It is well-known and easy to check that, given an F -augmenting path P = (v 1 , v 2 , . . . , v 2 ), the matching E(P )∆F (obtained by symmetric difference on the edges) has larger cardinality than F . Lemma 1 (Berge, [START_REF] Berge | Two theorems in graph theory[END_REF]). A matching F in G = (V, E) is maximum if and only if there is no F -augmenting path.

In this paper, we will consider an intermediate matching problem, first introduced in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF].

Problem 2 (Module Matching).

Input: A graph G = (V , E ) with the following additional information;

• a collection of subgraphs P = {H 1 , H 2 , . . . , H p };

• a collection F = {F 1 , F 2 , . . . , F p }, with F i being a maximum matching of H i for every i.

Output: A matching of G = G (P) with maximum cardinality.

A natural choice for Module Matching would be to take P = M(G). However, we will allow P to take different values for our reduction rules. In particular, by setting G = G, P = V and F a collection of empty matchings, one obtains that Module Matching is a strict generalization of Maximum Matching.

Additional notations. Let G , P, F be any instance of Module Matching. The order of G , equivalently the cardinality of P, is denoted by p. For every 1 ≤ i ≤ p let M i = V (H i ) and let n i = |M i | be the order of H i . We denote δ i = |E(M i , M i )| the size of the cut with all the edges between M i and N G (M i ). In particular, we have δ i = v j ∈N G (v i ) n i n j . Let us define ∆m(G ) = i δ i . We will omit the dependency in G if it is clear from the context. Finally, let ∆µ = µ(G)i µ(H i ).

Our framework is based on the following lemma (inspired from [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF]).

Lemma 2. Let G = (V, E) be a graph. Suppose that for every H in the modular decomposition of G we can solve Module Matching on any instance H , P, F in time T (p, ∆m, ∆µ), where T is a subadditive function 1 . Then, we can solve Maximum Matching on G in time O(T (O(n), m, n)).

Proof. Let N be the sum of the orders of all the subgraphs in the modular decomposition of G. Next, we describe an algorithm for Maximum Matching that runs in time O(T (N, m, µ(G))). The latter will prove the lemma since we have N = O(n) [START_REF] Habib | A survey of the algorithmic aspects of modular decomposition[END_REF]. We prove our result by induction on the number of subgraphs in the modular decomposition of G. Otherwise,

G = G . Let M(G) = {M 1 , M 2 , . . . , M p }.
For every 1 ≤ i ≤ p, we call the algorithm recursively on H i = G[M i ] and we so obtain a maximum matching F i for this subgraph. By the induction hypothesis, this step takes times O( p i=1 T (N i , m i , µ(H i ))), with N i being the sum of the orders of all the subgraphs in the modular decomposition of H i and

m i = |E(H i )|. Furthermore, let F = {F 1 , F 2 , . . . , F p }. Observe that we have p i=1 N i = N -p, p i=1 m i = m -∆m and p i=1 µ(H i ) = µ(G) -∆µ.
In order to compute a maximum matching for G, we are left with solving Module Matching on G , M(G), F , that takes time T (p, ∆m, ∆µ) by the hypothesis. Overall, since T is subadditive, the total running time is an O(T (N, m, µ(G))).

An important observation for our subsequent analysis is that, given any module M of a graph G, the internal structure of G[M ] has no more relevance after we computed a maximum matching F M for this subgraph. More precisely, we will use the following lemma:

Lemma 3 ( [13]). Let M be a module of G = (V, E), let G[M ] = (M, E M ) and let F M ⊆ E M be a maximum matching of G[M ]. Then, every maximum matching of G M = (V, (E \ E M ) ∪ F M ) is a maximum matching of G.
By Lemma 3 we can modify our algorithmic framework as follows. For every instance G , P, F for Module Matching, we can assume that

H i = (M i , F i ) for every 1 ≤ i ≤ p.
Data structures. Finally, let G , P, F be any instance for Module Matching. A canonical ordering of H i (w.r.t. F i ) is a total ordering over V (H i ) such that the exposed vertices appear first, and every two vertices that are matched together are consecutive. In what follows, we will assume that we have access to a canonical ordering for every i. Such orderings can be computed in time

O( i |M i | + |F i |)
by scanning all the modules and the matchings in F, that is an O(∆m) provided G is connected.

Furthermore, let F be a (not necessarily maximum) matching for the subdivision G = G (P). We will make the standard assumption that, for every v ∈ V (G), we can decide in constant-time whether v is matched by F , and if so, we can also access in constant-time to the vertex matched with v.

A pruned modular decomposition

In this section, we introduce a pruning process over the quotient subgraphs, that we use in order to refine the modular decomposition.

Definition 1. Let G = (V, E) be a graph. We call v ∈ V a one-vertex extension if it falls in one of the following cases:

• N G [v] = V (universal) or N G (v) = ∅ (isolated); • N G [v] = V \ u (anti-pendant) or N G (v) = {u} (pendant), for some u ∈ V \ v; • N G [v] = N G [u] (true twin) or N G (v) = N G (u) (false twin), for some u ∈ V \ v.
A pruned subgraph of G is obtained from G by sequentially removing one-vertex extensions (in the current subgraph) until it can no more be done. This terminology was introduced in [START_REF] Lanlignel | Pruning graphs with digital search trees. application to distance hereditary graphs[END_REF], where they only considered the removals of twin and pendant vertices. Also, the clique-width of graphs that are totally decomposed by the above pruning process (i.e., with their pruned subgraph being a singleton) was studied in [START_REF] Rao | Clique-width of graphs defined by one-vertex extensions[END_REF] 2 . Our contribution in this part is twofold. First, we show that the gotten subgraph is "almost" independent of the removal ordering, i.e., there is a unique pruned subgraph of G (up to isomorphism). The latter can be derived from the following (easy) lemma:

Lemma 4. Let G = (V, E) be a graph and let v, v ∈ V be one-vertex extensions of G. Suppose that v and v are not pairwise twins. Then, v is also a one-vertex extension of G \ v. Proof. We need to consider several cases. If v is either isolated or universal in G then it stays so in G \ v. If v is pendant in G then it is either pendant or isolated in G \ v. Similarly, if v is anti-pendant in G then it is either anti-pendant or universal in G \ v.
Otherwise, v has a twin u in G. By the hypothesis, u = v . Then, we have that u, v stay pairwise twins in G \ v .

Corollary 2. Every graph G = (V, E) has a unique pruned subgraph up to isomorphism.

Proof. Suppose for the sake of contradiction that G has two non-isomorphic pruned subgraphs. W.l.o.g., G is a minimum counter-example. In particular, for every one-vertex extension v of G, we have that G \ v has a unique pruned subgraph up to isomorphism. Therefore, there exist v, v ∈ V such that: v, v are one-vertex extensions of G, and the pruned subgraphs of G \ v and G \ v are non isomorphic. We claim that v is not a one-vertex extension of G \ v (resp., v is not a one-vertex extension of G \ v). Indeed, otherwise, both the pruned subgraphs of G \ v and of G \ v would be isomorphic to the pruned subgraphs of G \ {v, v }. By Lemma 4, it implies that v, v are pairwise twins in G. However, since G\v and G\v are isomorphic, so are their respective pruned subgraphs. A contradiction.

For most classes of graphs that we consider in this note, the pruned subgraph is trivial (reduced to a singleton) and can be computed in linear-time. For purpose of completeness, we observe in what follows that the same can be done for any graph (up to a logarithmic factor).

Proposition 1. For every G = (V, E), its pruned subgraph can be computed in O(n+m log n)-time.

Proof. By Corollary 2, we are left with greedily searching for, then eliminating, the one-vertex extensions. We can compute the ordered degree sequence of G in O(n + m)-time. Furthermore, after any vertex v is eliminated, we can update this sequence in O(|N (v)|)-time. Hence, up to a total update time in O(n + m), at any step we can detect and remove in constant-time any vertex that is either universal, isolated, pendant or anti-pendant. Finally, in [START_REF] Lanlignel | Pruning graphs with digital search trees. application to distance hereditary graphs[END_REF] they proposed a trie data-structure supporting the following two operations: suppression of a vertex; and detection of true or false twins (if any). The total time for all the operations on this data-structure is in O(n + m log n) [START_REF] Lanlignel | Pruning graphs with digital search trees. application to distance hereditary graphs[END_REF].

From now on, we will term "pruned modular decomposition" of a graph G the collection of the pruned subgraphs for all the quotient subgraphs in the modular decomposition of G. Note that there is a unique pruned modular decomposition of G (up to isomorphism) and that it can be computed in O(n + m log n)-time by Proposition 1 (applied to every quotient subgraph in the modular decomposition separately).

Remark 1. A careful reader could object that most cases of one-vertex extensions (universal, isolated, twin) imply the existence of non trivial modules. Therefore, such vertices should not exist in the prime quotient subgraphs of the modular decomposition. However, they may appear after removal of pendant or anti-pendant vertices (see Fig. 2).

Reduction rules

In this section, we consider any instance G , P, F of Module Matching. We suppose that v 1 , the vertex corresponding to M 1 in G is a one-vertex extension Under this assumption, we present reduction rules to a smaller instance G * , P * , F * where |P * | < |P|. Some of the rules we propose next were first introduced in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF], namely for universal and isolated modules (explicitly) and for false or true twin modules (implicitly). We state these above rules in Section 4.1 for completeness of the paper. Our main technical contributions are the reduction rules for pendant and anti-pendant modules (presented in Sections 4.2 and 4.3, respectively), which are surprisingly the most intricate. Finally, we end this section stating our main result (Theorem 4).

Simple cases

We start with two cases that can be readily solved, namely:

Reduction rule 1 (see also [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF]). Suppose

v 1 is isolated in G . We set G * = G \ v 1 , P * = P \ {H 1 }, and F * = F \ {F 1 }.
Indeed, note that in this above case a maximum matching of G is the union of F 1 with any maximum matching of the subdivision G * (H * ).

Reduction rule 2. Suppose v 1 , v 2 are false twins in G . We set G * = G \ v 1 , P * = {H 1 ∪ H 2 } ∪ (P \ {H 1 , H 2 }), F * = {F 1 ∪ F 2 } ∪ (F \ {F 1 , F 2 }).
Indeed, note that in this above case, M 1 ∪ M 2 is a module of G. Furthermore, since there is no edge between M 1 and M 2 we have that

F 1 ∪ F 2 is a maximum matching of G[M 1 ∪ M 2 ] = H 1 ∪ H 2 .
Hence, the above reduction rule is correct.

Then, before we state the two other reduction rules in this section, we need to introduce the following two local operations on a matching (they will be used for all the remaining reduction rules). To our best knowledge, these two following operations were first introduced in [START_REF] Yu | An O(n)-time algorithm for maximum matching on cographs[END_REF] for the computation of maximum matchings in cographs. We give a sligthly generalized presentation of these rules. In what follows, let F ⊆ E be a matching and let M ⊆ V be a module.

Operation 1 (MATCH(M, F )). While there are x ∈ M, y ∈ N (M ) exposed, we add {x, y} to F .

Operation 2 (SPLIT(M, F )). While there exist x, x ∈ M, y, y ∈ N (M ) such that x and x are exposed, and {y, y } ∈ F , we replace the edge {y, y } in F by the two new edges {x, y}, {x , y }.

We stress that the MATCH and SPLIT operations correspond to special cases of F -augmenting paths, of respective lengthes 1 and 3. Given F and M , the "MATCH and SPLIT" technique consists in applying MATCH(M, F ), which results in a new matching F , then applying SPLIT(M, F ). We refer to [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF][START_REF] Fouquet | An O(n)-time algorithm for maximum matching in P 4 -tidy graphs[END_REF][START_REF] Fouquet | Bipartite graphs totally decomposable by canonical decomposition[END_REF][START_REF] Yu | An O(n)-time algorithm for maximum matching on cographs[END_REF] for applications of this technique to some graph classes. In particular, we will use the following lemma for our analysis:

Lemma 5 ( [13]). Let G = G 1 ⊕ G 2 be the join of two graphs G 1 , G 2 and let F 1 , F 2 be maximum matchings for G 1 , G 2 , respectively. For F = F 1 ∪F 2 ,
applying the "MATCH and SPLIT" technique to V (G 1 ), then to V (G 2 ) leads to a maximum matching of G.

Based on the above lemma, we can readily solve two more cases, namely: Reduction rule 3. [see also [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF]] Suppose v 1 is universal in G .

We set

G * = G \ v 1 , P * = P \ {H 1 }, F * = F \ {F 1 }.
Furthermore, let F * be a maximum matching of the subdivision

G * (P * ) = G[V \ M 1 ]. We apply Lemma 5 to G = G[M 1 ] ⊕ G[V \ M 1 ] with F 1 , F * in order to compute a maximum-cardinality matching of G.
Observe that this above rule is similar to Reduction rule 1, however it requires an additional post-processing step.

Reduction rule 4. Suppose v 1 , v 2 are true twins in G . Let F * 2 be the matching of G[M 1 ∪ M 2 ] = H 1 ⊕ H 2 that is obtained from F 1 , F 2 by applying Lemma 5.
We set

G * = G \ v 1 , P * = {H 1 ⊕ H 2 } ∪ (P \ {H 1 , H 2 }), F * = {F * 2 } ∪ (F \ {F 1 , F 2 }).
Complexity analysis. Reduction rules 1 and 2 take constant-time. The complexity of Reduction rules 3 and 4 is dominated by the Match and Split operations. Furthermore, every such operation adds, in constant-time, one or two edges in the matching with exactly one end in M 1 . It implies that there cannot be more than O(n 1 ) operations. Observe that ∆m G -∆m G * ≥ n 1 n 2 = Ω(n 1 ). As a result, Reduction rules 3 and 4 take O(∆m G -∆m G * )-time.

Anti-pendant

Suppose v 1 is anti-pendant in G . W.l.o.g., v 2 is the unique vertex that is nonadjacent to v 1 in G . By Lemma 3, we can also assume w.l.o.g. that E(H i ) = F i for every i. In this situation, we start applying Reduction rule 1, i.e., we set

G * = G \ v 1 , P * = P \ {H 1 }, F * = F \ {F 1 }.
Then, we obtain a maximum-cardinality matching F * of G \ M 1 (i.e., by applying our reduction rules to this new instance). Finally, we compute from F 1 , F * a maximum-cardinality matching of G, using an intricate procedure. We detail this procedure next.

First phase: Pre-processing. Our correctness proofs in what follows will assume that some additional properties hold on the matched vertices in F * . So, we start correcting the initial matching F * so that it is the case. For that, we introduce two "swapping" operations. Recall that v 2 is the unique vertex that is nonadjacent to v 1 in G .

Operation 3 (REPAIR). While there exist x 2 , y 2 ∈ M 2 such that {x 2 , y 2 } ∈ F 2 and y 2 is exposed in F * , we replace any edge {x 2 , w} ∈ F * by {x 2 , y 2 }.

This above operation ensures that all the vertices matched by F 2 are also matched by F * . In particular, for every {x 2 , y 2 } ∈ F 2 we have either {x 2 , y 2 } ∈ F 2 or (since we assume E(H 2 ) = F 2 ) there exist w, w / ∈ M 2 such that {x 2 , w}, {y 2 , w } ∈ F * . We stress that this above operation does not modify the cardinality of the matching.

Operation 4 (ATTRACT). While there exist x 2 ∈ M 2 exposed and {u, w}

∈ F * such that u ∈ N G (M 2 ), w / ∈ M 2 , we replace {u, w} by {u, x 2 }.
Said otherwise, we give a higher priority on the vertices in M 2 to be matched. Again, we stress that this above operation does not modify the cardinality of the matching. Furthermore, Operations 3 and 4 are non conflicting since for Attract we only consider exposed vertices in M 2 (i.e., not in V (F 2 )) and matched edges with their both ends in

N G (M 1 ) = V \ M 2 .
Let F (0) = F 1 ∪ F * . Summarizing, we get: Definition 2. A matching F of G is good if it satisfies the following two properties:

1. every vertex matched by F 1 ∪ F 2 is also matched by F ; 2. either every vertex in M 2 is matched, or there is no matched edge in

N G (M 2 ) × N G (M 1 ). Fact 1. F (0) is a good matching of G.
Main phase: a modified Match and Split. We now apply the following three operations sequentially:

1. Match(M 1 , F (0) ) (Operation 1). Doing so, we obtain a larger matching F (1) . Fact 2. F (1) is a good matching of G.

Proof. We still have V (F 1 ∪ F 2 ) ⊆ V (F (1) ) since we only increase the matching by using augmenting paths. Furthermore, we do not create any new exposed vertex in M 2 , nor any new matched edge in N G (M 2 ) × N G (M 1 ), and so, the second property also stays true.

2. Split(M 1 , F (1) ) (Operation 2). Doing so, we obtain a larger matching F (2) . Fact 3. F (2) is a good matching of G. Operation 5 (Unbreak). While there exist x 1 ∈ M 1 and x 2 ∈ M 1 ∪ M 2 exposed, and there also exist {y 2 , z 2 } ∈ F 2 \ F (2) , we replace any two edges {y 2 , u}, {z 2 , w} ∈ F (2) by the three edges {x 2 , u}, {y 2 , z 2 } and {w, x 1 }.

the operation

We stress that the two edges {y 2 , u}, {z 2 , w} ∈ F (2) always exist since F (2) is a good matching of G. Furthermore doing so, we obtain a larger matching F (3) .

The resulting matching F (3) is not necessarily maximum. However, this matching satisfies the following crucial property: Lemma 6. No vertex of M 1 can be an end in an F (3) -augmenting path.

Proof. Let x 1 ∈ M 1 be exposed. Suppose by contradiction x 1 is an end of some F (3) -augmenting path P = (x 1 = u 1 , u 2 , . . . , u 2 ). W.l.o.g., P is of minimum length. We will derive a contradiction from the following invariants: Claim 1. The following properties hold for every 0 ≤ j ≤ 3:

1. F (j) is a good matching of G; 2. If u 2i , u 2i+1 ∈ N G (M 1 ) and {u 2i , u 2i+1 } ∈ F (3) then we also have {u 2i , u 2i+1 } ∈ F (j) ; 3. F 1 ⊆ F (j) .
Proof. The proof readily follows from the same arguments as for Fact 2. Since we only increase the successive matchings using augmenting paths, we keep the property that

V (F 1 ∪ F 2 ) ⊆ V (F (j) ).
In fact, since we only consider the exposed vertices in M 1 for our operations, we have the stronger Property 3 that F 1 ⊆ F (j) . Furthermore, our successive operations do not create any new exposed vertex in M 2 nor any new matched edge in N G (M 1 ) × N G (M 1 ), and so, both Properties 1 and 2 also hold.

In what follows, we divide the proof in three claims.

Claim 2. u 2 ∈ M 1 ∪ M 2 .
Proof. Suppose for the sake of contradiction u 2 / ∈ M 1 ∪ M 2 , or equivalently u 2 ∈ N (M 1 ). Then, we could have continued the first step Match(M 1 , F (0) ) by matching x 1 , u 2 together, that is a contradiction.

Next, we derive a contradiction by proving

u 2 / ∈ M 1 ∪ M 2 . Claim 3. u 2 / ∈ M 1 .
Proof. Suppose for the sake of contradiction u 2 ∈ M 1 . There are two cases.

1. Case u 2 , u 3 ∈ N (M 1 ). Since {u 2 , u 3 } ∈ F (3) we have by Claim 1 {u 2 , u 3 } ∈ F (1) . In particular, we could have replaced {u 2 , u 3 } by {u 2 , x 1 }, {u 3 , u 2 } during the second step of the main phase (i.e., Split(M 1 , F (1) )), that is a contradiction.

2. Thus, let us now assume u 2 ∈ N (M 1 ) (necessarily) but u 3 / ∈ N (M 1 ). By minimality of P , we have u 4 /

∈ N (M 1 ) (otherwise, P = (x 1 , u 4 , u 5 , . . . , u 2 ) would be a shorter augmenting path than P ). We claim that it implies u 3 / ∈ M 1 . Indeed, otherwise we should also have u 4 ∈ M 1 , and so, {u 3 , u 4 } ∈ F 1 since we assume that M 1 induces a matching. However, {u 3 , u 4 } / ∈ F (3) , whereas we have by Claim 1 that F 1 ⊆ F (3) . A contradiction. Therefore, as claimed, u 3 / ∈ M 1 . We deduce from the above that u 3 ∈ M 2 . Similarly, since u 4 / ∈ N (M 1 ) ⊇ N (M 2 ) we get u 4 ∈ M 2 . Altogether combined (and since M 2 induces a matching), {u 3 , u 4 } ∈ F 2 \ F (3) . Then, we could have continued the step Unbreak with x 1 ∈ M 1 and u 2 ∈ M 1 exposed, and

{u 3 , u 4 } ∈ F 2 \ F (3) , that is a contradiction. As a result, u 2 / ∈ M 1 . Claim 4. u 2 / ∈ M 2 .
Proof. Suppose for the sake of contradiction u 2 ∈ M 2 . First we prove u 2 , u 3 ∈ N (M 1 ). Indeed, since u 1 is exposed and F 1 ⊆ F (3) by Claim 1 we have that u 2 ∈ N (M 1 ). Furthermore, if u 3 / ∈ N (M 1 ) then we could prove as before (Claim 3, Case 2) {u 3 , u 4 } ∈ F 2 \ F (3) ; it implies that we could have continued the step Unbreak with x 1 ∈ M 1 and u 2 ∈ M 2 exposed, and {u 3 , u 4 } ∈ F 2 \ F (3) , that is a contradiction. Therefore, as claimed, u 2 , u 3 ∈ N (M 1 ). Now, consider the edge {u 2 -2 , u 2 -1 } ∈ F (3) . Since u 2 ∈ M 2 is exposed and by Claim 1 we have

V (F 2 ) ⊆ V (F (3) ), u 2 / ∈ V (F 2 ). Furthermore, since E(H 2 ) = F 2 we have u 2 -1 / ∈ M 2 .
There are two cases.

1. Suppose u 2 -2 ∈ M 1 . Since u 2 -2 is matched to u 2 -1 / ∈ M 1 and F 1 ⊆ F (3) by Claim 1, we have that u 2 -2 / ∈ V (F 1 )
. Furthermore, we claim that the edge {u 2 -2 , u 2 -1 } was added to the matching during the second step of the main phase (i.e., Split(M 1 , F (1) )).

In order to prove this subclaim, we only need to decide the first step where u 2 -2 was matched to any vertex; indeed, our above operations can only consider vertices in M 1 that are exposed. We observe that u 2 -2 , u 2 -1 could not possibly be matched together during the first step since otherwise, we could have also matched u 2 -1 with u 2 , thereby contradicting that F * is a maximum-cardinality matching of G \ M 1 . In addition, recall that we proved above u 2 , u 3 ∈ N (M 1 ). It implies that u 2 -2 , u 2 -1 were matched together during the second step since, otherwise, this second step could have continued with x 1 , u 2 -2 ∈ M 1 exposed and {u 2 , u 3 } ∈ F (1) . Therefore, this claim is proved.

Then, before the second step of the main phase happened, vertex u 2 -1 was matched to some other vertex in N G (M 1 ). However, since u 2 -1 ∈ N G (M 2 ) and u 2 ∈ M 2 is exposed the latter contradicts that F (1) is good, and so, Claim 1.

Thus from now on assume u 2 -2 /

∈ M 1 . By Claim 1 we have that F (3) is good, and so, since

u 2 -1 ∈ N G (M 2 ) and u 2 ∈ M 2 is exposed we have u 2 -2 ∈ M 2 . Furthermore, u 2 -3 /
∈ M 2 since, otherwise, the final step of the main phase (Unbreak) could have continued with x 1 ∈ M 1 and u 2 ∈ M 2 exposed, and {u 2 -3 , u 2 -2 } ∈ F 2 \ F (3) , that is a contradiction. However, it implies that P = (x 1 = u 1 , u 2 , u 3 , . . . , u 2 -3 , u 2 ) is a shorter augmenting path than P , thereby leading to another contradiction.

As a result, u 2 / ∈ M 2 .

Overall since u 2 ∈ M 1 ∪ M 2 by Claim 2 but u 2 / ∈ M 1 ∪ M 2 by Claims 3 and 4, the above proves that x 1 cannot be an end in any F (3) -augmenting path.

Finalization phase: breaking some edges in F 1 . Intuitively, the matching F (3) may not be maximum because we sometimes need to borrow some edges of F 1 in augmenting paths. So, we complete our procedure by performing the following two operations:

• Let U 1 = N (M 1 ) \ V (F (3) ), i.e., U 1 contains all the exposed vertices in N (M 1 ). Consider the subgraph G[M 1 ∪ U 1 ] = G[M 1 ] ⊕ G[U 1 ]. The set U 1 is a module of this subgraph. We apply Split(U 1 , F (3) ) in G[M 1 ∪ U 1 ]
. Doing so, we obtain a larger matching F (4) .

Fact 4. F (4) is a good matching of G.

• Then, we apply the operation LocalAug, defined next (see also Fig. 4 for an illustration): Operation 6 (LocalAug). While there exist x 2 ∈ M 2 and c ∈ N (M 1 ) exposed, and there also exist {x 1 , y 1 } ∈ F (4) and {y 2 , z 2 } ∈ F 2 \ F (4) , we do the following:

M M N(M )
we remove {x 1 , y 1 } and any edge {a, y 2 }, {b, z 2 } from F (4) ; we add {x 2 , a}, {y 2 , z 2 }, {b, x 1 } and {y 1 , c} in F (4) .

We stress that the two edges {y 2 , a}, {z 2 , b} ∈ F (4) always exist since F (4) is a good matching of G. Furthermore doing so, we obtain a larger matching F (5) .

Lemma 7. F (5) is a maximum-cardinality matching of G.

Proof. Suppose for the sake of contradiction that there exists an F (5) -augmenting path P = (u 1 , u 2 , . . . , u 2 ). W.l.o.g., P is of minimum size. We divide the proof into the following claims.

Fact 5. F (5) is a good matching of G.

Claim 5. u 1 , u 2 / ∈ M 1
Proof. Suppose for the sake of contradiction u 1 ∈ M 1 (the case u 2 ∈ M 1 is symmetrical to this one). Since F (3) and F (5) ⊕P are matchings, the symmetric difference F (3) ⊕(F (5) ⊕P ) is a disjoint union of alternating cycles, alternating paths and isolated vertices. In particular, since F (5) ⊕ P can be obtained from F (3) by using augmenting paths, the symmetric difference F (3) ⊕(F (5) ⊕P ) is exactly a disjoint union of isolated vertices and of augmenting paths that can be used for obtaining F (5) ⊕P from F (3) . One of these paths must contain u 1 . As a result, there is also an F (3) -augmenting path with an end in M 1 , thereby contradicting Lemma 6. The latter proves, as claimed,

u 1 , u 2 / ∈ M 1 .
Claim 6. There is no exposed vertex in N (M 1 ).

Proof. Suppose for the sake of contradiction N (M 1 ) ⊆ V (F (5) ). In particular N (M 1 ) ⊆ V (F (4) ).

We will prove in this situation there can be only one vertex in N (M 1 ) that is left exposed by F (4) . Then, we will derive a contradiction by proving that we can apply the LocalAug operation. First, we observe that the main phase of our procedure must terminate after its very first step Match(M 1 , F (0) ). Indeed, after this step there can be no more exposed vertex in M 1 , and so, the other rules cannot apply. Then, we apply the operation Split(U 1 , F (3) ) in G[M 1 ∪ U 1 ] in order to further match some vertices in N (M 1 ) to the vertices in M 1 . Doing so, we get the following two important properties for F (4) :

1. if a vertex of N (M 1 ) is matched to a vertex of M 1 , then this vertex was left exposed by F * ; 2. F * ⊆ F (4) .

Let Q = (w 1 , w 2 , . . . , w 2q ) be a minimum-length F (4) -augmenting path. Such path exist since F (5) , and so, F (4) , is not maximum. Let i 0 be the minimum index i such that w i ∈ M 1 . The latter is well-defined since otherwise, by the above Property 2 Q would be an F * -augmenting path in G \ M 1 , thereby contradicting the maximality of F * . Furthermore, w 1 , w 2q / ∈ M 1 , and so, i 0 > 1 (the proof is the same as for Claim 5). More generally, we have that i 0 is even since, if it were not the case, by the above Property 1 we would have that (w 1 , w 2 , . . . , w i 0 -1 ) is an F * -augmenting path in G \ M 1 , thereby again contradicting the maximality of F * . There are two cases:

1. Case there exists an edge {x 1 , y 1 } ∈ F 1 ∩ F (4) . Then, there is exactly one exposed vertex

c ∈ N G (M 1 ) (otherwise, the step Split(U 1 , F (3) ) in G[M 1 ∪ U 1 ] could have been continued). W.l.o.g., w 1 = c. Since w 1 / ∈ M 1 , it implies w 1 ∈ M 2 .
We consider the alternating subpath (w 1 , w 2 , w 3 ) in Q. Since w 2 / ∈ M 1 and i 0 is even, we have w 3 / ∈ M 1 by minimality of i 0 . Furthermore, since w 1 ∈ M 2 is exposed, w 2 ∈ N (M 2 ) is matched to w 3 and F (4) is good by Fact 4, w 3 / ∈ N (M 1 ). Altogether combined, w 3 ∈ M 2 . We also have w 4 ∈ M 2 since otherwise, Q = (w 1 , w 4 , w 5 , . . . , w 2q ) would be a shorter augmenting path than Q, thereby contradicting the minimality of Q. As a result, {w 3 , w 4 } ∈ F 2 \ F (4) . However, in this case the step LocalAug will be applied, e.g. with w 1 ∈ M 2 and c ∈ N (M 1 ) exposed, {x 1 , y 1 } ∈ F 1 ∩ F (4) and {w 3 , w 4 } ∈ F 2 \ F (4) . In particular, c is matched by F (5) , that is a contradiction.

2.

Case F 1 ∩ F (4) = ∅. In particular, w i 0 +1 / ∈ M 1 . Let j 0 be the maximum j ≥ i 0 + 1 such that w i 0 +1 , w i 0 +2 , . . . , w j / ∈ M 1 . We have j 0 < 2q since otherwise, by the above Property 1 (w i 0 +1 , . . . , w 2q ) would be an F * -augmenting path in G \ M 1 , thereby contradicting the maximality of F * . Thus, w j 0 +1 ∈ M 1 . Furthermore, j 0 is even since otherwise, Q = (w 1 , . . . , w i 0 -1 , w j 0 +1 , . . . , w 2q ) would be a shorter F (4) -augmenting path than Q, thereby contradicting the minimality of Q. However, then we have by the above Property 1 (w i 0 +1 , . . . , w j 0 ) that is an F * -augmenting path in G \ M 1 , thereby contradicting the maximality of F * . Overall, the above proves as claimed that there is no exposed vertex in N (M 1 ).

It follows from Claims 5 and 6 that u 1 , u 2 ∈ M 2 . Furthermore we have u 1 ∈ M 2 is exposed, {u 2 , u 3 } is matched and u 2 ∈ N G (M 2 ). Since F (5) is good by Fact 5 we have

u 3 / ∈ N (M 1 ). Equivalently, u 3 ∈ M 1 ∪ M 2 .
The following claim will be instrumental in deriving a contradiction. Claim 7. F 2 ⊆ F (5) .

Proof. Suppose for the sake of contradiction there exists {x 2 , y 2 } ∈ F 2 \ F (5) . We prove that F 2 \ F (5) ⊆ F 2 \ F * . Indeed, after the two first steps of the main phase we have

F 2 \ F (2) = F 2 \ F * .
The operation Unbreak adds edges of F 2 into the matching, hence

F 2 \ F (3) ⊆ F 2 \ F * . Then, after the operation Split(U 1 , F (3) ) in G[M 1 ∪ U 1 ] we have F 2 \ F (4) = F 2 \ F (3) ⊆ F 2 \ F * . Finally, the operation LocalAug adds edges of F 2 into the matching, hence F 2 \ F (5) ⊆ F 2 \ F * .
However, since F (0) is good, we have V (F 2 ) ⊆ V (F * ). It implies there exist w, w ∈ N (M 2 ) such that {x 2 , w}, {y 2 , w } ∈ F * . In particular we have that (u 1 , w, x 2 , y 2 , w , u 2 ) is an F * -augmenting path in G \ M 1 , thereby contradicting the maximality of F * . Now, there are two cases.

• Case u 3 ∈ M 2 . We have u 4 / ∈ N (M 2 ) since otherwise, P = (u 1 , u 4 , u 5 , . . . , u 2 ) would be a shorter augmenting path than P , thereby contradicting the minimality of P . Therefore, {u 3 , u 4 } ∈ F 2 \ F (5) . The latter contradicts Claim 7.

• Case u 3 ∈ M 1 . By maximality of F * , u 2 was matched in F * (otherwise, we could have added {u 1 , u 2 } in F * ). Therefore, the edge {u 2 , u 3 } was not matched during the operation Match(M 1 , F (0) ) nor during the operation Split(U 1 , F (3) ) in G[M 1 ∪ U 1 ]. Furthermore, this edge was not matched during the operation Split(M 1 , F (1) ) either since otherwise, u 2 would have been matched in F (1) with some other vertex in N (M 1 ); since u 1 ∈ M 2 is exposed and u 2 ∈ N (M 2 ), the latter would contradict that F (1) is good (Fact 2). As a result, the edge {u 2 , u 3 } was matched during the Unbreak operation or the LocalAug operation. Both subcases imply the existence of some edge {x 2 , y 2 } ∈ F 2 \ F * . As in the previous case, the latter contradicts the maximality of F * .

Complexity analysis. Each step of our procedure is corresponding to a while loop. In order to execute any loop in constant-time we need constant-time access to the following objects:

• exposed vertices in M 1 , M 2 or N (M 1 )
. Recall that we have access to a canonical ordering for every module (i.e., see Section 2). Hence, constant-time access to the exposed vertices can be ensured up to O(p)-time preprocessing, where p = |V (G )|.

• matched edges with at least one end in N (M 1 ). We assume that for every matched vertex u, we can output in constant-time the unique edge of the matching that contains u. Thus, constant-time access to these matched edges can be ensured up to O(|N G (M 1 )|)-time.

We also need constant-time access to the subset of these matched edges that have their other end: also in N G (M 1 ); in N G (M 2 ); or in V (F 2 ). This takes additional O(|N G (M 1 )|)-time preprocessing.

• matched edges in F 1 . For that, it suffices to scan the canonical ordering of M 1 , that takes O(n 1 )-time.

• finally, unmatched edges in F 2 . For that, we enumerate the matched edges with their ends in N G (M 2 ) and M 2 . Doing so, since E(H 2 ) = F 2 , we can enumerate for every such end in M 2 the unique unmatched edge in F 2 to which it is incident.

Altogether combined, after a pre-processing in time

O(|N G [M 1 ]|), any loop of the procedure can be executed in constant-time. Note that O(|N G [M 1 ]|) = O(δ 1 ) = O(∆m(G ) -∆m(G * )).
We observe that after any loop, a new edge is added to the matching with exactly one end in M 1 . Furthermore, this edge is never removed from the matching at an ulterior step. Hence, the total number of loops is an

O(|N G [M 1 ]|). Overall, the total running-time of the procedure is in O(|N G [M 1 ]|), that is in O(∆m(G ) -∆m(G * )).

Pendant

Suppose v 1 is pendant in G . W.l.o.g., v 2 is the unique vertex that is adjacent to v 1 in G . This last case is arguably more complex than the others since it requires both a pre-processing and a post-processing treatment on the matching.

We note that a particular subcase was solved in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF], namely, when M 2 is a trivial module. However, our techniques for the general case are quite different than the techniques in [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF].

First phase: greedy matching. We apply the Match & Split technique to M 1 . Doing so, we obtain a set F 1,2 of matched edges between M 1 and M 2 . We remove V (F 1,2 ), the set of vertices incident to an end of F 1,2 , from G. Then, two situations can occur. In the first situation, this initial pre-treatment suffices in order to prune M 1 (pathological cases). Otherwise, at most one exposed vertex remains in M 1 ; we arbitrarily break an edge of F 2 to match such vertex. More precisely, there are three cases.

• If M 2 ⊆ V (F 1,2 ) then M 1 \V (F 1,2
) is now an isolated module. We can apply Reduction rule 1.

• If M 1 ⊆ V (F 1,2 ) then M 1 is already eliminated. Let F * 2 contain the edges of F 2 that are not incident to a vertex of M 2 ∩ V (F 1,2 ). We set G * = G \ v 1 , P * = {H 2 \ V (F 1,2 )} ∪ (P \ {H 1 , H 2 }), F * = {F * 2 } ∪ (F \ {F 1 , F 2 }).
• The interesting case is when both M 1 \ V (F 1,2 ) and M 2 \ V (F 1,2 ) are nonempty. In particular, suppose there remains an exposed vertex

x 1 ∈ M 1 \ V (F 1,2 ). Since M 2 \ V (F 1,2 ) = ∅, there exists {x 2 , y 2 } ∈ F 2 such that x 2 , y 2 / ∈ V (F 1,2 ). We remove x 1 from M 1 , x 2 from M 2 , {x 2 , y 2 } from F 2 and then we add {x 1 , x 2 } in F 1,2 .
3. Finally, we complete F with all the edges of F 1 that do not label any virtual edge (i.e., unused during the second phase).

Lemma 9. F is a maximum-cardinality matching of G.

Proof. Suppose for the sake of contradiction that F is not maximum. Let P = (u 1 , u 2 , . . . , u 2 ) be a shortest F -augmenting path. In order to derive a contradiction, we will transform P into an F * -augmenting path in G * (P * ). For that, we essentially need to avoid passing by M 1 , using instead the virtual edges. In the first part of the proof, we show that P intersects M 1 in at most one edge (Claim 11). We need a few preparatory claims in order to prove this result. First we observe that the two ends of P cannot be in M 1 :

Claim 8. M 1 ⊆ V (F ). In particular, u 1 , u 2 / ∈ M 1 .
Proof. According to Property 1, all vertices in M 1 are matched by F 1 . Our procedure during the third phase ensures that V (F 1 ) ⊆ V (F ), and so, M 1 ⊆ V (F ).

Then, we prove that for every {x 1 , y 1 } ∈ F we have either x 1 , y 1 / ∈ V (P ) or {x 1 , y 1 } ∈ E(P ). This result follows from the combination of Claims 9 and 10.

Claim 9. Let {x 1 , y 1 } ∈ F . Either x 1 , y 1 ∈ V (P ) or x 1 , y 1 / ∈ V (P ).
Proof. Suppose for the sake of contradiction x 1 ∈ V (P ) but y 1 / ∈ V (P ). Up to reverting the path P we have x 1 = u 2i+1 for some i. Then, since we have y 1 / ∈ V (P ) and M 1 induces a matching,

u 2i+2 / ∈ M 1 . It implies u 2i+2 ∈ M 2 .
Furthermore, our construction ensures that u 2i (the vertex matched with x 1 ) was left exposed by F 2 . Indeed, u 2i must be an end of a virtual edge (cf. Second phase). Since

E(H 2 ) = F 2 it implies u 2i-1 / ∈ M 2 . Finally, since u 2i-1 ∈ N G (M 2
) and M 2 is a module, P = (u 1 , u 2 , . . . , u 2i-1 , u 2i+2 , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P . Claim 10. Let u i , u j ∈ V (P ) ∩ M 1 , j > i, such that {u i , u j } ∈ F 1 . Then, j = i + 1.

Proof. The result trivially holds if {u i , u j } ∈ F . Thus, we assume from now on {u i , u j } / ∈ F . We need to consider the following cases:

• Case i odd, j even. Since P = (u 1 , u 2 , . . . , u i-1 , u i , u j , u j+1 , . . . , u 2 ) is also an augmenting path, we get j = i + 1 by minimality of P .

• Case i odd, j odd. Note that u j+1 / ∈ M 1 since we assume {u i , u j } ∈ F 1 and M 1 induces a matching. Then, since u j+1 ∈ N G (M 1 ) and M 1 is a module we have that P = (u 1 , u 2 , . . . , u i-1 , u i , u j+1 , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P .

• Case i even, j even. Note that u i-1 / ∈ M 1 since we assume {u i , u j } ∈ F 1 and M 1 induces a matching. Then, since u i-1 ∈ N G (M 1 ) and M 1 is a module we have that P = (u 1 , u 2 , . . . , u i-1 , u j , u j+1 , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P .

• Case i even, j odd. As before, we have u i-1 , u j+1 / ∈ M 1 , that implies u i-1 , u j+1 ∈ M 2 . We observe that {u i+1 , u j-1 } is a virtual edge labeled by {u i , u j }. In particular, u i+1 , u j-1 are isolated in M 2 , and so, u i+2 , u j-1 / ∈ M 2 . It implies, since u i+2 , u j-1 ∈ N G (M 2 ) and M 2 is a module, P = (u 1 , u 2 , . . . , u i-1 , u i+2 , . . . , u j-1 , u j+1 , . . . , u 2 ) is shorter augmenting path than P , thereby contradicting the minimality of P .

Overall the first case implies, as claimed, j = i + 1, whereas all other cases lead to a contradiction. Therefore, j = i + 1.

Finally, our last preparatory claim is that P can cross the module M 1 in at most one edge.

Claim 11. |E(P ) ∩ F 1 | ≤ 1.
Proof. Suppose by contradiction there exist {u i , u i+1 }, {u j , u j+1 } ∈ F 1 ∩ E(P ), for some i < j. Since M 1 induces a matching, u i-1 , u j-1 / ∈ M 1 . There are three cases.

• Case i, j even. Then, P = (u 1 , . . . , u i-1 , u j , u j+1 , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P .

• Case i, j odd. Then, P = (u 1 , . . . , u i , u j-1 , u j , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P .

• Case i even, j odd (Case i odd, j even is symmetrical to this one). Then, P = (u 1 , . . . , u i-1 , u j+1 , . . . , u 2 ) is a shorter augmenting path than P , thereby contradicting the minimality of P .

We note that in order to prove this result, we did not use the fact that M 1 is pendant.

Let {u i 0 , u i 0 +1 } be the unique edge in E(P )∩F 1 . Such edge must exist since otherwise, P would also be an F * -augmenting path. In order to derive a contradiction, we are left to replace {u i 0 , u i 0 +1 } with a virtual edge. We prove next that it can be easily done if i 0 is odd, i.e., {u i 0 , u i 0 +1 } / ∈ F . Indeed, in such case we observe that {u i 0 -1 , u i 0 +2 } is the virtual edge that is labeled by {u i 0 , u i 0 +1 }. Furthermore, {u i 0 -1 , u i 0 +2 } ∈ F * since we confirmed the Split. Therefore, we will assume from now on that i 0 is even, i.e., {u i 0 , u i 0 +1 } ∈ F .

We will need the following observation:

Claim 12. The vertices u i 0 -1 , u i 0 +2 are the only vertices in M 2 ∩ V (P ).

Proof. Suppose for the sake of contradiction this is not the case. By symmetry, we can assume the existence of an index j < i 0 -1 such that u j ∈ M 2 . Furthermore, j is even since otherwise, P = (u 1 , . . . , u j , u i 0 , u i 0 +1 , . . . , u 2 ) would be a shorter augmenting path than P , thereby contradicting the minimality of P . For the same reason as above, we also have u j+1 / ∈ M 2 . However, since u j+1 ∈ N G (M 2 ) and M 2 is a module, it implies that P = (u 1 , . . . , u j , u j+1 , u i 0 +2 , . . . , u 2 ) would be a shorter augmenting path than P , thereby contradicting the minimality of P .

There are three cases.

Case u

i 0 -1 , u i 0 +2 / ∈ V (F * 2 ) (left unmatched by F * 2 )
. There exists a virtual edge {x 2 , y 2 } that is labeled by {u i 0 , u i 0 +1 } (otherwise, the second phase could have continued with u i 0 -1 , u i 0 +2 and {u i 0 , u i 0 +1 }). The two of x 2 , y 2 cannot be matched together in F * since we have {u i 0 , u i 0 +1 } ∈ F . Nevertheless, since x 2 , y 2 are adjacent in the subdivision G * (P * ), at least one of the two vertices, say x 2 , is matched by F * . There are two subcases.

(a) Subcase y 2 is exposed. Let {w, x 2 } ∈ F * . Since w = x 2 we have w / ∈ M 2 . Then, P * = (u 1 , u 2 , . . . , u i 0 -1 , w, x 2 , y 2 ) is an F * -augmenting path, thereby contradicting the maximality of F * . (b) Subcase y 2 is matched. Let {w, x 2 }, {w , y 2 } ∈ F * . As before, w, w / ∈ M 2 . Then, P * = (u 1 , u 2 , . . . , u i 0 -1 , w, x 2 , y 2 , w , u i 0 +2 , . . . , u 2 ) is an F * -augmenting path, thereby contradicting the maximality of F * .

Case {u

i 0 -1 , u i 0 +2 } ∈ F * 2 .
We have {u i 0 -1 , u i 0 +2 } / ∈ F * . Hence, we have that P * = (u 1 , u 2 , . . . , u i 0 -1 , u i 0 +2 , . . . , u 2 ) is an F * -augmenting path, thereby contradicting the maximality of F * .

Case {u

i 0 -1 , w} ∈ F *
2 for some w = u i 0 +2 . There are two subcases. (a) Subcase w is exposed. Then, P * = (u 1 , u 2 , . . . , u i 0 -1 , w) is an F * -augmenting path, thereby contradicting the maximality of F * . (b) Subcase w is matched. Let {w, w } ∈ F * . As before, w / ∈ M 2 . Then, P * = (u 1 , u 2 , . . . , u i 0 -1 , w, w , u i 0 +2 , . . . , u 2 ) is an F * -augmenting path, thereby contradicting the maximality of F * . Summarizing, by the contrapositive we get F * maximum for G * (P * ) =⇒ F maximum for G.

Complexity. The complexity of this reduction rule is essentially dominated by Match and Split operations. Therefore, the total running time is an O(δ 1 ), that is in O(∆m(G ) -∆m(G * )).

Main result

Our framework consists in applying any reduction rule presented in this section until it can no more be done. Then, we rely on the following result: Theorem 3 ( [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF]). For every G , P, F , we can solve Module Matching in O(∆µ • p 4 )-time.

We are now ready to state our main result in this paper.

Theorem 4. Let G = (V, E) be a graph. Suppose that, for every prime subgraph H in the modular decomposition of G, its pruned subgraph has order at most k. Then, we can solve Maximum Matching for G in O(k 4 • n + m log n)-time.

Proof. By Lemma 2, it suffices to solve Module Matching for any H , P, F , with H in the modular decomposition of G, in time O(p + ∆m • log p + k 4 • ∆µ). For that, we start computing the pruned subgraph H pr of H, and a corresponding pruning sequence. By Proposition 1, it can be done in O(p + ∆m • log p)-time. Then, we follow the pruning sequence and at each step, we apply the reduction rule that corresponds to the current one-vertex extension. Doing so, we pass by various intermediate instances H j , P j , F j . For any rule we apply, the pre-processing time for passing from H j , P j , F j to the next instance H j+1 , P j+1 , F j+1 is an O(∆m(H j ) -∆m(H j+1 )). Similarly, the post-processing time for computing a solution for H j , P j , F j from a solution for H j+1 , P j+1 , F j+1 is an O(∆m(H j ) -∆m(H j+1 )). Therefore, the total running time for applying all the reduction rules is an O(∆m). Finally, we are left with solving Module Matching on a reduced instance H pr , P pr , F pr . We stress that if H is degenerate (complete or edgeless) then H pr is trivial, otherwise by the hypothesis H pr has order at most k. As a result, by Theorem 3 we can solve Module Matching on the reduced instance in O(∆µ • k 4 )-time.

Applications

We conclude this paper presenting applications of our main result to some graph classes (Theorem 4). Some interesting refinements of our framework are also presented in Section 5.2.

Graphs totally decomposable by the pruned modular decomposition

Cographs are exactly the graphs that are totally decomposable by modular decomposition [START_REF] Corneil | A linear recognition algorithm for cographs[END_REF]. We show that three distinct generalizations of cographs in the literature are totally decomposable by the pruned modular decomposition.

Distance-hereditary graphs. A graph G = (V, E) is distance-hereditary if it can be reduced to a singleton by pruning sequentially the pendant vertices and twin vertices [START_REF] Bandelt | Distance-hereditary graphs[END_REF]. Conversely, G is co-distance hereditary if it is the complement of a distance-hereditary graph, i.e., it can be reduced to a singleton by pruning sequentially the anti-pendant vertices and twin vertices. In both cases, the corresponding pruning sequence can be computed in linear-time [START_REF] Damiand | A simple paradigm for graph recognition: application to cographs and distance hereditary graphs[END_REF][START_REF] Dubois | On co-distance hereditary graphs[END_REF]. Therefore, we can derive the following result from our framework: Proposition 2. We can solve Maximum Matching in linear-time on graphs that can be modularly decomposed into distance-hereditary graphs and co-distance hereditary graphs.

In particular, we can solve Maximum Matching in linear-time on distance-hereditary graphs and co-distance hereditary graphs.

We stress that even for distance-hereditary graphs, we may need to use the reduction rule of Section 4.3 for pendant modules. Indeed, as we follow the pruning sequence, we may encounter twin vertices and merge them into a single module. Hence, even in the simpler case of distance-hereditary graphs, we need to handle with modules instead of just handling with vertices. In the same way, even for co-distance hereditary graphs, we may need to use the reduction rule of Section 4.2 for anti-pendant modules.

Trees are a special subclass of distance-hereditary graphs. We say that a graph has modular treewidth at most k if every prime quotient subgraph in its modular decomposition has treewidth at most k3 . In particular, graphs with modular treewidth at most one are exactly the graphs that can be modularly decomposed into trees. We stress the following consequence of Proposition 2: Corollary 5. We can solve Maximum Matching in linear-time on graphs with modular-treewidth at most one.

The case of graphs with modular treewidth k ≥ 2 is left as an intriguing open question.

Tree-perfect graphs. Two graphs G 1 , G 2 are P 4 -isomorphic if there exists a bijection from G 1 to G 2 such that, for every induced P 4 in G 1 , its image in G 2 also induces a P 4 [START_REF]A semi-strong perfect graph conjecture[END_REF]. The notion of P 4 -isomorphism plays an important role in the study of perfect graphs. A graph is tree-perfect if it is P 4 -isomorphic to a tree [START_REF] Brandstädt | Tree-and forest-perfect graphs[END_REF]. We prove the following result: Proposition 3. Tree-perfect graphs are totally decomposable by the pruned modular decomposition.

In particular, we can solve Maximum Matching in linear-time on tree-perfect graphs.

Our proof is based on a deep structural characterization of tree-perfect graphs [START_REF] Brandstädt | Tree-and forest-perfect graphs[END_REF]. Before stating this characterization properly, we need to introduce a few additional graph classes.

Figure 5: Examples of tree-perfect graphs [START_REF] Brandstädt | Tree-and forest-perfect graphs[END_REF]. The sets Q, R, S represent modules substituting the vertices q, r, v n .

Given a vertex-ordering

(v 1 , v 2 , . . . , v n ) let N <i (v i ) = N (v i ) ∩ {v 1 , v 2 , . . . , v i-1 }. A graph is termed elementary if it admits a vertex-ordering (v 1 , v 2 , . . . , v n ) such that, for every i: N <i (v i ) = {v 1 , v 2 , . . . , v i-2 } if i is odd {v i-1 } otherwise.
Note that such ordering as above is a pruning sequence by pendant and anti-pendant vertices. The classes C j , j = 1, 2, 3 contain all the graphs that can be obtained from an elementary graph, with ordering (v 1 , v 2 , . . . , v n ), by adding the three new vertices p, q, r and the following set of edges:

• (for all classes) {p, v i }, {q, v i }, {r, v i } for every i > 1 odd;

• (only for C 1 ) {v 1 , q}, {p, r} and {v 2 , p};

• (only for C 2 ) {p, q}, {p, r}, {q, r}, {v 1 , q} and {v 2 , r};

• (only for C 3 ) {p, q}, {p, r} and {v 1 , r}.

The graphs H 1 , H 2 are illustrated in Fig. 5 Tree-perfect graphs are fully characterized in [START_REF] Brandstädt | Tree-and forest-perfect graphs[END_REF], and a linear-time recognition algorithm can be derived from this characterization. We will only use a weaker form of this result: Theorem 6 ( [8]). A graph G = (V, E) is a tree-perfect graph only if every nontrivial module induces a cograph and the quotient graph G is in one of the following classes or their complements: trees; elementary graphs; C 1 ∪ C 2 ∪ C 3 ; H 1 or H 2 .

We can now apply Theorem 6 in order to conclude, as follows:

Proof of Proposition 3. Let G = (V, E) be a tree-perfect graph. By Theorem 6 every nontrivial module induces a cograph. It implies that all the subgraphs in the modular decomposition of G, except maybe its quotient graph G , are cographs, and so, totally decomposable by the modular decomposition. We are left with proving that G is totally decomposable by the pruned modular decomposition.

The latter is immediate whenever G is a tree, H 1 , H 2 or a complement of one of these graphs. Furthermore, we already observed that elementary graphs can be reduced to a singleton by pruning pendant and anti-pendant vertices sequentially. Therefore elementary graphs and their complements are also totally decomposable by the pruned modular decomposition. Finally, we prove that graphs in C 1 ∪ C 2 ∪ C 3 are totally decomposable (this will prove the same for their complements). Recall that every graph G ∈ C j , j = 1, 2, 3 can be obtained from an elementary graph H with ordering (v 1 , v 2 , . . . , v n ) by adding three new vertices p, q, r and a set of specified edges. Furthermore, for every odd i, resp. for every even i, we have that v i is anti-pendant, resp. pendant, in H \ {v i+1 , . . . , v n }. Since p, q, r are made adjacent to every v i for i > 1 odd, and nonadjacent to every v i for i > 2 even, this above property stays true in G \ {v i+1 , . . . , v n }. As a result, we can remove the vertices v n , v n-1 , . . . , v 3 sequentially. We are left with studying the subgraph induced by p, q, r, v 1 , v 2 . The latter subgraph is a path if G ∈ C 1 ∪ C 3 , otherwise it is a house (cf. Fig. 6). In both cases, such subgraph can be totally decomposed by pruning pendant and anti-pendant vertices sequentially.

Other generalizations. Finally, the c-decomposition is a lesser-known generalization of the modular decomposition studied in [START_REF] Lanlignel | Autour de la décomposition en coupes[END_REF][START_REF] Rao | Clique-width of graphs defined by one-vertex extensions[END_REF]. It was proved in [START_REF] Lanlignel | Autour de la décomposition en coupes[END_REF] that the graphs totally decomposable by the c-decomposition are exactly the graphs that can be reduced to a singleton by pruning pendant and universal vertices sequentially. Proposition 4. We can solve Maximum Matching in linear-time on the graphs that are totally decomposable by the c-decomposition.

The case of unicycles

We end up this section with a refinement of our framework for the special case of unicyclic quotient graphs (a.k.a., graphs with exactly one cycle). Proposition 5. We can solve Maximum Matching in linear-time on the graphs that can be modularly decomposed into unicycles.

Proof. By Lemma 2, it suffices to show that on every instance G , P, F such that G is a unicycle, we can solve Module Matching in O(∆m)-time. Recall that G is a unicycle if it can be reduced to a cycle by pruning the pendant vertices sequentially. Therefore, in order to prove the result, we only need to prove it when G is a cycle.

i.e., we add an edge of F t in the current matching. In both cases, the cardinality of the solution increases by one. Then, all the edges of F t that were not used during the second phase are added to the current matching. Overall, we have as claimed that the cardinality of the solution increases by exactly µ t .

The procedure ends for t = p. In this situation, the quotient subgraph is reduced to a single node, and so, we only need to increase the current size µ of the matching by µ p . Summarizing, since all the steps of this procedure take constant-time, the total running-time is an O(p).

Open problems

The pruned modular decomposition happens to be an interesting add up in the study of Maximum Matching algorithms. An exhaustive study of its other algorithmic applications remains to be done. Moreover, another interesting question is to characterize the graphs that are totally decomposable by this new decomposition.

We note that our pruning process can be seen as a repeated update of the modular decomposition of a graph after some specified modules (pendant, anti-pendant) are removed. However, we can only detect a restricted family of these new modules (universal, isolated, twins). A fully dynamic modular decomposition algorithm could be helpful in order to further refine our framework.

Finally, in a companion paper [START_REF] Ducoffe | A quasi linear-time b-matching algorithm on distance-hereditary graphs and bounded split-width graphs[END_REF], we propose another approach for Maximum Matching that is based on split decomposition, and that partly overlaps the cases seen in this paper. The combination of both framework looks like a challenging task.

Figure 1 :

 1 Figure 1: A graph and its modular decomposition.

  For that, let G = (M(G), E ) be the quotient graph of G. There are two cases. Suppose G = G , or equivalently the modular decomposition of G is reduced to G . Then, solving Maximum Matching for G is equivalent to solving Module Matching on G, M(G), F with M(G) = V and F being a collection of n empty matchings. By the hypothesis it can be done in time T (p, ∆m, ∆µ), where p = |V (G )|. In this situation we get p = |V | = N , ∆m = |E| = m, ∆µ = µ(G). Since T is subadditive by the hypothesis, we have that Maximum Matching can be solved in this case in time O(T (N, m, µ(G))).

Figure 2 :

 2 Figure 2: The bull is totally decomposable by the pruned modular decomposition.

Figure 3 :

 3 Figure 3: An augmenting path of length 5 with ends x 1 , x 2 . Matched edges are drawn in bold.

Figure 4 :

 4 Figure 4: An augmenting path of length 7 with ends x 2 , c. Matched edges are drawn in bold.

Figure 6 :

 6 Figure 6: Small tree-perfect graphs with 5 vertices.

We stress that every polynomial function is subadditive.

Anti-twins are also defined as one-vertex extensions in[START_REF] Rao | Clique-width of graphs defined by one-vertex extensions[END_REF]. Their integration to this framework remains to be done.

Our definition is more restricted than the one in[START_REF] Paulusma | Model counting for cnf formulas of bounded modular treewidth[END_REF] since they only impose the quotient subgraph G to have bounded treewidth.

* This work was supported by the Institutional research programme PN 1819 "Advanced IT resources to support digital transformation processes in the economy and society -RESINFO-TD" (2018), project PN 1819-01-01"Modeling, simulation, optimization of complex systems and decision support in new areas of IT&C research", funded by the Ministry of Research and Innovation, Romania.

Our first result in this section is that there always exists an optimal solution that contains F 1,2 . This justifies a posteriori the removal of V (F 1,2 ) from G. Lemma 8. There is a maximum-cardinality matching of G that contains all edges in F 1,2 .

Proof. Let M 1 = (u 1 , u 2 , . . . , u n 1 ) and M 2 = (w 1 , w 2 , . . . , w n 2 ) be canonically ordered w.r.t. F 1 , F 2 (cf. Sec. 2). Furthermore, let u 1 , u 2 , . . . , u k be the maximal sequence of exposed vertices in M 1 with k ≤ n 2 . We observe that F 1,2 is obtained by greedily matching u i with w i .

Then, let F be any maximum-cardinality matching of G that can be obtained from F 1,2 using augmenting paths. By construction, u 1 , u 2 , . . . , u k are matched by F . In particular, since every

a module, we can always assume that A 2 induces a suffix (w 1 , w 2 , . . . , w j ) of the canonical ordering (i.e., see [START_REF] Coudert | Fully polynomial FPT algorithms for some classes of bounded clique-width graphs[END_REF]Lemma 5.1]). Finally, let

, be the set of vertices matched by F with a vertex of A 2 . Note that we have u 1 , u 2 , . . . , u k ∈ B 2 . Since M 2 is a module, there are all possible edges between A 2 and B 2 . As a result, we can always replace the matched edges between A 2 , B 2 by any perfect matching between these two sets without changing the cardinality of F . It implies that we can assume w.l.o.g. every u i is matched to w i .

We stress that during this phase, all the operations except maybe the last one increase the cardinality of the matching. Furthermore, the only possible operation that does not increase the cardinality of the matching is the replacement of an edge in F 2 by an edge in F 1,2 . Doing so, either we fall in one of the two pathological cases

) (easy to solve), or then we obtain through the replacement operation the following stronger property:

We will assume Property 1 to be true for the remaining of this section.

Second phase: virtual split edges. We complete the previous phase by performing a Split between M 2 , M 1 (Operation 2). That is, while there exist two exposed vertices x 2 , y 2 ∈ M 2 and a matched edge {x 1 , y 1 } ∈ F 1 we replace {x 1 , y 1 } by {x 1 , x 2 }, {y 1 , y 2 } in the current matching. However, we encode the Split operation using virtual edges in H 2 .

Formally, we add a virtual edge {x 2 , y 2 } in H 2 that is labeled by the corresponding edge {x 1 , y 1 } ∈ F 1 . Let H * 2 and F * 2 be obtained from H 2 and F 2 by adding all the virtual edges. We set

Intuitively, the virtual edges are used in order to shorten the augmenting paths crossing M 1 .

Third phase: post-processing. Let F * be a maximum-cardinality matching of the subdivision G * (P * ) (i.e., obtained by applying our reduction rules to the new instance). We construct a matching F for G as follows.

1. We add in F all the non virtual edges in F * .

2. For every virtual edge {x 2 , y 2 }, let {x 1 , y 1 } ∈ F 1 be its label. If {x 2 , y 2 } ∈ F * then we add {x 1 , y 2 }, {x 2 , y 1 } in F , otherwise we add {x 1 , y 1 } in F . In the first case, we say that we confirm the Split operation, whereas in the second case we say that we cancel it.

Given an edge e = {v i , v j } ∈ E(G ), our strategy consists in fixing the number µ i,j of matched edges with one end in M i and the other end in M j . By [13, Lemma 5.1], we can always assume that the ends of these µ i,j edges are the µ i,j first vertices in a canonical ordering of M i (w.r.t. F i ), and in the same way, the µ i,j first vertices in a canonical ordering of M j (w.r.t. F j ). We can remove these above vertices from M i , M j and update the matchings F i , F j accordingly. Doing so, we can remove the edge {v i , v j } from G . Then, since G \ e is a path, we can systematically apply the reduction rule for pendant modules (Section 4.3). Overall, we test for all possible number of matched edges between M i and M j and we keep any one possibility that gives the largest matching.

In order to apply our strategy, we choose any edge e such that |M i | is minimized. Doing so, there can only be at most O(n i ) ≤ O(∆m/p) possibilities for µ i,j , where p = |V (G )|. However, we are not done yet as we now need to test for every possibility in O(p)-time. A naive implementation of this test, using the reduction rule of Section 4.3, would run in O(∆m)-time. We propose a faster implementation that only computes the cardinality of the solution (i.e., not the matching itself). The latter is enough in order to compute the optimum value for µ i,j . Then, once this value is fixed, we can run the naive implementation in order to compute a maximum-cardinality matching. W.l.o.g., i = 1, j = p. For every t let n t = |M t |. Furthermore, let µ t = |F t |. Note that there are exactly n t -2µ t vertices in M t that are left exposed by F t . We also maintain a counter µ representing the cardinality of the current matching. Initially µ = µ i,j . Then, we proceed as follows:

• We start removing the µ i,j first vertices in a canonical ordering of M i w.r.t. F i . More precisely, we decrease n i by µ i,j . If µ i,j ≤ n i -2µ i then we only removed exposed vertices and there is nothing else to change. Otherwise, we also need to decrease µ i by exactly (µ i,j -n i + 2µ i ) /2 . We proceed similarly for M j .

After that, we can remove e from G . We have that G /e is isomorphic to the path (v 1 , v 2 , . . . , v p ). This first step takes constant-time.

• Then, for every 1 ≤ t < p, we simulate the reduction rule of Section 4.3 sequentially. More precisely:

1. Let k t = min{n t -2µ t , n t+1 } be the maximum number of exposed vertices in M t that can be matched with a vertex of M t+1 in the first phase. We decrease n t , n t+1 by k t . Furthermore, the size µ of the current matching is also increased by k t . If k t ≤ n t+1 -2µ t+1 then we only remove exposed vertices from M t+1 and so, there is nothing else to be done. Otherwise, we also need to decrease µ t+1 by exactly (k t -n t+1 + 2µ t+1 ) /2 . We fall in a degenerate case if k t = n t or k t = n t+1 . In the former case, we do not modify the value of µ, however in the latter case (M t is now an isolated module) we can increase this value by µ t . For both degenerate cases, we continue directly to the next vertex v t+1 . Otherwise, we go to Step 2.

2. Let k t = min{ (n t+1 -2µ t+1 )/2 , µ t } be the number of virtual edges that we create during the second phase. We increase µ t+1 by exactly k t .

3. Finally, in order to simulate the third phase, we claim that we only need to increase µ by exactly µ t . Indeed, after a solution F * t was obtained for (v t+1 , . . . , v p ) the reduction rule proceeds as follows. Either we confirm a Split operation, i.e., we replace a virtual matched edge in F * t by two edges between M t , M t+1 ; or we cancel the Split operation,


Sébastien Brisard
email: sebastien.brisard@ifsttar.fr

Luc Dormieux
email: luc.dormieux@enpc.fr

Corrigendum to "Combining Galerkin approximation techniques with the principle of

Hashin and Shtrikman to derive a new FFT-based numerical method for the homogenization of composites" [Comput. Methods Appl. Mech. Engrg. 217-220 (2012) 197-212] S. Brisard a, * , L. Dormieux a a Université Paris-Est, Laboratoire Navier (UMR 8205), CNRS, ENPC, IFSTTAR, F-77455 Marne-la-Vallée

Assumption 1 in our original paper can be replaced with the following, less stringent assumption.

Assumption 1. There exists λ > 0 such that at any point x ∈ Ω, the eigenvalues of [C(x) -C 0 ] are greater than λ in absolute value.

Proof of Theorem 4 requires that the local stiffness be bounded from below and above. Therefore, Assumption 2 must be altered as follows Assumption 2. There exists κ max > κ min > 0 and µ max > µ min > 0 such that at any point x ∈ Ω

κ min ≤ κ(x) ≤ κ max , µ min ≤ µ(x) ≤ µ max .
Then, the end of the proof of Theorem 4 (starting from "Taking advantage of the isotropy") must be modified as follows.

Proof of Theorem 4. [. . . ] Taking advantage of the isotropy of both local and reference materials, the above volume averages can be expanded

|Ω| τ + : (C -C 0 ) -1 : τ + = κ(x)>κ 0 τ hyd (x) 2 d [κ(x) -κ 0 ] d Ω + µ(x)>µ 0 τ dev (x) 2 2 µ(x) -µ 0 d Ω,
and

|Ω| τ -: S 0 : (S -S 0 ) -1 : S 0 : τ -= κ(x)<κ 0 κ(x) τ hyd (x) 2 dκ 0 [κ 0 -κ(x)] d Ω + µ(x)<µ 0 µ(x) τ dev (x) 2 2µ 0 µ 0 -µ(x) d Ω.
From Assumption 2, we first have

|Ω| τ + : (C -C 0 ) -1 : τ + ≥ κ(x)>κ 0 τ hyd (x) 2 d Ω d (κ max -κ 0 ) + µ(x)>µ 0 τ dev (x) 2 d Ω 2 (µ max -µ 0 ) , then |Ω| τ -: S 0 : (S -S 0 ) -1 : S 0 : τ -≥ κ min κ(x)<κ 0 τ hyd (x) 2 d Ω dκ 0 (κ 0 -κ min ) + µ min µ(x)<µ 0 τ dev (x) 2 d Ω 2µ 0 (µ 0 -µ min ) .
from which the following bound results

a (τ, ) ≥ α |Ω| Ω τ hyd (x) 2 + τ dev (x) 2 d Ω = α τ 2 V , (49) with 1
α = min [d (κ max -κ 0 )] -1 , 2 (µ max -µ 0 ) -1
κ min [dκ 0 (κ 0 -κ min )] -1 , µ min 2µ 0 (µ 0 -µ min ) -1 .

The proof of the first statement is complete, since V = τ V , and α > 0.

1 In this definition of α, it is assumed that κ min < κ 0 < κ max and µ min < µ 0 < µ max . The proof remains valid if any of these inequalities are not verified. For example, if µ min ≥ µ 0 , then, from Assumption 2, µ(x) ≥ µ 0 at any point x ∈ Ω. In other words, the integral over the set of points x ∈ Ω such that µ(x) < µ 0 is null. Then Eq. ( 49) still holds, provided that α is defined as follows α = min [d (κ max -κ 0 )] -1 , 2 (µ max -µ 0 ) -1 , κ min [dκ 0 (κ 0 -κ min )] -1 .

Preprint submitted to Computer Methods in Applied Mechanics and Engineering October 15, 2014