code: def _build_push_indices_down_func_transformation(
      flattened_contraction_indices,
  ):
      N = flattened_contraction_indices[-1] + 2
  
      shifts = [
          i for i in range(N) if i not in flattened_contraction_indices
      ]
  
      def transform(j):
          if j < len(shifts):
              return shifts[j]
          else:
              return j + shifts[-1] - len(shifts) + 1
  
      return transform
  
file_path: sympy/sympy/tensor/array/expressions/utils.py
imports: import bisect
  from collections import defaultdict
  from sympy.combinatorics import Permutation
  from sympy.core.containers import Tuple
  from sympy.core.numbers import Integer
label_desc: Use image node_id 8 for calling a global function with example usage: _build_push_indices_down_func_transformation(flattened_contraction_indices) and returns: transform, shifts, unknown