def METHOD_NAME(self, o, *ops):
    args = set(chain(*ops))
    if args:
        # Check that each list tensor component has the same
        # argument numbers (ignoring parts)
        numbers = set(tuple(sorted(set(arg[0].number() for arg in op))) for op in ops)
        if () in numbers:  # Allow e.g. <v[0], 0, v[1]> but not <v[0], u[0]>
            numbers.remove(())
        if len(numbers) > 1:
            raise ArityMismatch("Listtensor components must depend on the same argument numbers, "
                                f"found {numbers}.")
        # Allow different parts with the same number
        return tuple(sorted(args, key=lambda x: (x[0].number(), x[0].part())))
    else:
        # No argument dependencies
        return self._et