*Article* **Removing Twins in Graphs to Break Symmetries**

### **Antonio González 1 and María Luz Puertas 2,\***


Received: 7 October 2019; Accepted: 14 November 2019; Published: 15 November 2019

**Abstract:** Determining vertex subsets are known tools to provide information about automorphism groups of graphs and, consequently about symmetries of graphs. In this paper, we provide both lower and upper bounds of the minimum size of such vertex subsets, called the determining number of the graph. These bounds, which are performed for arbitrary graphs, allow us to compute the determining number in two different graph families such are cographs and unit interval graphs.

**Keywords:** graph; automorphism group; determining number; cograph; unit interval graph

**MSC:** 05C25; 05C76

### **1. Introduction and Preliminaries**

The graph isomorphism problem is not known to be solvable in polynomial time nor to be NP-complete (see [1]) and moreover, it is well known that constructing the automorphism group is at least as difficult (in terms of computational complexity) as solving the graph isomorphism problem (see [2]). Therefore, it is interesting to provide tools that give information about such automorphism groups.

Determining sets were introduced simultaneously by Boutin [3] and Erwin and Harary [4] (they called them fixing sets) in 2006, to deal with the problem of identifying the automorphism group of a graph. These sets are a generalization of resolving sets, independently introduced by Slater [5] and Harary and Melter [6], motivated by the problem of identifying the location of an intruder in a network, by means of distances. Resolving sets and some related sets were recently studied in [7–12]. Determining sets and resolving sets were jointly studied (see [13,14]). Furthermore, determining sets are closely related to the notion of "symmetry breaking", firstly studied by Alberson and Collins [15] in 1996. The interest of this notion, beyond the information it provides about the automorphism group, was pointed out by Bailey and Cameron in their survey paper [16] of 2011, citing Babai's words [17]:

"In fact, breaking regularity is one of the key tools in the design of algorithms for graph isomorphism; the graph isomorphism problem has therefore been one of the strongest motivators of the study of all sorts of resolving/discriminating sets, and perhaps the only deep motivator of the study of those in contexts where no group is present."

In this paper, we deepen the study of determining sets of general graphs, providing both lower and upper bounds of this parameter in terms of the so-called twin graph. We follow the same spirit as other works that find general bounds involving other aspects of graphs, such as the number of automorphisms [3] or the number of orbits [4]. Furthermore, our bounds allow us to obtain the determining number of some graph classes (cographs and unit interval graphs), which is a problem of interest due to the NP-hardness of the computation of this parameter in arbitrary graphs [18]. Indeed, many papers in the literature are devoted to study the determining number of specific graph families: trees [4,13], Cartesian products [4,13,19], Kneser and Johnson graphs [3,20], twin-free graphs [14], and Cayley graphs [21]; among others.

We now introduce the definitions and notations that we shall need throughout the rest of the paper. All graphs considered here are finite, simple and undirected. An *automorphism* of a graph *G* is a bijective mapping *φ* : *V*(*G*) −→ *V*(*G*) so that *φ*(*u*)*φ*(*v*) ∈ *E*(*G*) if and only if *uv* ∈ *<sup>E</sup>*(*G*). The set Aut(*G*) of all automorphisms of *G* forms a group under composition, and its identity element is denoted by *idG*. We recall the definition of determining set and determining number from [3].

**Definition 1** ([3])**.** *A subset S of the vertices of a graph G is called a determining set if whenever g*, *h* ∈ Aut(*G*) *agree on the vertices of S, they agree on all vertices of G. That is, S is a determining set if whenever g and h are automorphisms with the property that g*(*s*) = *h*(*s*) *for all s* ∈ *S, then g* = *h. The determining number of a graph G is the smallest integer r so that G has a determining set of size r. Denote this by* Det(*G*)*.*

We quote from [3] the following example illustrating this concept.

**Example 1.** *The Petersen graph is shown in Figure 1, where the vertices are identified with the* 2*-subsets of a* 5*-set. The Persersen graph has a determining number equal to three and examples of minimum determining sets of this graph are S* = {{1, <sup>2</sup>}, {2, <sup>4</sup>}, {2, 5}} *and T* = {{1, <sup>2</sup>}, {2, <sup>3</sup>}, {3, 4}} *(see [3]).*

**Figure 1.** The Petersen graph.

The following useful characterization of determining sets, in terms of the stabilizer of a vertex subset, can be also found in [3]. The *stabilizer* of a vertex subset *S* ⊆ *V*(*G*) is the automorphism subset Stab*G*(*S*) = {*φ* ∈ Aut(*G*) : *φ*(*u*) = *u*, ∀*u* ∈ *<sup>S</sup>*}. Observe that Stab*G*(*S*) = - *s*∈*S* Stab*G*({*s*}), and moreover *S* ⊆ *T* implies that Stab*G*(*T*) ⊆ Stab*G*(*S*).

**Proposition 1** ([3])**.** *Let S be a subset of the vertices of a graph G. Then S is a determining set of G if and only if* Stab*G*(*S*) = {*idG*}*.*

We now quote from [22] the construction of the twin graph *G*<sup>1</sup> associated with a given graph *G*. This graph will be the main tool to obtain our new bounds. For a vertex *u* ∈ *<sup>V</sup>*(*G*), the open and the closed neighborhood of *u* are respectively denoted by *<sup>N</sup>*(*u*) and *<sup>N</sup>*[*u*] and the degree of *u* is *deg*(*u*) = |*N*(*u*)|. We say that two different vertices *u*, *v* ∈ *V*(*G*) are *twins* when *<sup>N</sup>*(*u*) = *<sup>N</sup>*(*v*) or *<sup>N</sup>*[*u*] = *<sup>N</sup>*[*v*]. This notion induces the following equivalence relation on *<sup>V</sup>*(*G*): *u* ≡ *v* if and only if either *u* = *v* or *u* and *v* are twins. This allows defining the *twin class* of *u* as [*u*] = {*v* ∈ *V*(*G*) : *u* ≡ *<sup>v</sup>*}. We say that a twin class is *trivial* if it contains just one vertex and *non-trivial* in other case. When each twin class is trivial, we say that *G* is *twin-free*. For *S* ⊆ *<sup>V</sup>*(*G*), we write [*S*] = <sup>∪</sup>*u*∈*<sup>S</sup>*[*u*].

Assuming that there are exactly *n*(1) different equivalence classes, we can consider the partition [*<sup>u</sup>*1], ... , [*un*(1)] of *V*(*G*) induced by them, where every *ui* is a representative of [*ui*]. The twin graph of *G*, denoted by *G*1, is the graph with vertex set the set of equivalence classes of *G*. The vertex of *G*<sup>1</sup>

representing the equivalence class [*u*] is denoted by *u*1. The edge set is *E*(*G*<sup>1</sup>) = {*u*1*v*<sup>1</sup> : *uv* ∈ *<sup>E</sup>*(*G*)}. For *S* ⊆ *<sup>V</sup>*(*G*), we denote *S*1 = {*u*<sup>1</sup> ∈ *<sup>V</sup>*(*G*<sup>1</sup>): *u* ∈ *<sup>S</sup>*}.

Please note that *G*<sup>1</sup> is well defined, as shown in the following lemma.

**Lemma 1** ([22])**.** *Let G*<sup>1</sup> *be the twin graph of a graph G. Then, u*1*v*<sup>1</sup> ∈ *E*(*G*<sup>1</sup>) *if and only if xy* ∈ *E*(*G*) *for all x* ∈ [*u*]*,y* ∈ [*v*]*.*

We illustrate the construction of the twin graph of a given graph *G* with the following example.

**Example 2.** *A graph G and its twin graph G*<sup>1</sup> *are shown in Figure 2a,b, respectively. Please note that u*2 *and u*4 *are twin vertices of G, so u*12 = *u*14*in G*1*.*

**Figure 2.** A graph *G* and its twin graph *G*1.

This paper is organized as follows. In Section 2 we use the twin graph *G*<sup>1</sup> to provide a lower bound of the determining number of an arbitrary graph *G*, whereas in Section 3 we use similar tools to give an upper bound. Section 4 is devoted to use these bounds to compute the determining number of cographs and unit interval graphs. We conclude the paper in Section 5 with some remarks and future work.

### **2. A Lower Bound of Det(***G***) from Removing Twins**

In this section, we present a new lower bound of the determining number of a graph. A lower bound in terms of both orders of *G* and *G*<sup>1</sup> is already known (see [14]).

**Lemma 2** ([14])**.** *Let G be a graph of order n such that G*<sup>1</sup> *has order <sup>n</sup>*(1)*. Then,*

$$n - n^{(1)} \le \text{Det}(G).$$

We present a different approach that relates the determining numbers of *G* and *G*1. To this end, we need to define the following natural mapping between the automorphism groups of both *G* and *G*1:

$$
\tilde{\mathcal{T}} : \text{Aut}(G) \to \text{Aut}(G^1)
$$

given by T (*φ*)(*u*<sup>1</sup>) = *φ*(*u*)1. In the following lemma, we show that this mapping is a well-defined group automorphism.

**Lemma 3.** *For every graph G, the mapping* T *satisfies the following properties:*

*1.* T *is well-defined.*


vertices such that *v*1 = *u*1, then *u*, *v* are twin vertices and *φ*(*v*), *φ*(*u*) are also twin vertices, that means that *φ*(*v*)<sup>1</sup> = *φ*(*u*)1. Therefore T *G*(*φ*)(*u*<sup>1</sup>) = *φ*(*u*)<sup>1</sup> = *φ*(*v*)<sup>1</sup> = T (*φ*)(*v*<sup>1</sup>).

On the other hand, for *u*1, *v*1 ∈ *<sup>V</sup>*(*G*<sup>1</sup>), Lemma 1 yields *u*1*v*<sup>1</sup> ∈ *E*(*G*<sup>1</sup>) if and only if *uv* ∈ *<sup>E</sup>*(*G*), or equivalently *φ*(*u*)*φ*(*v*) ∈ *<sup>E</sup>*(*G*), that is *φ*(*u*)<sup>1</sup>*φ*(*v*)<sup>1</sup> = T (*φ*)(*u*<sup>1</sup>)T (*φ*)(*v*<sup>1</sup>) ∈ *<sup>E</sup>*(*G*<sup>1</sup>), as desired. 2. Clearly T (*φ* ◦ *φ*)(*u*<sup>1</sup>)=(*φ* ◦ *φ*)(*u*)<sup>1</sup> = *φ*(*φ* (*u*))<sup>1</sup> = T (*φ*)(*φ* (*u*)<sup>1</sup>) = T (*φ*) ◦ T (*φ*)(*u*<sup>1</sup>), so T (*φ* ◦ *φ*) = T (*φ*) ◦ T (*φ* ).

We will also need the following definition of a special type of vertex subset. We say that a set Ω ⊆ *V*(*G*) is a *plenty twin set* if no pair of vertices of *V*(*G*) \ Ω are twins. Equivalently, Ω is a plenty twin set if it contains all but at most one vertices of every non-trivial twin class. In particular, this gives that every determining set is a plenty twin set (see [14], proof of Lemma 3.3). However, there are plenty twin sets that are not determining sets, as we show with the following example.

**Example 3.** *The graph G in Figure 3 has exactly two non-trivial twin classes,* [*<sup>u</sup>*1] = {*<sup>u</sup>*1, *<sup>v</sup>*1}, [*<sup>u</sup>*2] = {*<sup>u</sup>*2, *<sup>v</sup>*2}*, therefore* {*<sup>u</sup>*1, *<sup>u</sup>*2} *is a plenty twin set. Moreover, the mapping φ satisfying φ*(*w*) = *w for every vertex w* ∈ {*<sup>u</sup>*, *u*1, *v*1, *u*2, *<sup>v</sup>*2}*, φ*(*<sup>a</sup>*1) = *a*2, *φ*(*<sup>a</sup>*2) = *a*1, *φ*(*b*1) = *b*2, *φ*(*b*2) = *b*1 *is a non-trivial graph automorphism fixing both u*1, *u*2*, so* {*<sup>u</sup>*1, *<sup>u</sup>*2} *is not a determining set of G.*

**Figure 3.** {*<sup>u</sup>*1, *<sup>u</sup>*2} is a plenty twin set but it is not a determining set.

A basic property of plenty twin sets is the following.

**Lemma 4.** *If* Ω *is a plenty twin set of a graph G, then* Ω<sup>1</sup> *is a plenty twin set of G*1*.*

**Proof.** On the contrary, let us assume that there is a pair of twins *x*1, *y*1 ∈ *V*(*G*<sup>1</sup>) \ Ω1. Thus, we have that *x*, *y* ∈ *V*(*G*) \ [Ω], and so [*x*] = {*x*} and [*y*] = {*y*}, because Ω is a plenty twin set.

In particular, *x*, *y* are not twins in *G*, and so we may assume without loss of generality the existence of a vertex *z* ∈ *V*(*G*) \ {*<sup>x</sup>*, *y*} such that *z* ∈ *NG*(*x*) and *z* ∈ *NG*(*y*). By Lemma 1, *z*1 ∈ *NG*1 (*x*<sup>1</sup>) and *z*1 ∈/ *NG*1 (*y*<sup>1</sup>). This contradicts the fact that *x*1 and *y*1 are twins.

In the following lemma, we present the general behaviour of the stabilizer of a vertex subset under the mapping T and also the special situation of plenty twin sets.

**Lemma 5.** *Let G be a graph. For any subset S* ⊆ *<sup>V</sup>*(*G*)*, it holds that*

$$
\check{\mathcal{T}}(\mathsf{Stab}\_{\mathsf{G}}(\mathcal{S})) \subseteq \mathsf{Stab}\_{\mathcal{G}^1}(\mathcal{S}^1).
$$

*Furthermore, if S is a plenty twin set, then the equality holds.*

**Proof.** Let *φ* ∈ Aut(*G*) such that *φ*(*u*) = *u* for all *u* ∈ *S*. Thus, T (*φ*)(*u*<sup>1</sup>) = *φ*(*u*)<sup>1</sup> = *u*1, and so T (*φ*) ∈ Stab*G*<sup>1</sup> (*S*<sup>1</sup>), which gives the desired inclusion.

Now, assume that *S* is a plenty twin set and let *ψ* ∈ Stab*G*<sup>1</sup> (*S*<sup>1</sup>), and let us construct the mapping *φ* : *V*(*G*) −→ *V*(*G*) in the following way. If *u* ∈ *V*(*G*) satisfies *u*1 ∈ *S*1 then we define *φ*(*u*) = *u* (in

particular *φ*(*u*) = *u* for all *u* ∈ *S*). In this case, it is clear that *ψ*(*u*<sup>1</sup>) = *u*1 = *φ*(*u*)1. On the other hand, if *u* ∈ *V*(*G*) satisfies *u*1 ∈ *V*(*G*<sup>1</sup>) \ *S*1 then, *ψ*(*u*<sup>1</sup>) ∈ *V*(*G*<sup>1</sup>) \ *S*1, because *ψ* ∈ Stab*G*<sup>1</sup> (*S*<sup>1</sup>). Thus there exists *v*1 ∈ *V*(*G*<sup>1</sup>) \ *S*1 such that *ψ*(*u*<sup>1</sup>) = *v*1. Using that *S* is a plenty twin set, we obtain that [*v*] = {*v*}, and we define *φ*(*u*) = *v*. Please note that in this case, again *ψ*(*u*<sup>1</sup>) = *v*1 = *φ*(*u*)1.

Let us check that *φ* is an automorphism of *G*. Indeed, *uv* ∈ *E*(*G*) if and only if *u*1*v*<sup>1</sup> ∈ *<sup>E</sup>*(*G*<sup>1</sup>), which is equivalent to *φ*(*u*)<sup>1</sup>*φ*(*v*)<sup>1</sup> = *ψ*(*u*<sup>1</sup>)*ψ*(*v*<sup>1</sup>) ∈ *E*(*G*<sup>1</sup>) since *ψ* is an automorphism of *G*1. Again, this is equivalent to *φ*(*u*)*φ*(*v*) ∈ *<sup>E</sup>*(*G*), by Lemma 1. This proves that *φ* ∈ Aut(*G*).

By construction, *ψ*(*u*<sup>1</sup>) = *φ*(*u*)<sup>1</sup> = <sup>T</sup>(*φ*)(*u*<sup>1</sup>) for all *u* ∈ *<sup>V</sup>*(*G*), and so *ψ* = <sup>T</sup>(*φ*). Furthermore, *φ* fixes each element of *S*, which means *φ* ∈ StabG(S). Therefore, T (Stab*G*(*S*)) ⊇ Stab*G*<sup>1</sup> (*S*<sup>1</sup>).

We now present the announced lower bound of the determining number of a graph, in terms of the corresponding parameter of its twin graph.

**Theorem 1.** *If S is a determining set of a graph G then S*1 *is a determining set of the twin graph G*1*. Consequently,* Det(*G*<sup>1</sup>) ≤ Det(*G*) *and this bound is tight.*

**Proof.** Let *S* be a determining set of *G*. Thus, *S* is a plenty twin set and Lemma 5 gives

$$
\tilde{\mathcal{T}}\_G(\text{Stab}\_G(\mathcal{S})) = \text{Stab}\_{G^1}(\mathcal{S}^1). \tag{1}
$$

On the other hand, T is a group homomorphism and Stab*G*(*S*) = {*idG*}, which implies that T (Stab*G*(*S*)) = T ({*idG*}) = {*idG*1 }. Combining this with Equality (1), we obtain that Stab*G*<sup>1</sup> (*S*<sup>1</sup>) = {*idG*1 } and *S*1 is a determining set of *G*1. Furthermore, |*S*<sup>1</sup>|≤|*S*| and therefore Det(*G*<sup>1</sup>) ≤ Det(*G*).

To prove the tightness of the bound, let *Hs*, with *s* ≥ 1, be a graph with vertex set *V*(*Hs*) = {*<sup>u</sup>*, *<sup>u</sup>*0}∪{*<sup>u</sup>*1, *v*1, ... , *us*, *vs*} and edge set *E*(*Hs*) = {*uui* : 0 ≤ *i* ≤ *s*}∪{*uvi* : 1 ≤ *i* ≤ *s*}∪{*uivi* : 1 ≤ *i* ≤ *s*}; its twin graph *H*1*s* is a star on *s* + 2 vertices (see Figure 4). It is easy to check that *S* = {*<sup>u</sup>*1, ... , *us*} and *S*1 = {*u*11, ... , *u*1*s* } are minimum determining sets of *Hs* and *H*1*s* , respectively, and so Det(*Hs*) = Det(*H*1*s*) = *s*.

In order to compare our new lower bound with that showed in Lemma 2, we provide the following two examples.

**Example 4.** *Consider the graph G with s* + 2 *vertices consisting of a complete graph with s* ≥ 3 *vertices, a vertex v that is not a neighbor of any vertex in the complete graph and a vertex u which is a neighbor of v and of every vertex in the complete graph (see Figure 5a). Clearly G*<sup>1</sup> *is a path with three vertices (see Figure 5b), so n*(1) = 3 *and* Det(*G*<sup>1</sup>) = 1*. Therefore* Det(*G*<sup>1</sup>) = 1 < *n* − *n*(1) = *s* + 2 − 3 = *s* − 1 *and in this case, the lower bound in Lemma 2 is greater than the new one.*

**Figure 5.** Det(*G*<sup>1</sup>) = 1 < *n* − *n*(1) = *s* − 1.

**Example 5.** *Consider the graph G, with n* = 3*s* + 3 *vertices (s* ≥ 3*), shown in Figure 6a, whose twin graph G*<sup>1</sup> *is depicted in Figure 6b. In this case, n*(1) = *n* − 1 *and S* = {*u*11, *u*12, ... *<sup>u</sup>*1*s*−<sup>1</sup>} *is a minimum determining set of G*1*, so* Det(*G*<sup>1</sup>) = *s* − 1*. Therefore n* − *n*(1) = 1 < Det(*G*<sup>1</sup>) *and our new lower bound is a better option than the old one.*

Therefore, both lower bounds are independent and we obtain the following corollary.

**Corollary 1.** *Let G be a graph. Then, it holds that*

$$\max\{n - n^{(1)}, \text{Det}(G^1)\} \le \text{Det}(G).$$

### **3. An Upper Bound on Det(***G***) from Removing Twins**

In the previous section, we explored the relationship between the determining number of graphs *G* and *G*1, and thereby providing a new general lower bound for the determining number of a graph. We now focus on using such relationship to obtain an upper bound for the determining number.

Our strategy is now to obtain a twin-free graph by iterating the process of building *G*<sup>1</sup> from *G*. Contrary to what one might think, the twin graph *G*<sup>1</sup> of a graph *G* is not twin-free in general (see Figure 7).

**Figure 7.** *G*<sup>1</sup> is not necessarily a twin-free graph.

This fact suggests the iterative process of defining, for any integer *i* ≥ 2, the graph *Gi* as the twin graph of *<sup>G</sup>i*−1; its order is denoted by *<sup>n</sup>*(*i*). So, having in mind that *G* is a finite graph, we can iterate this process thus obtaining a graph sequence *G* = *G*0, *G*1, ... , *Gr*, where *Gr* is the only twin-free

graph of the sequence. Clearly, if *G* is a non twin-free graph with *n* vertices, then 1 ≤ *r* ≤ *n* − 1. The following example illustrates the extreme case *r* = *n* − 1.

**Example 6.** *In Figure 8 we show a graph G with n* = 5 *vertices, and its sequence of twin graphs G*1, *G*2, *G*3, *G*4*. Please note that G*, *G*1, *G*2, *G*<sup>3</sup> *are not twin-free whereas G*<sup>4</sup> *is, so r* = 4 = 5 − 1 = *n* − 1*.*

**Figure 8.** The sequence of twin graphs obtained from *G*.

u34

We denote by T *i* : *<sup>V</sup>*(*Gi*−<sup>1</sup>) → *V*(*G<sup>i</sup>*) the natural projection of *Gi*−<sup>1</sup> onto its twin graph *<sup>G</sup>i*, for any 1 ≤ *i* ≤ *r*. Let us denote *ui* = (T *i* ◦ T *i*−1 ◦ ... ◦ T <sup>1</sup>)(*u*) and [*u*]*<sup>i</sup>* = {*v* ∈ *V*(*G*) : *ui* = *v<sup>i</sup>*} for any vertex *u* ∈ *<sup>V</sup>*(*G*). In general, for any subset *S* ⊆ *<sup>V</sup>*(*G*), we denote by *Si* = {*u<sup>i</sup>* ∈ *<sup>V</sup>*(*G<sup>i</sup>*): *u* ∈ *<sup>S</sup>*}, note that it is a vertex subset of *<sup>G</sup>i*, and by [*S*]*<sup>i</sup>* = {*u* ∈ *<sup>V</sup>*(*G*): *ui* ∈ *<sup>S</sup><sup>i</sup>*}, note that it is a vertex subset of *G*.

The proof of the following properties is trivial.

**Lemma 6.** *Let G be a graph, let u* ∈ *V*(*G*) *and let S* ⊆ *<sup>V</sup>*(*G*)*. Then, the following statements hold*


**Remark 1.** *In Figure 8 we can see an example of the second property of Lemma 6. In this case* [*<sup>u</sup>*4]<sup>1</sup> = {*<sup>u</sup>*2, *<sup>u</sup>*4} [*<sup>u</sup>*4]<sup>2</sup> = {*<sup>u</sup>*2, *u*3, *<sup>u</sup>*4} [*<sup>u</sup>*4]<sup>3</sup> = {*<sup>u</sup>*1, *u*2, *u*3, *<sup>u</sup>*4} [*<sup>u</sup>*4]<sup>4</sup> = {*<sup>u</sup>*0, *u*1, *u*2, *u*3, *<sup>u</sup>*4}*.*

The iterated application of the construction process of the twin graph easily provides this straightforward generalization of Lemma 4.

**Lemma 7.** *If* Ω *is a plenty twin set of a graph G, then* Ω*<sup>i</sup> is a plenty twin set of Gi, for i* ≥ 1*.*

We now present three technical lemmas that will be useful to obtain the main result of this section. These lemmas collect the behavior of plenty twin sets and their stabilizers under the successive twin graph operations.

**Lemma 8.** *Let* Ω *be a plenty twin set of a graph G, and let x* ∈ *<sup>V</sup>*(*G*)*. If x* ∈ *V*(*G*) \ [Ω]*<sup>i</sup> for some i* ≥ 1*, then* [*x*]*<sup>i</sup>* = {*x*}*.*

**Proof.** We proceed by induction on *i* ≥ 1. For *i* = 1, let *x* ∈ *V*(*G*) \ [Ω]<sup>1</sup> = *V*(*G*) \ [Ω]; in particular, *x* ∈ Ω. Suppose on the contrary that there exists *y* = *x* such that *y* ∈ [*x*]<sup>1</sup> = [*x*]. Then, *x* and *y* are twin vertices of *G*, and using that Ω is a plenty twin set, we obtain that *y* ∈ Ω. However, this means *x* ∈ [*y*] ⊆ [Ω], which is a contradiction.

Our inductive hypothesis is the following: if *x* ∈ *V*(*G*) \ [Ω]*<sup>i</sup>*−<sup>1</sup> then [*x*]*<sup>i</sup>*−<sup>1</sup> = {*x*}. Suppose now that *x* ∈ *V*(*G*) \ [Ω]*<sup>i</sup>* (and so *xi* ∈/ Ω*<sup>i</sup>* by definition of Ω*<sup>i</sup>*); in particular, by Statement 3 of Lemma 6, *x* ∈/ [Ω]*<sup>i</sup>*−<sup>1</sup> (and so *xi*−<sup>1</sup> ∈/ <sup>Ω</sup>*i*−1) and by the inductive hypothesis [*x*]*<sup>i</sup>*−<sup>1</sup> = {*x*}. Assume that there exists *y* = *x* such that *y* ∈ [*x*]*<sup>i</sup>*, which yields *xi* = *yi*. This implies that *xi*−<sup>1</sup> and *yi*−<sup>1</sup> are twins in *Gi*−1. We know that [*x*]*<sup>i</sup>*−<sup>1</sup> = {*x*}, so *yi*−<sup>1</sup> = *xi*−1. On the other hand, Ω*i*−<sup>1</sup> is a plenty twin set because of Lemma 7, so *yi*−<sup>1</sup> ∈ Ω*i*−1. Finally, this gives that *xi* = *yi* ∈ <sup>Ω</sup>*i*, a contradiction.

**Lemma 9.** *Let* Ω *be a plenty twin set of a graph G. Then, for every i* ≥ 1*,*

$$\text{Stab}\_{\mathbb{G}^{i-1}}(\Omega^{i-1}) = \text{Stab}\_{G^{i-1}}((\mathcal{T}^i)^{-1}(\Omega^i)).$$

**Proof.** Recall that *G*<sup>0</sup> = *G* and Ω<sup>0</sup> = Ω. We only have to prove the inclusion Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>) ⊆ Stab*Gi*−<sup>1</sup> ((T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*)), so let *φ* ∈ Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>) and let *ui*−<sup>1</sup> ∈ (T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*). We need to show that *φ*(*ui*−<sup>1</sup>) = *ui*−1. If *ui*−1 ∈ <sup>Ω</sup>*i*−1, then *φ*(*ui*−<sup>1</sup>) = *ui*−1, by hypothesis about *φ*. Assume now that *ui*−1 ∈ (T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*) \ Ω*i*−1. Then T *<sup>i</sup>*(*ui*−<sup>1</sup>) = *ui* ∈ Ω*i*.

On the other hand, *φ* ∈ Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>) implies that <sup>T</sup>*<sup>i</sup>*(*φ*) ∈ <sup>T</sup>*<sup>i</sup>*(Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>)) = Stab*G<sup>i</sup>*(Ω*<sup>i</sup>*), by Lemma 5, and so T *<sup>i</sup>*(*φ*)(*u<sup>i</sup>*) = *<sup>u</sup>i*. Moreover, by definition, <sup>T</sup>*<sup>i</sup>*(*φ*)(*u<sup>i</sup>*)=(*φ*(*ui*−<sup>1</sup>))1, and this means that (*φ*(*ui*−<sup>1</sup>))<sup>1</sup> = *<sup>u</sup>i*. In other words, *φ*(*ui*−<sup>1</sup>) and *ui*−<sup>1</sup> belong to the same twin class in *Gi*−1.

Finally, if *φ*(*ui*−<sup>1</sup>) = *ui*−1, using that Ω*i*−<sup>1</sup> is a plenty twin set not containing *ui*−1, we have that *φ*(*ui*−<sup>1</sup>) ∈ <sup>Ω</sup>*i*−1, however this is not possible because *φ* is a bijective mapping that fixes every vertex in <sup>Ω</sup>*i*−1, and no vertex outside Ω*i*−<sup>1</sup> have its image in Ω*i*−1. So *φ*(*ui*−<sup>1</sup>) = *ui*−1, as desired.

**Lemma 10.** *Let G be a graph, and let* Ω ⊆ *V*(*G*) *be a plenty twin set. Then, for each i* ≥ 1*:*

$$\text{Stab}\_G(\Omega) = \text{Stab}\_G([\Omega]^i).$$

**Proof.** We proceed by induction on *i* ≥ 1. Firstly, for *i* = 1, Lemma 9 gives Stab*G*(Ω) = Stab*G*((T <sup>1</sup>)−<sup>1</sup>(Ω<sup>1</sup>)) and (T <sup>1</sup>)−<sup>1</sup>(Ω<sup>1</sup>)=[Ω]1, by definition.

We now assume that Stab*G*(Ω) = Stab*G*([Ω]*<sup>i</sup>*−<sup>1</sup>). Let *φ* ∈ Stab*G*(Ω) = Stab*G*([Ω]*<sup>i</sup>*−<sup>1</sup>). We need to prove that *φ* ∈ Stab*G*([Ω]*<sup>i</sup>*). Indeed, the iteration of Lemma 5 on the plenty twin set [Ω]*<sup>i</sup>*−<sup>1</sup> gives T *i*−1 ◦ ... ◦ <sup>T</sup><sup>1</sup>(Stab*G*([Ω]*<sup>i</sup>*−<sup>1</sup>) = Stab*Gi*−<sup>1</sup> (T *i*−1 ◦ ... ◦ T <sup>1</sup>([Ω]*<sup>i</sup>*−<sup>1</sup>)) = Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>). Furthermore, by using again Lemma 9, we obtain that Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>) = Stab*Gi*−<sup>1</sup> ((T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*)). This means that T *i*−1 ◦ ... ◦ <sup>T</sup><sup>1</sup>(*φ*) ∈ Stab*Gi*−<sup>1</sup> (Ω*i*−<sup>1</sup>) = Stab*Gi*−<sup>1</sup> ((T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*)).

Let *x* ∈ [Ω]*<sup>i</sup>* \ [Ω]*<sup>i</sup>*−1. This implies that *xi*−<sup>1</sup> ∈/ Ω*i*−<sup>1</sup> but *xi* ∈ <sup>Ω</sup>*i*, so *xi*−<sup>1</sup> ∈ (T *<sup>i</sup>*)−<sup>1</sup>(Ω*<sup>i</sup>*). Hence, T *i*−1 ◦ ... ◦ <sup>T</sup><sup>1</sup>(*φ*)(*xi*−<sup>1</sup>) = *xi*−1. On the other hand, T*i*−<sup>1</sup> ◦ ... ◦ <sup>T</sup><sup>1</sup>(*φ*)(*xi*−<sup>1</sup>) = *φ*(*x*)*<sup>i</sup>*−<sup>1</sup> by definition. Thus, *φ*(*x*)*<sup>i</sup>*−<sup>1</sup> = *xi*−1, which implies that *φ*(*x*) ∈ [*x*]*<sup>i</sup>*−<sup>1</sup> = {*x*}, by Lemma 8, so *φ*(*x*) = *x*. Hence, *φ* ∈ Stab*G*([Ω]*<sup>i</sup>*).

We finally present the main result of this section, that provides an upper bound for Det(*G*).

**Theorem 2.** *Let G be a graph of order n, and let r be the smallest integer such that Gr is twin-free. Then,*

$$\text{Det}(G) \le n - n^{(1)} + \text{Det}(G^r)$$

*and moreover, this bound is tight.*

We first prove the following assertion. **Claim 1.** For any plenty twin set Ω of *G*, we have that

$$\operatorname{Stab}\_G([\Omega]^r) \cap \operatorname{Ker}(\check{\mathcal{T}}^r \circ \dots \circ \check{\mathcal{T}}^1) = \{id\_G\}.$$

**Proof.** (Proof of Claim 1)

Let *φ* ∈ Stab*G*([Ω]*r*) ∩ Ker(T *r* ◦ ... ◦ T <sup>1</sup>) and let *u* ∈ *<sup>V</sup>*(*G*). We need to prove that *φ*(*u*) = *u*. Clearly, we may assume that *u* ∈ *V*(*G*) \ [Ω]*<sup>r</sup>*. Since *φ* ∈ Ker(T *r* ◦ ... ◦ T <sup>1</sup>), we have that T *r* ◦ ... ◦ T <sup>1</sup>(*φ*)(*u<sup>r</sup>*) = *<sup>u</sup>r*, but T*r* ◦ ... ◦ <sup>T</sup><sup>1</sup>(*φ*)(*u<sup>r</sup>*) = *φ*(*u*)*<sup>r</sup>* by definition. Thus, *φ*(*u*)*<sup>r</sup>* = *<sup>u</sup>r*, or equivalently *φ*(*u*) ∈ [*u*]*<sup>r</sup>* = {*u*}, where the last equality is a consequence of Lemma 8, as [Ω]*r* is a plenty set. Therefore, *φ*(*u*) = *u* and this proves the claim.

Let *R* be a minimum determining set of *Gr*, and let *S* ⊆ *V*(*G*) be a subset of cardinality |*R*| such that *Sr* = *R*. By Lemma 5, we have that T (Stab*G*(*S*)) ⊆ Stab*G*<sup>1</sup> (*S*<sup>1</sup>), and therefore we obtain that T 2 ◦ T (Stab*G*(*S*)) ⊆ T <sup>2</sup>(Stab*G*<sup>1</sup> (*S*<sup>1</sup>)) ⊆ Stab*G*<sup>2</sup> (*S*<sup>2</sup>), where the last inclusion is given again by the same lemma. Thus, iterating this process yields

$$\hat{\mathcal{T}}^{\tau} \circ \dots \circ \hat{\mathcal{T}}^{1}(\text{Stab}\_{G}(S)) \subseteq \text{Stab}\_{G^{\tau}}(S^{\tau}) = \text{Stab}\_{G^{\tau}}(R) = \{\text{id}\_{G^{\tau}}\},$$

since *R* is a determining set of *Gr*. Hence, Stab*G*(*S*) ⊆ Ker(T *r* ◦ ... ◦ T <sup>1</sup>).

On the other hand, let Ω ⊆ *V*(*G*) be a vertex subset composed by all but one vertices of each twin class in *G*. Clearly, Ω is a plenty twin set and |Ω| = *n* − *<sup>n</sup>*(1). Lemma 10 yields Stab*G*(Ω) = Stab*G*([ Ω] *r*), and Claim 1 yields Stab*G*([ Ω] *r*) ∩ Ker(T *r* ◦ ... ◦ T <sup>1</sup>) = {*idG*}. Therefore, we obtain that Stab*G*(Ω) ∩ Ker(T *r* ◦ ... ◦ T <sup>1</sup>) = {*idG*} but Stab*G*(Ω) ∩ Stab*G*(*S*) ⊆ Stab*G*(Ω) ∩ Ker(T *r* ◦ ... ◦ T <sup>1</sup>) = {*idG*}. This means that Stab*G*(*<sup>S</sup>* ∪ Ω) = Stab*G*(*S*) ∩ Stab*G*(Ω) = {*idG*} and so *S* ∪ Ω is a determining set of *G*. This gives the desired bound, since |*S*| = Det(*Gr*) and |Ω| = *n* − *<sup>n</sup>*(1).

To show the tightness of the bound, we consider the graph *G* in Figure 9a, with 2*s* + 4 vertices (*s* ≥ 2). Clearly, *G*<sup>1</sup> (see Figure 9b) is not twin-free whereas *G*<sup>2</sup> is (see Figure 9c). Moreover, *S* = {*<sup>u</sup>*1, *u*2, ... , *us*−1, *w*} is a minimum determining set of *G*, so Det(*G*) = *s*. On the other hand, *R* = {*u*<sup>2</sup> 1, *u*2 2, ... , *u*2 *<sup>s</sup>*−<sup>1</sup>} is a minimum determining set of *G*<sup>2</sup> and Det(*G*<sup>2</sup>) = *s* − 1. Finally, note that *n* − *n*(1) = 1 and therefore Det(*G*) = *n* − *n*(1) + Det(*G*<sup>2</sup>).

**Figure 9.** Det(*G*) = *n* − *n*(1) + Det(*G*<sup>2</sup>).

**Corollary 2.** *Let r be the smallest integer such that Gr is twin-free. Then,*

$$\max\{n - n^{(1)}, \text{Det}(G^1)\} \le \text{Det}(G) \le n - n^{(1)} + \text{Det}(G^r).$$

**Remark 2.** *It is proved in [14] that a twin-free graph has determining number at most the half of its order. Then,* max{*n* − *<sup>n</sup>*(1), Det(*G*<sup>1</sup>)} ≤ Det(*G*) ≤ *n* − *n*(1) + *n*(*r*) 2 ·

### **4. Determining Number of Cographs and Unit Interval Graphs**

As an application of the bounds obtained in the previous sections, we can compute the determining number of cographs and unit interval graphs. A *cograph* is a graph that can be constructed from the single-vertex graph *K*1 by complementation and disjoint union. This graph class was independently described by several authors (see [23–26]). Examples of cographs are, among others, the complete graphs, the complete bipartite graphs, the cluster graphs and the threshold graphs.

**Proposition 2.** *Let G be a cograph of order n with twin graph G*<sup>1</sup> *of order <sup>n</sup>*(1)*, then*

$$\text{Det}(G) = n - n^{(1)}\text{-}$$

**Proof.** Cographs are precisely the graphs without an induced *P*4 as a subgraph (see [27,28]), and so the resulting graph from removing any vertex of a cograph is also a cograph. Thus, given a cograph *G*, *G*<sup>1</sup> can be seen as a graph obtained by deletion of vertices of *G*, so it is clear that *G*<sup>1</sup> is also a cograph. Iterating this argumen<sup>t</sup> we obtain that *Gi* is a cograph, for any index *i*; in particular, if *r* is the smallest integer such that *Gr* is twin-free, then *Gr* is a cograph.

It is known that a non-trivial cograph has at least a pair of twins (see [27]), hence *Gr* is necessarily isomorphic to *K*1, and so Det(*Gr*) = Det(*<sup>K</sup>*1) = 0. Finally, by Corollary 2, we obtain that *n* − *n*(1) ≤ max{*n* − *<sup>n</sup>*(1), Det(*G*<sup>1</sup>)} ≤ Det(*G*) ≤ *n* − *n*(1) + Det(*Gr*) = *n* − *<sup>n</sup>*(1), and Det(*G*) = *n* − *<sup>n</sup>*(1), as desired.

Please note that the proof of Theorem 2 and Proposition 2 give that minimum determining sets of cographs are exactly plenty twin sets with *n* − *n*(1) vertices, that is, containing exactly all but one vertices of every non-trivial twin class. In the following example we illustrate this property of cographs.

**Example 7.** *The graph in Figure 10a is a cograph (see [29]) with n* = 7 *vertices and its twin graph, that is shown in Figure 10b, has n*(1) = 4 *vertices. Therefore, Det*(*G*) = *n* − *n*(1) = 3 *and* Ω = {*<sup>a</sup>*, *<sup>c</sup>*,*<sup>e</sup>*} *is a minimum determining set of G because it is composed by all but one vertices of each non-trivial twin class of G.*

**Figure 10.** A cograph *G* and its twin graph *G*1.

We now focus on unit interval graphs. A graph is a *unit interval graph* if it is possible to assign to each of its vertices a unit interval of the real line in such a way that two vertices are adjacent exactly if the associated intervals intersect (see [30]). We will apply again our previous results to bound the determining number of these graphs, and we first need the following technical lemma.

**Lemma 11.** *Let S be a vertex subset of a graph G, and let x* ∈ *V*(*G*) \ *S be such that for every y* ∈ *V*(*G*) \ (*S* ∪ {*x*}) *either deg*(*x*) = *deg*(*y*) *or* (*N*(*x*) \ *<sup>N</sup>*(*y*)) ∩ *S* = ∅*. Then,* Stab*G*(*S*) = Stab*G*(*<sup>S</sup>* ∪ {*x*})*.*

**Proof.** Clearly we just need to prove that Stab*G*(*S*) ⊆ Stab*G*(*<sup>S</sup>* ∪ {*x*}). To this end, let *φ* ∈ Stab*G*(*S*), which means that *φ*(*u*) = *u*, for every *u* ∈ *S*. Let us see that *φ*(*x*) = *x*. Suppose, on the contrary, that *φ*(*x*) = *y* = *x*, (note that *y* ∈/ *S*, because if *y* ∈ *S* then, *y* = *φ*(*y*)). Clearly *deg*(*x*) = *deg*(*φ*(*x*)) = *deg*(*y*), because automorphisms preserve degrees of vertices, so (*N*(*x*) \ *<sup>N</sup>*(*y*)) ∩ *S* = ∅, by hypothesis. Let *z* ∈ (*N*(*x*) \ *<sup>N</sup>*(*y*)) ∩ *S*. Then, *z* ∈ *<sup>N</sup>*(*x*) and *φ*(*z*) ∈ *<sup>N</sup>*(*φ*(*x*)) = *<sup>N</sup>*(*y*). On the other hand, *z* ∈ *S* implies that *φ*(*z*) = *z*, a contradiction with *z* ∈/ *<sup>N</sup>*(*y*).

**Proposition 3.** *Let G be a connected unit interval graph of order n with twin graph G*<sup>1</sup> *of order <sup>n</sup>*(1)*. Then,* Det(*G*) ∈ {*n* − *<sup>n</sup>*(1), *n* − *n*(1) + <sup>1</sup>}*.*

**Proof.** It is well known that unit interval graphs and indifference graphs are equivalent graphs classes (see [31]), so the vertices of *G* can be represented as real numbers {*<sup>x</sup>*1, ... , *xn*}, with *xi* < *xj* when *i* < *j*, and *E*(*G*) = {*xixj* : |*xi* − *xj*| ≤ <sup>1</sup>}.

We first consider the particular case when *G* is a connected unit interval twin-free graph. Let us see that, in this case, Stab*G*({*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>}) = Stab*G*({*<sup>x</sup>*1, ... , *xi*−1, *xi*}), for every *i* ∈ {2, ... *<sup>n</sup>*}. If *i* = *n*, clearly Stab*G*({*<sup>x</sup>*1, ... , *xn*−<sup>1</sup>}) = Stab*G*({*<sup>x</sup>*1, ... , *xn*−1, *xn*}). We now fix *i* ∈ {2, ... *n* − <sup>1</sup>}, and suppose that (*N*(*xi*) \ *<sup>N</sup>*(*xj*)) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>} = ∅, for every *j* ∈ {*i* + 1, ... , *<sup>n</sup>*}. Then, by Lemma 11, we obtain Stab*G*({*<sup>x</sup>*1,..., *xi*−<sup>1</sup>}) = Stab*G*({*<sup>x</sup>*1,..., *xi*−1, *xi*}).

Assume now that there exits *j* > *i* such that *<sup>N</sup>*(*xi*) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>} ⊆ *<sup>N</sup>*(*xj*) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>}. Since *G* is twin-free, there is *xk* ∈ (*N*(*xi*) \ *<sup>N</sup>*(*xj*)) ∪ (*N*(*xj*) \ *<sup>N</sup>*(*xi*)). Please note that *<sup>N</sup>*(*xi*) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>} = ∅, since *G* is connected, and the hypothesis of this case *<sup>N</sup>*(*xi*) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>} ⊆ *<sup>N</sup>*(*xj*) ∩ {*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>} gives that |*xi* − *xj*| ≤ 1. This also means that *<sup>N</sup>*(*xi*) ∩ {*xi*+1, ... , *xn*} ⊆ *<sup>N</sup>*(*xj*) ∩ {*xi*+1, ... , *xn*} and therefore, *<sup>N</sup>*[*xi*] ⊆ *<sup>N</sup>*[*xj*]. This means that *deg*(*xi*) ≤ *deg*(*xj*). In addition, *xk* ∈ *<sup>N</sup>*(*xj*) \ *<sup>N</sup>*(*xi*) gives that *deg*(*xi*) < *deg*(*xj*). Again, by Lemma 11, Stab*G*({*<sup>x</sup>*1, ... , *xi*−<sup>1</sup>}) = Stab*G*({*<sup>x</sup>*1,..., *xi*−1, *xi*}).

Applying repeatedly this condition we obtain that Stab*G*({*<sup>x</sup>*1}) = Stab*G*({*<sup>x</sup>*1, ... , *xn*}) = Stab*G*(*V*(*G*)). So {*<sup>x</sup>*1} is a determining set of *G* and Det(*G*) ∈ {0, <sup>1</sup>}, whenever *G* is a connected unit interval twin-free graph.

Finally, let us consider the general case and let *G* be any connected unit interval graph. Observe that every *Gi* is also a connected unit interval graph. In particular, if *r* is the smallest integer such that *Gr* is twin-free, then Det(*Gr*) ∈ {0, <sup>1</sup>}. Finally, by Corollary 2, we obtain that *n* − *n*(1) ≤ Det(*G*) ≤ *n* − *n*(1) + Det(*Gr*) ≤ *n* − *n*(1) + 1, as desired.

We illustrate the behavior of minimum determining sets of unit interval graphs with the following examples.

**Example 8.** *We show a unit interval graph G and its representation through intersections of intervals of length one (see [32]) in Figure 11a. The twin graph of G is in Figure 11b and it is clearly a twin-free graph satisfying* Det(*G*<sup>1</sup>) = 1*. Proposition 3 gives* Det(*G*) ∈ {*n* − *<sup>n</sup>*(1), *n* − *n*(1) + 1} = {5 − 4, 5 − 4 + 1} = {1, <sup>2</sup>}*. In this case, it is easy to check that* Det(*G*) = *n* − *n*(1) = 1 *and both* {*b*} *and* {*c*} *are minimum determining sets of G.*

**Figure 11.** A unit interval *G* and its twin graph *G*1.

**Example 9.** *We now show a unit interval graph G and its representation through intersections of intervals of length one in Figure 12a. The twin graph of G (see Figure 12b) is a twin-free graph satisfying* Det(*G*<sup>1</sup>) = 1*. In this case, it is easy to check that* Det(*G*) = *n* − *n*(1) + 1 = 2 *and* {*b*, *f* } *is an example of minimum determining set of G.*

**Figure 12.** A unit interval *G* and its twin graph *G*1.
