Two relations at once
Mutual recursion gives a system of equations. The even and odd numbers from Part 2:
even(0).
even(N) :- num(N), odd(N - 1).
odd(N) :- num(N), even(N - 1).
even := { (0) } ∪ π#1( σ#2 = #1 - 1( num × odd ) )
odd := π#1( σ#2 = #1 - 1( num × even ) )
odd := π#1( σ#2 = #1 - 1( num × even ) )
The fact even(0) becomes the constant table { (0) }.
Both equations are solved together, iterating from even = odd = {} until neither changes.
A whole strongly connected component becomes one simultaneous least fixed point, just as in naive evaluation.