Logic: Rank of Terms of a language In the book "A Course on Mathematical Logic" by S.M. Srivastava the rank of terms is defined as follows:  

Variables and constant symbols are terms of rank $0$; if $t_1,...,t_n$ are terms of rank $\le k$, and if $f_j$ is an $n$-ary function symbol, then $f_jt_1\ldots t_n$ is a term of rank at most $k+1$. Thus, the rank of a term $t$ is the smallest natural number $k$ such that $t$ is of rank $\le$ k.

I now wanted to show that the rank of the term $t = fcd$ ($c$,$d$ constants, $f$ a binary function) is $1$. It is obvious that $t$ is of rank $\le 1$. But it could still be of rank $\le 0$.  
So my question is, should the first "if" in the above definition really be an "iff"?

It does seem as though the author is somewhat imprecise in the formulation of rank, since (as you have noticed) it is not clear that only variables and constant symbols have rank $0$.  Perhaps the following definitions are more explicit, and are keeping with the author's intentions:

  
*
  
*A term has "rank $\leq 0$" if it is either a variable or a constant symbol.
  
*A term has "rank $\leq k+1$" if either it has rank $\leq k$ or it is of the form $f t_1 \ldots t_n$ where $f$ is an $n$-ary function symbol and $t_1 , \ldots , t_n$ are terms each with rank $\leq k$.
  
*The rank of a term is the smallest natural number $k$ such that the term has rank $\leq k$.
  

