Hereditary biclique-Helly graphs: recognition and maximal biclique enumeration

A biclique is a set of vertices that induce a bipartite complete graph. A graph G is biclique-Helly when its family of maximal bicliques satisfies the Helly property. If every induced subgraph of G is also biclique-Helly, then G is hereditary biclique-Helly. A graph is C_4-dominated when every cycle of length 4 contains a vertex that is dominated by the vertex of the cycle that is not adjacent to it. In this paper we show that the class of hereditary biclique-Helly graphs is formed precisely by those C_4-dominated graphs that contain no triangles and no induced cycles of length either 5, or 6. Using this characterization, we develop an algorithm for recognizing hereditary biclique-Helly graphs in O(n^2+\alpha m) time and O(m) space. (Here n, m, and \alpha = O(m^{1/2}) are the number of vertices and edges, and the arboricity of the graph, respectively.) As a subprocedure, we show how to recognize those C_4-dominated graphs that contain no triangles in O(\alpha m) time and O(m) space. Finally, we show how to enumerate all the maximal bicliques of a C_4-dominated graph with no triangles in O(n^2 + \alpha m) time and O(\alpha m) space, and we discuss how some biclique problems can be solved in O(\alpha m) time and O(n+m) space.


Introduction
A famous theorem by Helly states that, in a d-dimensional euclidean space, if in a finite collection of n > d convex sets any d + 1 sets have a point in common, then there is a point in common to all the sets [19]. The Helly property generalizes this theorem for families of sets of any kind. A family of sets satisfies the Helly property, or simply is a Helly family, if for every subfamily F of pairwise intersecting sets there is an element common to all the sets in F.
The Helly property arises naturally in the graph theory field [4,11,24]. In the study of clique graphs, the Helly property plays a central role. Roberts and Spencer proved that a graph is a clique graph if and only if there is a Helly family of cliques that covers all the edges of the graph [30] (see also [18]). Based on this result, it is interesting to study the subclass of clique graphs in which the family of maximal cliques is Helly. Such is the class of clique-Helly graphs. Szwarcfiter presented a characterization of clique-Helly graphs that yields a polynomial time algorithm for the associated recognition problem [31], while Lin and Szwarcfiter recently developed an O(m 2 ) time recognition algorithm [22]. On the other hand, Alcón et al. showed that the recognition of clique graphs is an NP-complete problem [1]. The Helly property has been applied in a similar fashion to other families of vertex sets so as to define several other classes of graphs. A survey on the Helly property for graphs, mainly from a complexity point of view, is given in [8].
A clique-Helly graph can be obtained from any given graph, by inserting a new vertex adjacent to all the existing vertices. As a consequence, the class of clique-Helly graphs is not closed under induced subgraphs. It makes sense to study those graphs whose all their induced subgraphs are clique-Helly. These graphs are known as the hereditary clique-Helly graphs. Prisner gave a characterization of hereditary clique-Helly graphs by means of four forbidden induced subgraphs with 6 vertices each. He also showed an O(n 2 m) time algorithm for the associated recognition problem [28]. Later, Lin and Szwarcfiter developed an improved O(m 2 ) time and O(αm) space recognition algorithm [22], where α < √ m is the arboricity of the graph.
The problem of enumerating all the maximal cliques of a graph is widely studied, both for the general case (e.g. [5,20,34,33]) and for some restricted graph classes (see e.g. [4,11]). Since a clique-Helly graph can be obtained from any graph by inserting a universal vertex, any algorithm for the enumeration of the maximal cliques of a clique-Helly graph can also be used to enumerate all the maximal cliques of a general graph. That is, the best algorithms for enumerating the maximal cliques of clique-Helly graphs are of general purpose. For hereditary clique-Helly graphs the situation is quite different, since clique-Helly graphs have at most m maximal cliques [28]. This O(m) bound follows from the fact that all the maximal cliques of a hereditary clique-Helly graph must have an edge that belongs to no other maximal clique [28,35]. So, using the same ideas as in [22], an O(m 2 ) time algorithm for enumerating all the maximal cliques yields from this property.
In this paper we focus our attention on bicliques. A biclique is a set of vertices inducing a bipartite complete subgraph. The problem of enumerating all the (non-induced) maximal bicliques of a general graph is also widely studied (e.g. [2,3,6,7,10]), as well as it is the problem of generating the maximal bicliques of a bipartite graph [23,26]. In the last years, other concepts that are widely studied for cliques have been studied in terms of bicliques [12,13,14,16,15,17,25,32]. Groshaus and Szwarcfiter found a characterization of biclique graphs that somehow resembles the characterization of clique graphs by Roberts and Spencer [17]; in this case, a key ingredient of the characterization is a variation of the Helly property, which the authors call the bipartite Helly property. Groshaus and Szwarcfiter also provided a characterization of biclique-Helly graphs, that is somehow related to the characterization given by Szwarcfiter for clique-Helly graphs, that also leads to a polynomial time algorithm for the associated recognition problem [15].
As clique-Helly graphs, the induced subgraph of a biclique-Helly graph needs not be a biclique-Helly graph. Indeed, by inserting a vertex adjacent to all the vertices in one bipartition of a bipartite graph, a biclique-Helly graph is obtained. A graph is hereditary biclique-Helly graphs if all its induced subgraphs are biclique-Helly. Groshaus and Szwarcfiter also studied the class of hereditary biclique-Helly graphs [16]. They showed a family of six forbidden induced subgraphs with at most 8 vertices. As a corollary, the recognition of hereditary biclique-Helly graphs takes polynomial time, though the most efficient algorithm to this date takes O(n 3 m 2 ) time (cf. [8]).
Prisner proved that bipartite graphs can have an exponential number of bicliques [29]. Since a biclique-Helly graph can be obtained from any bipartite graph by the insertion of one vertex, biclique-Helly graphs can have an exponential number of maximal bicliques. Furthermore, as for clique-Helly graphs, the best algorithms for listing all the maximal bicliques of a biclique-Helly graph are of general purpose.
In this paper, we consider two problems related with hereditary biclique-Helly graphs: their recognition and the enumeration of their maximal bicliques. For the recognition problem, we rephrase the characterization by Groshaus and Szwarcfiter in more algorithmic terms and, using this new characterization, we develop an O(αm + n 2 ) time and O(m) space recognition algorithm. As one of the steps in our algorithm, we require the recognition of a larger class, formed by all the triangle-free graphs whose C 4 's have at least one vertex dominated by other vertex of the cycle. We call this class, the class of C 4 -dominated graphs with no triangles. We develop a recognition algorithm for this class that takes O(αm) time and O(m) space. For the enumeration problem, we develop an O(αm + o) time and space algorithm that outputs all the bicliques of any triangle-free C 4 -dominated graph, where o < n 2 is the size of the output. Furthermore, we prove that every maximal biclique of a graph in this class is formed by those vertices that either are adjacent or dominate v, for some vertex v. As a result, hereditary biclique-Helly graphs can have at most n maximal bicliques.
The article is organized as follows. In the next section we introduce the notation and terminology employed. In Section 3 we develop a simple O(nm) time and O(n 2 ) space algorithm for the recognition of biclique-Helly graphs. Following, in Sections 4 and 5, we present an improved implementation of this simple algorithm, so that it runs in O(αm + n 2 ) time and O(m) space. The algorithm for enumerating the maximal bicliques of C 4 -dominated graph with no triangles is given in Section 6. Finally, in Section 7, we give some remarks and leave some open problems.

Preliminaries
In this paper we work with simple graphs. Let G be a graph with vertex set V (G) and edge set E(G), and call n = |V (G)| and m = |E(G)|. Write vw to denote the edge of G formed by vertices v, w ∈ V (G). For v ∈ V (G), represent by N G (v) the set of vertices adjacent to v. The set N G (v) is called the neighborhood of v, and d G (v) = |N (v)| is the degree of v. Similarly, for v, w ∈ V (G), define the common neighborhood of v and w as N G (vw) = N G (v) ∩ N G (w). Say that v dominates w, or equivalently that w is dominated by v, when N (w) ⊆ N (v). Note that v dominates w only if v is not adjacent to w. The set of vertices that dominate v is represented by Dom G (v). Say that v is dom-comparable to w when v either dominates or is dominated by w. When there is no ambiguity, we may omit the subscripts from N , Dom, and d.
Say that a total ordering < of V (G) is a degree ordering when v < w only if d(v) ≤ d(w). A degree ordered graph is a pair (G, <), where G is a graph and < is a degree ordering of G. For the sake of simplicity, we say that G is a degree ordered graph to indicate that there is a degree ordering < such that (G, <) is a degree ordered graph. For a vertex v of a degree ordered For W ⊆ V (G), we also use max G W and min G W to refer to the maximum and minimum elements of W , according to <. As before, we omit the subscript from MAX, MIN, max, and min when there is no ambiguity. For two vertices v > w, define the least common neighborhood as L(v, w) = N (vw) ∩ MIN(v); note that, by definition, L(w, v) is undefined for v > w.
For W ⊆ V (G), denote by G[W ] the subgraph of G induced by W . An independent set is a set W ⊆ V (G) formed by pairwise non-adjacent vertices. Graph G is bipartite when V (G) can be partitioned into two independent sets W 1 and W 2 , where possibly W 2 = ∅. In this case, the unordered pair {W 1 , W 2 } is called a bipartition of G. Furthermore, if vw is an edge of G for every v ∈ W 1 and w ∈ W 2 , then G is a bipartite complete graph. A biclique H of G is a bipartite complete induced subgraph of G; we also use the term biclique to refer to both V (H) and the unique bipartition of H. Let F be a family of sets. Say that F is pairwise intersecting when S ∩ T = ∅, for every S, T ∈ F, while F is globally intersecting when F = ∅. Family F is Helly when all its pairwise intersecting subfamilies are globally intersecting. A graph G is biclique-Helly when its family of maximal bicliques is Helly, and it is hereditary biclique-Helly when all its induced subgraphs are biclique-Helly.
Denote by C n the cycle graph with n vertices; C 3 is also called a triangle. For a graph H, say that G is H-free when no induced subgraph of G is isomorphic to H. Similarly, for a family H of graphs, say that G is H-free when G is H-free for every H ∈ H. The arboricity α(G) of G is the minimum number of edge-disjoint spanning forests into which G can be decomposed. Chiba and Nishizeki proved that α(G) ≤ m 1/2 [5].
In this paper we also work with simple digraphs. Let D be a graph with vertex set V (D) and edge set E(D). Write v → D w to indicate that the ordered pair (v, w) is an edge of D. When (v, w) is not an edge of D, Groshaus and Szwarcfiter formulated the following characterization of hereditary biclique-Helly graphs, by means of minimal forbidden induced subgraphs.

Theorem 2.1 ([16]).
A graph is hereditary biclique-Helly if and only if it is does not contain any triangles, C 5 's, C 6 's, nor ladders as induced subgraphs (see Figure 1).
As a consequence of this theorem, the authors obtain an O(n 3 m 2 ) time algorithm for the recognition of hereditary biclique-Helly graphs (cf. [8]).

Simple recognition of hereditary biclique-Helly graphs
In this section we rephrase Theorem 2.1 in such a way that an O(nm) time and O(n 2 ) space recognition algorithm can be obtained with not to much effort. To describe our algorithm, we require the following definitions for a graph G. Say that a cycle of G is dominated if it contains a pair of dom-comparable vertices. When every C 4 of G is dominated, we say that G is C 4 -dominated. Theorem 2.1 is rephrased as follows. Proof. By Theorem 2.1, graphs that contain triangles, C 5 's, or C 6 's as induced subgraphs are not hereditary biclique-Helly. Suppose now that G is a {triangle, C 5 , C 6 }-free graph that contains a cycle v 1 , v 2 , v 3 , v 4 in which neither v 1 and v 3 nor v 2 and v 4 are dom-comparable. For the sake of notation, call v i+4 = v i for every i ∈ Z. Then, for i ∈ Z, there is a vertex Clearly, v 1 , v 2 , v 3 , v 4 is an induced cycle because G is triangle-free. Now, consider all the possible edges between the vertices in {w 1 , w 2 , w 3 , w 4 }. First observe that w i is not adjacent Therefore, the subgraph of G induced by {v i w i } 1≤i≤4 isomorphic to a ladder and, by Theorem 2.1, G is not hereditary biclique-Helly .
For the converse, just observe that the cycle of a ladder formed by the vertices of degree at least 3 is not dominated. Then, the result follows from Theorem 2.1. Theorem 3.1 yields a simple three-step algorithm for the recognition of hereditary biclique-Helly graphs, summarized in Algorithm 1. Discuss its implementation. For Step 1, the algorithm in [5] is called so as to find a triangle in O(mα(G)) time and O(m) space, when one exists. In the rest of this section we discuss a simple O(nm) time and O(m 2 ) space implementation for Steps 2 to 4.

Algorithm 1 Recognition of hereditary biclique-Helly graphs.
Input: a graph G. Output: if G is not hereditary biclique-Helly, then either a triangle, a non-dominated C 4 , an induced C 5 , or an induced C 6 ; otherwise, a message.
1. If G contains a triangle T , then output T and halt.

2.
If G contains a non-dominated C 4 called C, then output C and halt.
3. If G contains an induced C 5 called C, then output C and halt.

4.
If G contains an induced C 6 called C, then output C and halt.

An O(nm) time implementation of Step 2
The main tools for this step are the squares families. Fix a degree ordered graph G with no induced triangles for the rest of this section.
For a vertex v, the squares family of v is the family S(v) that contains one triple S = (v, w, L(v, w)) for each w < v such that L(v, w) = ∅. Refer to v, w and L(v, w) as the high vertex, low vertex, and common neighborhood of S, respectively. When |L(v, w)| > 1, the triple S encodes all the C 4 's that contain v and w, where v is the maximum vertex of the C 4 . Indeed, v, a, w, b is a C 4 of G and v > max{a, b, w} if and only if a, b ∈ L(v, w). In this case, we say that S represents the cycle v, a, w, b, for every a, b ∈ L(v, w). The squares family of When G is understood, we will simply write S to mean S(G).
Observe that every C 4 of G is represented by exactly one triple of S. Thus, the squares family of G encodes of all the C 4 's of G in O(mα(G)) space, though G could have O(n 2 ) C 4 's [5]. For the sake of notation, write v(S), w(S), and L(S) to respectively mean the high vertex, the low vertex, and the common neighborhood of S, for every S ∈ S. Also, we sometimes write (v, w) instead of (v, w, L(v, w)); we may write, for instance, that (v, w) ∈ S to indicate that (v, w, L(v, w)) ∈ S.
Say that S ∈ S is dominated when all the C 4 's represented by S are dominated. (If |L(S)| = 1, then S is vacuously dominated.) By definition, G is C 4 -dominated if and only if S is dominated, for every S ∈ S. Say also that S is safe if v(S) dominates w(S), and that it is unsafe otherwise. Observe that if S is safe, then it is also dominated. Otherwise, S is dominated if and only if a dominates b, for every a, b ∈ L(S) such that a > b. These observations yield a simple algorithm to find a non-dominated C 4 of G, when one such C 4 exists, summarized as Algorithm 2.
Algorithm 2 Non-dominated C 4 of a triangle-free graph G. Input: a degree ordered graph G with no induced triangles. Output: if existing, a non-dominated C 4 of G; otherwise, a message.
3. For i = 1 to n, do:

5.
For each S ∈ U N SAF E do:
In Step 4, Algorithm 2 finds each unsafe S ∈ S(v i ). Following, the inner cycle checks that every such unsafe triple S is dominated. For this, it first computes a degree ordering a 1 > . . . > a |L(S)| of L(S), and then checks that a j dominates a j+1 , for every 1 ≤ j < |L(S)|. If this check is fulfilled, then, since domination is a transitive relation, we obtain that a dominates b for every a, b ∈ L(S) such that a > b. Thus, Algorithm 2 is correct.
Discuss the time complexity of the algorithm. The matrix D at Step 2 can be obtained in O(nm) time easily. For Step 4, we run one iteration of the method C4 developed by Chiba and Nishizeki in [5]. Each iteration of the method C4 takes G and a vertex v i ∈ V (G) as input, and it outputs S(v i ) in O( w>v i d(w)) = O(m) time and space. (In fact, method C4 discards those S ∈ S(v i ) for which |L(S)| = 1. However, the algorithm can be easily modified so as to output these triples as well.) Furthermore, for each S ∈ S(v i ), the list L(S) given by the C4 is ordered in such a way that a ∈ L(S) appears before b ∈ L(S) if and only if a > b. (Here we assume that a also appears before b in N (v i ). By preprocessing G, such an ordering can be obtained in O(n + m) time for every v i ∈ V (G).) Thus, Step 6 is not actually executed. Next, each S ∈ S(v i ) is traversed so as to evaluate if it belongs to U N SAF E in

An O(nm) time implementation of Step 3
For this paragraph, let again G be a triangle-free graph. Observe that every C 5 of G must be induced; i.e., G contains no induced C 5 's if and only if it contains no C 5 's at all. It is not so hard to find a C 5 that contains a given vertex v ∈ V (G) in O(n + m) time, when such a cycle exists. In fact, there is a C 5 that contains v if and only if there are two adjacent vertices w and z at distance 2 from v. Indeed, both N (vw) and N (vz) are empty, because G is triangle-free. Then v, a, b, w, z is a C 5 for any a ∈ N (vw) and b ∈ N (vz). We sum up this procedure in Algorithm 3. Its not hard to see that this algorithm takes O(nm) time and O(n + m) space.
Algorithm 3 Induced C 5 in a triangle-free graph G. Input: a triangle-free graph G. Output: if existing, an induced C 5 of G; otherwise, a message.

2.
If there are two adjacent vertices w, z at distance 2 from v, then output v, a, b, w, z, for any a ∈ N (vw) and b ∈ N (vz), and halt.

An O(nm) time implementation of Step 4
For the last step, suppose that G is a degree ordered graph that is C 4 -dominated and contains no triangles. The next lemma shows how to find an induced C 6 in G that contains any given vertex v ∈ V (G), if existing.
Lemma 3.2. Let G be a degree ordered graph that is C 4 -dominated and contains no triangles, and v 0 ∈ V (G). Then, there is an induced C 6 in G that contains v 0 if and only if there is a cycle v 0 , . . . , v 5 with the following properties: Then, v 0 , . . . , v 4 , w 5 is also an induced cycle. Similarly, if v 1 = w 1 , then v 0 , . . . , v 5 is an induced cycle as well. Thus, (i)-(iv) follow.
For the converse, suppose that v 0 , . . . , v 5 is a cycle satisfying (i)-(iv). By (i) and the fact that G is triangle-free, the only possible edges between vertices of the cycle, besides those that are included in the cycle, The above lemma yields Algorithm 4, that finds an induced C 6 , if existing. With respect to the time complexity, as in Algorithm 2, Step 2 take O(nm) time. A single traversal of N (w 1 ), for every w 1 ∈ N (w 0 ), is enough to compute Step 4. As each access to D takes O(1) time, Step 4 takes O(n + m) time. For Step 5, first mark each vertex in N (w 0 ). Then, a single traversal of N (w 2 ), for each w 2 ∈ N 2 , while accessing the mark of the vertices, is enough to compute p at Step 5. Thus, Step 5 also requires O(n + m) time. For Step 6, first compute, for If w 2 , w 4 satisfy the conditions of Step 6 then u i and u i+1 also satisfy the conditions at it follows that Step 6, for some 1 ≤ i < k. Then, as each access to D and p takes O(1) time, Step 6 takes O(n + m) time. Therefore, the inner loop is executed in O(nm) time, so the the time complexity of Algorithm 4 is O(nm). For the spatial complexity, observe that matrix D requires O(n 2 ) bits, while all the other variables require at most O(n + m) bits.
Algorithm 4 Induced C 6 in a C 4 -dominated graph G with no triangles. Input: a degree ordered graph G that is C 4 -dominated and contains no triangles. Output: if existing, an induced C 6 of G; otherwise, a message.

Faster recognition of C -dominated graphs with no triangles
In this section we develop an improved implementation of Algorithm 2 whose running time and space consumption are O(mα(G)) and O(m), respectively. The idea is the same, for each S ∈ S we first check if S is safe. If not, then we check the dominations between the vertices in L(S). The major difference is that the domination matrix D is no longer employed; instead, while checking the safeness, we compute a digraph that encodes some dominations of interest of G. We begin with the description of this digraph. As before, we assume that G is a degree ordered graph with no triangles.
Fix S ∈ S. Define the binary relation → S on L(S) as follows: for a, b ∈ L(S), a → S b if and only if a < b and there is no c ∈ L(S) such that a < c < b. In other words, → S defines the subordering of < induced by the members in L(S). This subordering is exactly the same that is given by method C4 (see Section 3.1). We require a generalization of S from vertices to sets.
In other words, for each unsafe S ∈ S(V ), there is a path that goes through the vertices of L(S) in the order given by <. The unsafe domination digraph of G is the digraph U (G) = U (V (G)). The following lemma shows that, when every S ∈ S(V ) is dominated, U (V ) is actually a directed forest that encodes some dominations.
Lemma 4.1. Let G be a degree ordered graph that is C 4 -dominated and contains no triangles, and V ⊆ V (G). If S dominated for every S ∈ S(V ), then the following conditions hold for any v ∈ V (G): Proof. (i). Suppose that v ∈ V (G) has at least two out-neighbors a > b in U (V ). Then, by definition, there are two unsafe triples in S(V ), say S and T , such is vacuously true. Otherwise, let w be an out-neighbor of v. Since v → U (V ) w, we obtain that v → S w, for some unsafe S ∈ S(V ). Since S is dominated and unsafe, it follows that w dominates v in G.
Recall that the idea of the new implementation is to build U (G) so as to test the dominations inside L(S), for every unsafe S ∈ S. In turn, to build U (G), we need to know the safeness status of some triples in S, for which we require the dominations of these triples. It turns out that U (G) can be iteratively computed while the partial results are used to check the safeness of those triples of interest. The next lemma shows how this construction is done.   Hence v ∈ L(T ), because v < v(T ) as T ∈ S(MAX(v)). Therefore, there is a path from w to v in U (MAX(v)) because v > w.
(ii) =⇒ (i). In this case, we argue by contradiction. Suppose that (ii) is true and yet S is unsafe, i.e., N (w) \ N (v) contains some vertex z.
Since w is adjacent to both z and a, it follows that w ∈ L(z, a), thus (z, a) ∈ S(z). Also, since v ∈ N (a) \ N (z), it follows that (z, a) is unsafe, so there is a path from w to v in U (MAX(v)). Therefore, by Lemma 4.1, v dominates w, a contradiction. Lemma 4.2 yields Algorithm 5. Its input is the graph G, and its output is U (G) if G is C 4 -dominated, or a non dominating cycle otherwise. Thus, Algorithm 5 is just a replacement of Algorithm 2. We discuss its correctness and complexity in the next paragraphs.
Algorithm 5 Non-dominated C 4 of a triangle-free graph G. Input: a degree ordered graph G with no triangles. Output: if G is C 4 -dominated, then U (G); otherwise, a non-dominated C 4 of G. 3. For i := 1, . . . , n, do:

4.
Set REACH := {w ∈ V (G) | d < (w) > 0 and there is a path from w to v i in U }.
{This loop checks that every unsafe S is dominated.}

6.
For each a, b ∈ L(S) such that a → S b do:

8.
If N + U (a) = ∅ and a is not dominated by b, then output v i , a, w(S), b and halt.

9.
Add a → b to U .

10.
Set U N SAF E := U N SAF E ∪ L(S).

Correctness of Algorithm 5
The Loop 3-11 examines the vertices in the order defined by <, beginning from the greater.
Step 4 finds all those w ∈ V (G) such that there is a path from w to v i in U (M AX), and d < (w) > 0. Observe that if d < (w) = 0, then, by (iii), L(v i , w) = ∅, thus (v i , w) ∈ S. Then, by Lemma 4.2, Loop 5-10 iterates every unsafe triple S ∈ S whose high vertex is v i . This loop is the responsible for testing whether S is dominated or not, and it has the following three alternatives. Step 7 is superfluous, and it can be removed from the algorithm without affecting its correctness. However, its inclusion drops the time complexity required by the algorithm. In some sense, it tells us that the domination of a by b was already tested.) Algorithm 5 gives its output in one of three steps. Suppose that the algorithm halts at Step 7, as in Alternative 1. This happens because there is an unsafe triple T , already processed by the algorithm, such that a → T µ(a). We claim that b < µ(a); otherwise, as in Lemma 4.1, T would not be dominated, contradicting the fact that the Algorithm 5 stops immediately after it process a non-dominated triple. Then, as in Lemma 4.1, a is not dominated by b. Similarly, if Algorithm 5 halts at Step 8, as in Alternative 2, then a is not dominated by b. Therefore, in both of these alternatives, v i , a, w(S), b is a non-dominated C 4 . Finally, if Algorithm 5 does not halt inside Loop 5-10, as in Alternative 3, then U = U (G), by (ii). Summing up, Algorithm 5 is correct.

Implementation and complexity of Algorithm 5
The implementation of Algorithm 5 is rather straightforward. Recall that, by Lemma 4.1, every vertex of U has at most one out-neighbor. We record such out-neighbors in a vector

Faster recognition of hereditary biclique-Helly graphs
In this section we improve Algorithms 3 and 4 so as to run in O(mα(G) + n 2 ) time and O(m) space. Again, the idea is to evaluate if a given vertex v belongs to an induced C 5 or an induced C 6 , by looking at those vertices at distance at most 3 from v. In this section, however, we take advantage of the dominations implied by the squares family of G. The implementation of the improvement of Algorithm 3 for finding an induced C 5 is rather similar to the implementation of the improvement of Algorithm 4 for finding an induced C 6 . So, we only describe in detail the improvement of Algorithm 4, and briefly discuss the improvement of Algorithm 3. The main tool in this section is a new forest that extends the unsafe domination digraph. For the rest of this section, suppose that G is a degree ordered graph that is C 4 -dominated and has no triangles.
The squares domination digraph of G is the digraph S(G) that is obtained from U (G) by inserting an edge w → v for every safe For the sake of simplicity, we assume ⊥ > max V (G).
The following lemma is analogous to Lemma 3.2. It shows how to find an induced C 6 , when one such cycle exists. Observe the role that σ plays by marking that v 2 and v 4 are not dom-comparable (condition (ii)), and that v 1 , v 3 , and v 5 are neither dom-comparable (condition (iii)). Indeed, σ(v i ) was chosen as the minimum that dominates v i in either U (G) or in a safe triple. So, if v < σ(w), and v and w share a C 4 , then v cannot dominate w.
Lemma 5.1. Let G be a degree ordered graph that is C 4 -dominated and contains no triangles. Then, G contains an induced C 6 if and only if it contains two paths v 0 , v 1 , v 2 , v 3 and v 0 , v 5 , v 4 , v 3 such that Proof. Suppose first that G contains an induced C 6 . For each vertex v, define r(v) as the number of vertices reached from v in S(G). For each C ⊆ V (G), define R(C) = v∈C r(v).
From among all the induced C 6 's of G, chose the cycle v 0 , . . . , v 5 such that: (1) there is no induced C 6 of G containing a vertex in MAX(v 0 ), and (2) R({v 0 , . . . , v 5 }) is minimum among those cycles containing v 0 .
We claim that Finally, consider statement (iii). Clearly, (iii) is true when (2), we obtain that σ(v i ) must be adjacent to v 0 , v 2 , and v 4 , or otherwise v i could be replaced by σ(v i ) so as to obtain an induced C 6 with lower value of R.
Since G is C 4 -dominated and v 0 , v 2 , v 4 are pairwise not dom-comparable, it follows that σ(v i ) dominates v 1 , v 3 , and v 5 . Thus, none of σ(v 1 ), σ(v 3 ), and σ(v 5 ) is equal to ⊥. Repeating the above arguments for i = 1, 3, and 5, we obtain that σ(v i ) dominates v j for every i, j ∈ {1, 3, 5}. Then (iii) follows, because σ(v) = min N + S(G) (v), for every v ∈ V (G). For the converse, suppose that there are two paths v 0 , v 1 , v 2 , v 3 , and v 0 , v 5 , v 4 , v 3 that satisfy (i)-(iii). Observe that it is enough to prove that v 1 ∈ N (v 4 ) and v 5 ∈ N (v 2 ). Indeed, in this case v 1 = v 5 , thus v 0 , . . . , v 5 is a cycle of G and, as G is triangle-free, this cycle is induced.
Suppose, to obtain a contradiction, This cycle is represented by some S ∈ S. Consider the following cases.
(ii). Then, v(s) does not dominate w(S), thus S is an unsafe triple of S. Consequently, Replacing v 1 by v 5 above, we obtain that v 5 ∈ N (v 2 ) as well. Thus, v 0 , . . . , v 5 is an induced cycle of G.
Lemma 5.1 implies Algorithm 6. Its input is the graph G, and its output is a message if G contains no induced C 6 , or an induced C 6 otherwise. Thus, Algorithm 6 is just a replacement of Algorithm 4. We discuss the algorithm, its correctness, and its complexity in the next paragraphs.
Algorithm 6 Induced C 6 of a triangle-free C 4 -dominated graph. Input: a degree ordered graph G that is C 4 -dominated and has no triangles. Output: if existing, an induced C 6 of G; otherwise, a message.

Correctness of Algorithm 6
Algorithm 6 either halts at Step 9 or it runs until its termination. In this paragraph, we prove that Algorithm 6 halts at Step 9 if and only if G contains an induced C 6 . Furthermore, when Algorithm 6 halts at Step 9, its output is an induced C 6 of G. Suppose first that Algorithm 6 halts at Step 9, when the i-th iteration of Loop 4-9 is being executed. Examine the state of the variables immediately before Step 9 is executed. By Steps 3, 5 and 7, w 3 ∈ N (w 2 w 4 ) \ N (v i ), and there are two vertices w 1 ∈ N (v i w 2 ) and w 5 ∈ N (v i w 4 ) such that σ(w 1 ) = σ(w 3 ) = σ(w 5 ). By Steps 5 and 6, v i > max{w 1 , w 2 , w 4 , w 5 }, so, by Lemma 5.1, v i , w 1 , . . . , w 5 induce a C 6 in G.
For the converse, suppose that G contains an induced C 6 . By Lemma 5.1, there must be two paths w 0 , w 1 , w 2 , w 3 and w 0 , w 5 , w 4 , w 3 satisfying conditions (i)-(iii) of the lemma. Vertex w 0 gets some name v i in Algorithm 6, for some 1 ≤ i ≤ n. If Algorithm 5.1 halts before the i-th iteration of Loop 4-9, then there is nothing to prove. So, suppose that the i-th iteration of Loop 4-9 is executed, and consider its effects. By Step 5 and Lemma 5.1 (i), w 1 , w 5 ∈ N 1 . By Step 6 and Lemma 5.1 (i)-(ii), w 2 , w 4 ∈ N 2 . By Step 3 and Lemma 5.1 (iii), w 3 belongs to both X(w 2 , σ(w 1 )) and X(w 4 , σ(w 5 )), thus, by Step 7 and Lemma 5.1 (i), w 3 ∈ N 3 (w 2 ) ∩ N 3 (w 4 ). Therefore, the condition of Step 8 is satisfied, and Algorithm 6 halts at Step 9.

Implementation and complexity of Algorithm 6
The data structures involved in Algorithm 6 are a little harder than those in Algorithm 5. The input graph G is implemented with adjacency lists, i.e., the list N (v) is stored for each v ∈ V (G). While N (v) is being iterated, say the next vertex is w, O(1) time access to the position that v occupies in N (w) is required. This can be achieved by keeping a pointer to this position paired with w in N (v). The value of σ(v) is stored together with the vertex v. Given a vertex v, O(1) time access to the set children(v) = {w ∈ V (G) | σ(w) = v} is also required. So, a list with the elements of children(v) is stored together with v. A list with the elements of X(v, w) is stored for every vw ∈ E(G). The list X(v, w) has to be obtained in O(1) time while w is being examined in a traversal of N (v). Thus, X(v, w) is also paired with w in N (v). Furthermore, for each z ∈ X(v, w), while traversing N (z) with v as the next vertex, the list X(v, w) has to be accessed in O(1) time. So, a reference x(z, v) pointing to X(v, w) is paired together with v in the list N (z). Recall that {X(v, w)} w∈N (v) is a partition of N (v); indeed, z belongs only to X(v, σ(z)). Thus there is a unique pointer x(z, v) associated with v in N (z). Finally, sets N 1 , N 2 are implemented as n-position vectors so that membership can be tested in O(1) time.
Consider the time complexity of Algorithm 6. To compute σ at Step 2 we first set σ(v) as the out-neighbor of v in U (G) by calling Algorithm 5; next, we traverse the family S given by method C4 in [5] so as to update the values of σ accordingly. All these steps take O(mα(G)) time. Next, by traversing V (G), we compute children(v) in O(n) time. For computing the sets X(v, w) at Step 3, for a given v ∈ V (G), we use a three step procedure. First, we traverse N (v) and set X(v, w) = ∅, for each w ∈ N (v). Second, we sort N (v) according to the value of σ, i.e., w appears before z in N (v) only if σ(w) ≥ σ(z). Third, we traverse N (v) once again and, for each w ∈ N (v), we insert w into X(v, σ(w)). These steps take O(d(v)) time each; in particular, the third step can be done as in a merging procedure, because N (v) is sorted according to the values of σ. Therefore, Step 3 takes O(n + m) time. Before executing Step 4, we should update the values of the pointers x(z, v). For this, we traverse each N (v) once again as in the merging step and, when z is being traversed so as to be inserted in X(v, w), we access the position of v inside N (z) in O(1) time, and set x(z, v) to point to X(v, w). Therefore, the update of the x pointers takes O(n + m) time as well. To evaluate the time required by Loop 4-9, consider a vertex v i ∈ V (G).
Step 5 requires only a traversal of N (v i ), so it takes O(d(v i )). For Step 6, it is enough to traverse N (w), for each w ∈ N 1 , while σ is accessed in O(1) time. Therefore, Step 6 takes O( w∈N (v i ) d(w)) time. Steps 7 and 8 are implemented together, as follows. For Step 7, we traverse each w 2 ∈ N (w 1 ) ∩ N 2 , for every w 1 ∈ N 1 , and mark every vertex w 3 ∈ X(w 2 , σ(w 1 )) \ N 1 with the value (w 1 , w 2 ). The condition at Step 8 is true for v i if and only if some vertex w 3 is marked twice. Recall that testing membership in N 1 and N 2 takes O(1) time, while X(w 2 , σ(w 1 )) can be obtained in O(1) time while examining w 2 in a traversal of N (w 1 ) with the pointer x(w 1 , w 2 ) (notice that w 1 ∈ X(w 2 , σ(w 1 )) by definition, so x(w 1 , w 2 ) was previously recorded). As each vertex outside N 1 is marked at most twice, the time required by Steps 7 and 8 is O(n + w 1 ∈N 1 d(w 1 )). Finally, if the condition at Step 8 is true, then we obtain a vertex w 3 that has two marks, say (w 1 , w 2 ) and (w 5 , w 4 ). These marks indicate that w 3 ∈ X(w 2 , σ(w 1 )) ∩ X(w 4 , σ(w 5 )), this v i , w 1 , . . . , w 5 is a valid output for Step 9. Clearly, this step takes O(1) time. Summing up, by [5], Algorithm 6 has time complexity As for the space complexity, recall again that w belongs only to X(v, σ(w)), for every edge vw. Therefore, as each call to method C4 takes O(m) space, Algorithm 6 requires O(n + m) bits.

Finding an induced C 5 efficiently
An induced C 5 can be found in O(n 2 + mα(G)) time and linear space, if existing, with a procedure similar to Algorithm 6. We omit the implementation details, that follow from the next lemma.
Lemma 5.2. Let G be a degree ordered graph that is C 4 -dominated and contains no triangles. Then G contains an induced C 5 if and only if it contains a cycle v 0 , . . . , v 4 such that The main theorem of this paper is the following corollary.

Maximal bicliques of C 4 -dominated graphs with no triangles
In this section we focus on the problem of enumerating all the maximal bicliques of a C 4dominated graph with no triangles. At the end of this section, we also devote a paragraph to discuss some biclique problems on this class of graphs.
Observe that every pair of twin vertices of any graph G belong to the same maximal bicliques. Thus, every maximal set of twin vertices can be identified into one vertex so as to obtain a twin-free graph H. Then, for every maximal biclique of H, we can replace its vertices with the set that identifies, so as to obtain a maximal biclique of G. So, in this section we assume that G is a degree ordered graph that is C 4 -dominated and has no triangles nor twins. For Observe that, since G is triangle-free, B(v) is a biclique of G. The following theorem shows that {B(v) | v ∈ V (G)} is precisely the family of maximal bicliques of G. Theorem 6.1. Let G be a degree ordered graph that is C 4 -dominated and has no triangles nor twins, and B be a biclique of G. Then, B is a maximal biclique of G if and only if B = B(v) for some v ∈ V (G).
Proof. Suppose first that B is a maximal biclique of G, and let {B 1 , B 2 } be its bipartition. Fix v 1 = min B 1 and v 2 = min B 2 . To obtain a contradiction, suppose that neither B 1 ⊆ Dom(v 1 ) nor B 2 ⊆ Dom(v 2 ). Then, there are two vertices w 1 ∈ B 1 and w 2 ∈ B 2 that do not dominate v 1 and v 2 , respectively. On the other hand, since v 1 < w 1 and v 2 < w 2 , we obtain that v 1 and v 2 do not dominate w 1 and w 2 , respectively. But this implies that v 1 , v 2 , w 1 , w 2 is a nondominated C 4 of G, a contradiction. Therefore, without loss of generality, we may assume that B 1 ⊆ Dom(v 1 ). Now, as B is maximal, it follows that all the vertices that dominate v 1 are included in B 1 and all the neighbors of v 1 are included in B 2 .
The converse is trivial.
Corollary 6.2. A C 4 -dominated graph with no triangles has at most n maximal bicliques.
Say that v ∈ V (G) is a repeated vertex if |Dom(v)| = |N (w)| and |N (v)| = |Dom(w)|, for some w ∈ N (v) ∩ MAX(v). The following lemma shows how to avoid the listing of duplicate maximal bicliques. Recall that S(G) is obtained from U (G) by inserting the edge w → v, for every safe (v, w) ∈ S. Say that w ∈ V (G) is degenerated when w has no out-neighbors in S(G) and N (w) ⊆ MAX(w). We define the dominator set of w according to the following rules. If L(S) = {w} for some S ∈ S, then the dominator set of w is empty. Otherwise, the dominator set of w is N (z) \ {w}, where z = min N (w). The following lemma shows that degenerated vertices, together with their dominator sets, are all we need to build the domination digraph from S(G). Lemma 6.4. Let G be a degree ordered graph that is C 4 -dominated and has no triangles nor twins, and w ∈ V (G) be degenerated. Then, w is dominated by v ∈ V (G) if and only if v belongs to the dominator set of w.
Proof. Suppose first that w is dominated by v ∈ V (G), and let z = min N (w). Observe that v < z; otherwise, (v, w) would be a safe triple, contradicting the fact that w has no out-neighbors in S(G). Then, since v dominates w, it follows that v ∈ L(S) for every S ∈ S such that w ∈ L(S). Therefore, L(S) = {w} for every S ∈ S, thus the dominator set of w is N (z) \ {w}. Hence, v belongs to the dominator set of w.
For the converse, suppose that v belongs to the dominator set of w, and call z = min N (w). By definition, v ∈ N (z). Note that, if N (w) = {z}, then w is dominated v. Suppose then that d(w) > 1, and take a ∈ N (w) \ {z}. Since N (w) ⊆ MAX(w), we obtain that a > z > w, thus (a, z) ∈ S. Also, L(a, z) = {w}, because otherwise the dominator set of w would be empty, and this cannot happen as it contains v. Furthermore, since w has no out-neighbors in S(G) and |L(a, z)| > 1, it follows that (a, z) is a safe triple of S. Therefore, a dominates z, hence a is adjacent to v. Since a is any vertex in N (w) \ {z}, it follows that v is adjacent to all the vertices in N (w), hence v dominates w.
The domination digraph of G is the digraph D(G) that is obtained from S(G) by inserting an edge w → v, for every degenerated w ∈ V (G) and every v in the dominator set of w. As its name indicates, D(G) encodes all the dominations in G, as the following theorem resumes. Theorem 6.5. Let G be a degree ordered graph that is C 4 -dominated and has no triangles nor twins, and v, w ∈ V (G). Then, v dominates w in G if and only if there is a path from w to v in D(G). Furthermore, if v dominates w and w → D(G) v, then there is a path from w to v in U (G).
Proof. Suppose that w is dominated by v. If w is degenerated, then w → v is an edge of D(G), by Lemma 6.4. Otherwise, either w has a neighbor in MIN(w) or w has an out-neighbor in S(G). Consider these alternatives: Alternative 1: w is adjacent to z ∈ MIN(w). In this case, z ∈ L(v, w), thus (v, w) is a safe triple of S. Therefore, v is an out-neighbor of w in both S(G) and D(G).
Alternative 2: N (w) ⊆ MAX(w) and d + U (G) (w) = 0. In this case, w has an out-neighbor z in S(G) such that (z, w) is a safe triple of S. Then, as v dominates w, it follows that v is adjacent to all the vertices in L(z, w). Therefore, L(v, w) = ∅, thus (v, w) is a safe triple of S. Consequently, w → v is an edge of both S(G) and D(G).
Alternative 3: w has an out-neighbor in U (G), say z. For this to happen, there must be an unsafe triple S ∈ S such that L(S) contains both w and z. If v(S) > v, then L(S) contains also v, and so there is a path from w to v in both U (G) and D(G). Otherwise, v(S) < v and, since v dominates w, it follows that v(S) ∈ L(v, w). Hence, (v, w) is a safe triple of S, and w → v is an edge of both S(G) and D(G).
The converse follows from Lemmas 4.1 and 6.4 and the definition of D(G), while the furthermore statement follows from the alternatives above. Corollary 6.6. Let G be a degree ordered graph that is C 4 -dominated and has no triangles nor twins. For every v ∈ V (G), Dom(v) is equal to the set of ancestors of v in D(G).
The above corollary can be used to improve the algorithm for listing the maximal bicliques, as it is shown in Algorithm 7. The correctness of Algorithm 7 follows from Lemmas 6.3 and 6.4 and Corollary 6.6. With respect to its implementation, the domination matrix is represented simply with successors and predecessors lists, d(v) and dom(v) are stored together with v, and R is stored in an vertex with n positions, so that each membership query takes O(1) time.
Algorithm 7 Maximal bicliques of a C 4 -dominated graph with no triangles. Input: a degree ordered graph G that is C 4 -dominated and has no triangles nor twins. Output: a listing, without duplicates, of all the maximal bicliques in G.

Concluding remarks and open problems
In this paper we devised an efficient algorithm for the recognition of hereditary biclique-Helly graphs. The algorithm is strongly dependent on the C4 method developed by Chiba and Nishizeki in [5]. The techniques developed by these authors were extended recently by Lin et al. in [21]. In the latter paper, these techniques are used to recognize some graph classes that are defined in terms of the true domination relation, such as cop-win graphs and strongly chordal graphs. A vertex v is true dominated by a vertex w when N (v) ∪ {v} ⊆ N (w) ∪ {w}. One of the appealing aspects of our algorithm, is that it has to deal with the domination relation.
In Section 5, we showed how to find an induced C 6 in a C 4 -dominated graph with no triangles. As part of Algorithm 6, we had to find some vertices that appear at distance at most 3 from a given vertex v. We showed how to do this in O(n) time, by traversing each vertex outside N (v) at most twice. However, not all the vertices outside N (v) are at distance 3 from G, unless G is somehow dense. An open question that follows is, then, can an induced The somehow opposite question is also interesting. Instead of implicitly storing each domination of the first class as a path, we can store it explicitly. That is, we can insert an edge w → v into D(G) for every path of U (G) beginning at w and ending at v. Such digraph would require O(o) space. We know that o < n 2 ; however, for w to be dominated by a vertex at distance k from v in D(G), there should be at least k vertices in N (w) \ N (v) (always assuming that G is twin-free). Thus if D(G) has many large paths, then G is dense and α(G) is large. So, it would be nice to prove or disprove that o ∈ O(α(G)m), or that o ∈ O(m 3/2 ).
Let B be the class of graph formed by those graphs G such that {B(v)} v∈V (G) is the family of maximal bicliques of G. By Theorem 6.1, every C 4 -dominated graph with no triangles belongs to B. The converse is false, since the graph in Figure 2 belongs to B and it contains a non-dominated C 4 . The graphs in B have at most n bicliques, and Lemma 6.3 holds for all the graphs in B. Hence, the simple algorithm that lists {B(v)} v∈V (G) by using the domination matrix, implies that the maximal bicliques of the graphs in B can be enumerated in O(nm) time and O(n 2 ) space. Is it possible to list the maximal bicliques of the graphs in B faster? Is it possible obtain the same time and space bounds of Algorithm 7 for a larger class of graphs? Figure 2: A graph G that contains a non dominated C 4 , whose family of maximal bicliques is {B(v)} v∈V (G) .