'verify the argument of the default symbol and user provided parameters'

def _check_arguments(self):

    if self.argument_checked:
        return
    assert (self.symbol is not None)
    self.argument_checked = True
    _check_arguments(self.symbol)
    if self.allow_extra_params:
        if self.arg_params:
            arg_names = set(self.symbol.list_arguments())
            self.arg_params = {k: v for (k, v) in self.arg_params.items() if (k in arg_names)}
        if self.aux_params:
            aux_names = set(self.symbol.list_auxiliary_states())
            self.aux_params = {k: v for (k, v) in self.aux_params.items() if (k in aux_names)}
