<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def remove_auxiliary_variable(self):
 """ Remove an existing auxiliary variable :return: """


        if not self.has_auxiliary_variable():

            # do nothing, but print a warning

            warnings.warn("Cannot remove a non-existing auxiliary variable", RuntimeWarning)

        else:

            # Remove the law from the children

            self._remove_child(self._aux_variable['law'].name)

            # Clean up the dictionary

            self._aux_variable = {}

            # Set the parameter to the status it has before the auxiliary variable was created

            self.free = self._old_free