code: def ensure_low_lt_high(low, high):
      """Returns a value with shape matching `low` and lt broadcastable `high`."""
      new_low = tf.minimum(high - tf.abs(high) * 0.1 - 0.1, low)
      reduce_dims = []
      if tensorshape_util.rank(new_low.shape) > tensorshape_util.rank(
          low.shape
      ):
          reduced_leading_axes = tf.range(
              tensorshape_util.rank(new_low.shape)
              - tensorshape_util.rank(low.shape)
          )
          new_low = tf.math.reduce_min(
              new_low, axis=reduced_leading_axes
          )
      reduce_dims = [
          d
          for d in range(tensorshape_util.rank(low.shape))
          if low.shape[d] < new_low.shape[d]
      ]
      if reduce_dims:
          new_low = tf.math.reduce_min(
              new_low, axis=reduce_dims, keepdims=True
          )
      return new_low
  
imports: import contextlib
  import os
  import re
  import traceback
  import unittest
  import hypothesis
  from hypothesis.extra import numpy
  import hypothesis.strategies
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.util.deferred_tensor import DeferredTensor
label_desc: Use image node_id 35 for calling a global function with example usage: ensure_low_lt_high(low, high) and returns: new_low