<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_derived_property(cls, getter_function, name=None):
 """ Register a user-defined derived property Parameters getter_function : function Function that fetches the result of the user-defined derived property name : str Derived property name If unassigned, will default to the function's name """


        if name is None:
            name = getter_function.__name__
        mp = property(fget=getter_function)
        setattr(cls, name, mp)