<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def block_reducible(cm, nodes1, nodes2):
 """Return whether connections from ``nodes1`` to ``nodes2`` are reducible. Args: cm (np.ndarray):
 The network's connectivity matrix. nodes1 (tuple[int]):
 Source nodes nodes2 (tuple[int]):
 Sink nodes """

    # Trivial case
    if not nodes1 or not nodes2:
        return True

    cm = cm[np.ix_(nodes1, nodes2)]

    # Validate the connectivity matrix.
    if not cm.sum(0).all() or not cm.sum(1).all():
        return True
    if len(nodes1) > 1 and len(nodes2) > 1:
        return block_cm(cm)
    return False