The logic behind adding this sentence to the second condition in this definition of isomorphism Below is the definition of isomorphism quoted from the textbook Introduction to Set Theory by Karel Hrbacek and Thomas Jech.

First, we introduce relevant definitions:


*

*An $n$-ary relation $R$ in $A$ is a subset of $A^n$. Then we write $R(a_1,\cdots,a_n)$ to denote $(a_1,\cdots,a_n)\in R$.

*An $n$-ary operation $F$ on $A$ is a function on a subset of $A^n$ into $A$.

*A type $\tau$ is an ordered pair $(\langle r_1,\cdots,r_m \rangle,\langle f_1,\cdots,f_n\rangle)$ of finite sequences of natural numbers, where $r_i>0$ for all $i\le m$.

*A structure of type $\tau$ is a triple $$\mathfrak A=(A,\langle R_1,\cdots,R_m \rangle,\langle F_1,\cdots,F_n\rangle)$$ where $R_i$ is an $r_i$-ary relation in $A$ for each $i\le m$ and $F_j$ is an $f_j$-ary operation on $A$ for each $j\le n$.
An isomorphism between structures $\mathfrak A$ and $\mathfrak A'=(A',\langle R'_1,\cdots,R'_m \rangle,\langle F'_1,\cdots,F'_n\rangle)$ of the same type $\tau$ is a bijection $h$ from $A$ to $A'$ such that


*

*$R_i(a_1,\cdots,a_{r_i}) \iff R'_i(h(a_1),\cdots,h(a_{r_i}))$ for all $a_1,\cdots,a_{r_i}\in A$ and for all $i\le m$.

*$h(F_j(a_1,\cdots,a_{r_j})) = F'_j(h(a_1),\cdots,h(a_{r_j}))$ for all $a_1,\cdots,a_{r_j}\in A$ and for all $j\le n$, $\color{blue}{\text{provided that either side is defined}}$.

My questions:


*

*The sentence $\color{blue}{\text{provided that either side is defined}}$ appears in the second condition. Why such sentence is not added to the first condition? I think the reason lies behind the mathematical logic, but I can not figure out.

*This definition of isomorphism is very general for me. Is there a more general definition than this one?
 A: The key phrase - and a point of difference between this text and most modern model theory texts - is:

An $n$-ary operation $F$ on $A$ is a function on a subset of $A^n$ into $A$.

That is, $n$-ary operations in this semantics are possibly partial - think about subtraction on $\mathbb{N}$, for example. 
Most texts consider only total functions (there isn't much of a difference between the two approaches), and with that restriction the blue sentence is indeed redundant. However, once we allow partial functions we do need it. For example:


*

*Let our language consist of a single unary function symbol, $f$.

*Let $\mathfrak{A}$ be the structure in this language with domain $\mathbb{N}$ and $f^\mathfrak{A}$ not defined anywhere.

*Let $\mathfrak{B}$ be the structure in this language with domain $\mathbb{N}$ and $f^\mathfrak{B}(n)$ defined and equal to $n$ for all $n\in\mathbb{N}$.
Clearly we want the identity map from $\mathfrak{A}$ to $\mathfrak{B}$ to not be an isomorphism; the only way to rule this out is via the blue sentence.
A: There is no need to add this sentence in the first condition because it is always fulfilled : given a tuple $(a_1,\dots,a_{r_i})\in A^{r_j}$, the proposition $R(a_1,\dots,a_{r_j})$ always make sense, as the tuple $(a_1,\dots,a_{r_i})$ is either in $R_i$ or not. On the other hand, the operations $F_j$ here are defined as partial functions $A^{f_j}\to A$, so given a tuple $(a_1,\dots, a_{f_j})$ it could happen that $F_j(a_1,\dots, a_{f_j})$ or $F'_j(h(a_1),\dots, h(a_{f_j}))$ is simply undefined. So to ask them to be equal, you need to make sure that both are defined in the first place. That's what the added sentence is for, but it add implicitly the fact that as soon as one is defined then so is the other.
As for a more general notion, I think the most general notion of isomorphism is the one given in category theory, which is simply a morphism $f$ (it need not be a function between two sets, i.e. categories need not be concrete) that is invertible. Here, you have a category whose objects are structures of type $\tau$, and morphisms are functions  $h$ (not necessarily bijective) satisfying the following two conditions :


*

*$R_i(a_1,\cdots,a_{r_i}) \Rightarrow R'_i(h(a_1),\cdots,h(a_{r_i}))$ (but the converse need not be true)

*$h(F_j(a_1,\dots, a_{f_j}))=F'_j(h(a_1),\dots, h(a_{f_j}))$ provided the left-hand side is defined (this means that the right-hand side must then also be defined, but the converse need not be true).


Then an invertible morphism is exactly a bijection whose inverse is also a morphism, and this coincide with your notion of isomorphism.
