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.