I am trying to understand the notion of reduct in model theory. I found the following definition in Hodges's model theory book.
Definition. Let $\mathcal{L}$ be a first-order language and $\mathcal{L}'\subseteq \mathcal{L}$. Let $\mathcal{M}=(M,\dots)$ be an $\mathcal{L}$-structure. A structure $\mathcal{N}=(M,\dots)$ is called a reduct of $\mathcal{M}$ if $\mathcal{N}=\mathcal{M}|_{\mathcal{L}'}$.
This definition is clear for me. We just restrict $\mathcal{M}$ to $\mathcal{L}'$ and we get a reduct. But if you google reduct you will find several papers in which there are some difference between their definition of reduct. For example in one of them I found the following definition.
Definition. Let $\mathcal{M}=(M,\dots)$ be an $\mathcal{L}$-structure where $\mathcal{L}$ is a relational language. An $\mathcal{L}'$-structure $\mathcal{N}=(M,\dots)$ is called a reduct of $\mathcal{M}$ if every relation in $\mathcal{L}'$ is 0-definable in $\mathcal{L}$.
Could you explain why these definitions are the same?
This is a bit of terminology I've always found annoying myself. The two definitions of "reduct" are not the same, although they are closely related. To distinguish them, I'll refer to the first as "reduct$_1$" and the second as "reduct$_2$."
The relation between them is this:
That is, to get a reduct$_2$, we take the starting structure, possibly add some additional relations/functions/constants, but only in a $(\emptyset-)$definable way, and then remove some of the symbols. Every reduct$_1$ is a reduct$_2$, but the converse fails quite badly: e.g. $(\mathbb{N}, <)$ is a reduct$_2$, but not a reduct$_1$, of $(\mathbb{N},+)$.
The motivation for the terminology overload is that from a model-theoretic perspective, there is little difference between the "primitive" relations/functions/constants and the definable relations/functions/constants. For example, taking definitional expansions preserves: decidability, saturation, homogeneity, minimality and its various cousins, stability, ... So much of the time in model theory we lose nothing by conflating a given structure with its "full definitional expansion" (add all the $\emptyset-$definable relations/functions/constants), and then the two notions of "reduct" essentially coincide.
But that said, it is still an overload of terminology and can definitely lead to confusion if one is not careful. That's unfortunate, but that's the situation.