Availability:built-in
According to the ISO standard, abolish/1 
can only be applied to dynamic procedures. This is odd, as for dealing 
with dynamic procedures there is already retract/1 
and retractall/1. 
The abolish/1 
predicate was introduced in DEC-10 Prolog precisely for dealing with 
static procedures. In SWI-Prolog, abolish/1 
works on static procedures, unless the Prolog flag iso 
is set to true.
It is advised to use retractall/1 for erasing all clauses of a dynamic predicate.