code: def check_type_forward(self, in_types):
      type_check._argname(in_types, ("a",))
      (a_type,) = in_types
      type_check.expect(a_type.dtype.kind == "f")
      # Only 2D array shapes allowed
      type_check.expect(a_type.ndim == 2)
      # Matrix inversion only allowed for square matrices
      type_check.expect(a_type.shape[0] == a_type.shape[1])
  
imports: import numpy.linalg
  import chainer
  from chainer.backends import cuda
  from chainer import function_node
  import chainer.functions
  from chainer.functions.math import matmul
  from chainer import utils
  from chainer.utils import precision
  from chainer.utils import type_check
label_desc: Use image node_id 1 for calling the Inv obj's underlying member method code with example usage: obj.check_type_forward(in_types) without return types