:- table p1/1 as dyn.
or
:- table p1/1 as (dynamic).
This worked as a directive, but does not work as a declaration in a
compiled file where clauses for p1/1 are defined. The problem was
that the compiler didn't immediately set the property dynamic for
p1/1, so that the clauses were compiled statically. If clauses for
p1/1 weren't defined, things worked, since the directive dynamic p1/1
would be executed when the file was loaded, so assertions of p1/1 gave
no problem.