<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def has_fun_prop(f, k):
 """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. """

    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