code: def inv_as_solve(node):
      if not imported_scipy:
          return False
      if isinstance(node.op, (Dot, Dot22)):
          l, r = node.inputs
          if l.owner and l.owner.op == matrix_inverse:
              return [solve(l.owner.inputs[0], r)]
          if r.owner and r.owner.op == matrix_inverse:
              if is_symmetric(r.owner.inputs[0]):
                  return [solve(r.owner.inputs[0], l.T).T]
              else:
                  return [solve(r.owner.inputs[0].T, l.T).T]
  
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 9 for calling a global function with example usage: inv_as_solve(node) and returns: False, list, list, list