def METHOD_NAME(L, cyc_act, f, order=None) -> bool:
    """
    Return whether the triple ``(L, cyc_act, f)`` exhibits
    the cyclic sieving phenomenon.
    If ``cyc_act`` is None, ``L`` is expected to contain the orbit lengths.
    INPUT:
    - ``L`` -- if ``cyc_act`` is ``None``: list of orbit sizes,
      otherwise list of objects
    - ``cyc_act`` -- (default:``None``) bijective function from ``L`` to ``L``
    - ``order`` -- (default:``None``) if set to an integer, this
        cyclic order of ``cyc_act`` is used (must be an integer
        multiple of the order of ``cyc_act``) otherwise, the order of
        ``cyc_action`` is used
    EXAMPLES::
        sage: from sage.combinat.cyclic_sieving_phenomenon import *
        sage: from sage.combinat.q_analogues import q_binomial
        sage: S42 = Subsets([1,2,3,4], 2)
        sage: def cyc_act(S): return Set(i.mod(4) + 1 for i in S)
        sage: cyc_act([1,3])
        {2, 4}
        sage: cyc_act([1,4])
        {1, 2}
        sage: p = q_binomial(4,2); p
        q^4 + q^3 + 2*q^2 + q + 1
        sage: CyclicSievingPolynomial( S42, cyc_act )
        q^3 + 2*q^2 + q + 2
        sage: CyclicSievingCheck( S42, cyc_act, p )
        True
    """
    p1, n = CyclicSievingPolynomial(L, cyc_act=cyc_act, order=order,
                                    get_order=True)
    R = p1.parent()
    q = R.gen()
    return p1 == R(f).mod(q**n - 1)