code: def transinv_to_invtrans(node):
      if isinstance(node.op, DimShuffle):
          if node.op.new_order == (1, 0):
              (A,) = node.inputs
              if A.owner:
                  if isinstance(A.owner.op, MatrixInverse):
                      (X,) = A.owner.inputs
                      return [A.owner.op(node.op(X))]
  
imports: from __future__ import absolute_import, print_function, division
  import logging
  from six import iteritems, integer_types
  from six.moves import xrange
  from theano.gof import Op, Apply
  from theano.tensor import DimShuffle, Dot
  from theano.tensor.blas import Dot22
  from theano import tensor
  import theano.tensor
  from theano.tensor.opt import register_stabilize, register_specialize, register_canonicalize
  from theano.gof import local_optimizer
  from theano.gof.opt import Optimizer
  from theano.tensor.nlinalg import MatrixInverse, matrix_inverse, extract_diag, trace, det
  from theano.tensor.slinalg import Cholesky, cholesky, Solve, solve, imported_scipy
label_desc: Use image node_id 8 for calling a global function with example usage: transinv_to_invtrans(node) and returns: list