**mutual recursion**
Sometimes a procedure
does not explicitly refer to itself (this would be (simple)
recursion), but rather refers to a second procedure
which in turn refers to the first. This sets up a two-step *mutual
recursion*. Three- or more- step mutual recursion situations can also
occur. The usual conditions applicable to recursion must occur - there
must be a "trivial branch" somewhere in the cycle of mutually recursive
procedures, and somewhere in the cycle something must happen to ensure
that, each time around the cycle, a simpler version of the problem is being
solved.