<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Acf(poly, dist, N=None, **kws):
 """ Auto-correlation function. Args: poly (Poly):
 Polynomial of interest. Must have ``len(poly) > N``. dist (Dist):
 Defines the space the correlation is taken on. N (int):
 The number of time steps appart included. If omited set to ``len(poly)/2+1``. Returns: (numpy.ndarray) : Auto-correlation of ``poly`` with shape ``(N,)``. Note that by definition ``Q[0]=1``. Examples: [1. 0.9915 0.9722 0.9457 0.9127] """

    if N is None:
        N = len(poly)/2 + 1

    corr = Corr(poly, dist, **kws)
    out = numpy.empty(N)

    for n in range(N):
        out[n] = numpy.mean(corr.diagonal(n), 0)

    return out