A predicate is either static or dynamic. Static predicates cannot be
updated during execution. Dynamic predicates are stored in consulted
form, and can be updated during execution. Predicates are assumed to
be static unless they are explicitly declared to be dynamic. To
declare predicates to be dynamic, use the following declaration:
:-dynamic Atom/Arity,...,Atom/Arity.
Neng-Fa Zhou
2012-01-03