code: def local_max_to_min(node):
      """
      Change -(max(-x)) to min.
  
      This is tested in tensor/tests/test_basic.py:test_min_max.
  
      Notes
      -----
      We don't need an opt that will do the reverse as by default
      the interface put only MaxAndArgmax into the graph.
  
      """
      if node.op == T.neg and node.inputs[0].owner:
          max = node.inputs[0]
          if (
              max.owner
              and isinstance(max.owner.op, CAReduce)
              and max.owner.op.scalar_op == scal.maximum
          ):
              neg = max.owner.inputs[0]
              if neg.owner and neg.owner.op == T.neg:
                  new = CAReduce(scal.minimum, max.owner.op.axis)(
                      neg.owner.inputs[0]
                  )
                  return [copy_stack_trace(node.outputs[0], new)]
  
      return False
  
file_path: Theano/theano/tensor/opt_uncanonicalize.py
imports: from __future__ import absolute_import, print_function, division
  import logging
  from theano import gof
  from theano.tensor.elemwise import CAReduce
  from theano.tensor import basic
  from theano.tensor import DimShuffle, Subtensor
  from theano.tensor.opt import register_uncanonicalize
  from theano import scalar
  from theano.gof.opt import copy_stack_trace
label_desc: Use image node_id 2 for calling a global function with example usage: local_max_to_min(node) and returns: False, list