public static boolean isCausallyReady(Op op) {
        StateVector vec = op.getStateVec();
        int s = vec.getId();
        if (!(vec.get(s) == stateVector.get(s) + 1))
            return false;
        for (int i = 0; i < stateVector.size(); i++) {
            if (i != s && vec.get(i) > stateVector.get(i))
                return false;
        }
        return true;
    }