I’m reading Aho and Ullman’s book The Theory of Parsing, Translation, and Compiling. In the section that introduces regular expressions in chapter 2, there is a list of properties of regular expressions. I do not understand properties 2 and 8. Here is the list of properties:

(1) $ \alpha + \beta = \beta + \alpha$

(2) $ \varnothing * = e$

(3) $ \alpha + (\beta + \gamma) = (\alpha + \beta) + \gamma$

(4) $ \alpha(\beta\gamma) = (\alpha\beta)\gamma$

(5) $ \alpha(\beta + \gamma) = \alpha\beta + \alpha\gamma$

(6) $ (\alpha + \beta)\gamma = \alpha\gamma + \beta\gamma$

(7) $ \alpha e = e \alpha = \alpha$

(8) $ \varnothing\alpha = \alpha\varnothing = \varnothing$

(9) $ \alpha * = \alpha + \alpha *$

(10) $ (\alpha *)* = \alpha *$

(11) $ \alpha + \alpha = \alpha$

(12) $ \alpha + \varnothing = \alpha$

where $ \varnothing$ is the regular expression denoting the regular set $ \varnothing$ , $ \alpha$ , $ \beta$ , $ \gamma$ are arbitrary regular expressions, and $ e$ is the empty string.

**How are properties (2) and (8) justified?**

**Edit:** To explain the notation of +, *, etc, here are some definitions given in the book (quoted):

DEFINITION A *langauge* over an alphabet $ \Sigma$ is a set of strings over $ \Sigma$ .

…

DEFINITION Let $ L_1$ be a language over alphabet $ \Sigma_1$ and $ L_2$ a language over $ \Sigma_2$ . Then $ L_1 L_2$ , called the *concatenation* or *product* of $ L_1$ and $ L_2$ , is the language $ \{xy|x \in L_1\textrm{ and }y \in L_2\}$ .

…

DEFINITION The *closure* of $ L$ , denoted $ L*$ , is defined as follows:

(1) $ L^0 = {e}$ .

(2) $ L^n = LL^{n-1}$ for $ n \geq 1$ .

(3) $ L* = \bigcup_{n \geq 0} L^n$ .

…

DEFINITION Let $ \Sigma$ be a finite alphabet. We define a *regular set over* $ \Sigma$ recursively in the following manner:

(1) $ \varnothing$ (the empty set) is a regular set over $ \Sigma$ .

(2) $ {e}$ is a regular set over $ \Sigma$ .

(3) $ {a}$ is a regular set over $ \Sigma$ for all $ \alpha$ in $ \Sigma$ .

(4) If $ P$ and $ Q$ are regular sets over $ \Sigma$ , then so are

(a) $ P \cup Q$ .

(b) $ PQ$ .

(c) $ P*$ .

(5) Nothing else is a regular set.

Thus a subset of $ \Sigma *$ is regular if and only if it is $ \varnothing$ , $ {e}$ , or $ {a}$ , for some $ a$ in $ \Sigma$ , or can be obtained from these by a finite number of applications of the operations union, concatenation, and closure.

.

DEFINITION *Regular expressions* over $ \Sigma$ and the regular expressions they *denote* are defined recursively, as follows:

(1) $ \varnothing$ is a regular expression denoting the regular set $ \varnothing$ .

(2) $ e$ is a regular expression denoting the regular set $ {e}$ .

(3) $ a$ in $ \Sigma$ is a regular expression denoting the regular set $ {a}$ .

(4) If $ p$ and $ q$ are regular expressions denoting the regular sets $ P$ and $ Q$ , respectively, then

(a) $ (p+q)$ is a regular expression denoting $ P \cup Q$ .

(b) $ (pq)$ is a regular expression denoting $ PQ$ .

(c) $ (p)*$ is a regular expression denoting $ P*$ .

(5) Nothing else is a regular expression.