code: def _is_projective(parse):
      for m, h in enumerate(parse):
          for m2, h2 in enumerate(parse):
              if m2 == m:
                  continue
              if m < h:
                  if (
                      m < m2 < h < h2
                      or m < h2 < h < m2
                      or m2 < m < h2 < h
                      or h2 < m < m2 < h
                  ):
                      return False
              if h < m:
                  if (
                      h < m2 < m < h2
                      or h < h2 < m < m2
                      or m2 < h < h2 < m
                      or h2 < h < m2 < m
                  ):
                      return False
      return True
  
imports: import torch_struct
  import torch
  from torch_struct import LogSemiring
  import itertools
  from hypothesis.strategies import integers, composite, floats
  from hypothesis.extra.numpy import arrays
  import numpy
label_desc: Use image node_id 3 for calling a global function with example usage: _is_projective(parse) and returns: True, False, False