undefine_method(+Obj, +Name, +Arity)
Removes Obj’s current instance method for the Name/Arity message. After executing this goal, sending this message to Obj executes the class’s default method for the message.
Name/Arity must have been declared to be an instance method for the class of Obj.
If Obj has no current instance method for the Name/Arity message, then the predicate has no effect.
any argument is unbound.
Obj is not a compound term, Name is not an atom, or Arity is not an integer.
Message does not specify an instance method for the class of Obj.