We can understand option B by thinking of constructing a TM for the language $L_1 \cap L_2$ and then analyzing if it is a halting TM or not.
Basic Info -
- We know $L_1$ is regular, hence recursive (decidable), and has a halting TM. Let that TM be $TM_1$. A halting TM is one that halts and accepts for all strings that are in the language, and halts and rejects for all strings that are not in the language.
- We know $L_2$ is RE but not REC, hence semi-decidable, and has a simple TM. Let that TM be $TM_2$. A simple TM is one that halts and accepts for all strings that are in the language, but may either halt and reject or loop infinitely for strings that are not in the language
Construction of TM $R$:
We now want to construct a TM $R$ for the language $L_1 \cap L_2$ (i.e., the set of strings $x$ that are in both $L_1$ and $L_2$).
TM $R$ is a combination of $TM_1$ and $TM_2$. On input string $x$, it follows this algorithm:
Run the halting TM $TM_1$ (decider) of $L_1$ on $x$. (Since $TM_1$ decides $L_1$, this step always halts.)
Check $TM_1$ result:
- If $TM_1$ rejects (i.e., $x \notin L_1$), then reject (halt and reject).
- If $TM_1$ accepts (i.e., $x \in L_1$), proceed to Step 3.
Run $TM_2$ on $x$:
- If $TM_2$ accepts, then $R$ accepts.
- If $TM_2$ rejects (i.e., $x \notin L_2$), then reject (halt and reject).
- If $TM_2$ loops (because $x \notin L_2$), $R$ loops.
Analyse $R$:
- If $x \in L_1 \cap L_2$, then $R$ would halt and accept.
- But if $x \notin L_1 \cap L_2$, then $R$ might halt and reject or it might go into an infinite loop because of Step 3.3 of the algorithm.
Hence, we will surely be able to halt and accept for all the strings in the language, but we might go into an infinite loop for strings that are not in the language. This behavior confirms that $R$ is a semi-decider for $L_1 \cap L_2$.
$$\text{Therefore, } L_1 \cap L_2 \text{ is Recursively Enumerable (RE).}$$