code: def has_fun_prop(f, k):
      
      if not hasattr(f, _FUN_PROPS):
          return False
      if not isinstance(getattr(f, _FUN_PROPS), dict):
          return False
      if k not in getattr(f, _FUN_PROPS).keys():
          return False
      return True
docs: Test whether function `f` has property `k`.
  
      We define properties as annotations added to a function throughout
      the process of defining a function for verification, e.g. the
      argument types.  If `f` is an unannotated function, this returns
      False.  If `f` has the property named `k`, it returns True.
      Otherwise, it returns False.
  
      Users should never access this function directly.