equal(0, 0). equal(X, X). iterate(X) :- equal(X, 0) -> true ; Y is X - 1, iterate(Y). initialize(10000000). slow_initialize(100). benchmark(A, _) :- iterate(A).