def _cover_refines(xp, yq, p_leq_q, p, q, fol):
    """Return `True` if cover `xp` refines `yq`.

    In other words, if each implicant of `xp` is
    covered by some implicant in `yq` (let q == p).
    """
    r = yq & p_leq_q
    r = fol.exist(q, r)
    r |= ~xp
    r = fol.forall(p, r)
    return r == fol.true
