code: def update_local_upper_bounds_incremental(
      new_pareto_Y: Tensor, U: Tensor, Z: Tensor
  ) -> Tuple[Tensor, Tensor]:
      r"""Update the current local upper with the new pareto points.
  
      This assumes minimization.
  
      Args:
          new_pareto_Y: A `n x m`-dim tensor containing the new
              Pareto points.
          U: A `n' x m`-dim tensor containing the local upper bounds.
          Z: A `n x m x m`-dim tensor containing the defining points.
  
      Returns:
          2-element tuple containing:
  
          - A new `n' x m`-dim tensor local upper bounds.
          - A `n' x m x m`-dim tensor containing the defining points
      """
      for i in range(new_pareto_Y.shape[-2]):
          U, Z = compute_local_upper_bounds(U=U, Z=Z, z=new_pareto_Y[i])
      return U, Z
  
file_path: botorch/botorch/utils/multi_objective/box_decompositions/utils.py
imports: from typing import Optional, Tuple
  import torch
  from botorch.exceptions.errors import BotorchTensorDimensionError, UnsupportedError
  from botorch.utils.multi_objective.pareto import is_non_dominated
  from torch import Size, Tensor
label_desc: Use image node_id 5 for calling a global function with example usage: update_local_upper_bounds_incremental(new_pareto_Y, U, Z) and returns: U,  Z