built-in predicate

# `abolish_protocol/1`

## Description

    abolish_protocol(Protocol)

Abolishes a dynamic protocol. The protocol identifier can then be reused when creating a new protocol.

## Modes and number of proofs

    abolish_protocol(@protocol_identifier) - one

## Errors

`Protocol` is a variable:
`instantiation_error`
`Protocol` is neither a variable nor a valid protocol identifier:
`type_error(protocol_identifier, Protocol)`
`Protocol` is an identifier of a static protocol:
`permission_error(modify, static_protocol, Protocol)`
`Protocol` does not exist:
`existence_error(protocol, Protocol)`

## Examples

    | ?- abolish_protocol(listp).

See also

create_protocol/3, current_protocol/1, protocol_property/2, conforms_to_protocol/2-3, extends_protocol/2-3, implements_protocol/2-3