Is the "ancestor" relationship impossible to define in first-order logic? Definition: Given a binary relationship $R$, an ancestor relationship $R^*$ exists between $a$ and $b$ iff there is a chain of relationships $R$ connecting $a$ and $b$, for example, $Rax$, $Rxy$ and $Ryb$.
$R^*$ is trivial to define in logic programming (whose logical aspect is often said to be a subset of first-order logic). However, a paper I was reading claimed that $R^*$ cannot be defined in first-order logic. Is this true?

A Prolog definition of ancestor given parent:
$$
\begin{align}
ancestor(X, Y) & \leftarrow parent(X, Y)
\\
ancestor(X, Y) & \leftarrow parent(X, Z) \land ancestor(Z, Y)
\end{align}
$$

The main reason is that First-Order Logic uses Tarskian semantics and logic programming uses Herbrand semantics. This has various consequences when it comes to expressiveness and other properties like compactness and completeness. For more details, see for example The Herbrand Manifesto or Herbrand Semantics, where your example (transitive closure) is discussed.
