Returns whether the predecessor is a predecessor or a predecessor
        of a predecessor...of any of the others.

        Args:
            predecessor (str): The txn id of the predecessor.
            others (list(str)): The txn id of the successor.

        Returns:
            (bool)

def is_predecessor_of_other(self, predecessor, others):
        """Returns whether the predecessor is a predecessor or a predecessor
        of a predecessor...of any of the others.

        Args:
            predecessor (str): The txn id of the predecessor.
            others (list(str)): The txn id of the successor.

        Returns:
            (bool)

        """

        return any(predecessor in self._predecessors_by_id[o] for o in others)