The directive `dynamic/1` specifies that certain user-defined predicates are dynamic which are given as predicate indicators, either as in a list, in an and-sequence, or a single predicate indicator.
References:
SWI-Prolog
How to deal with the Prolog dynamic database?
Database