<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _assoc_prop_matches(prop, ref_classname, assoc_classes, result_classes, result_role):
 """ Test filters of a reference property and its associated entity Returns `True` if matches the criteria. Returns `False` if it does not match. Matches if ref_classname in assoc_classes, and result_role matches property name """

        assert prop.type == 'reference'

        if assoc_classes and ref_classname not in assoc_classes:
            return False
        if result_classes and prop.reference_class not in result_classes:
            return False
        if result_role and prop.name.lower() != result_role:
            return False
        return True