dymamic指令で、後のプログラム実行時に修正される可能性のある述語を宣言 します。
関連: minervac -dynamic
:- dynamic(aa/1).list_aa :- aa(X), writeq(aa(X)),nl, flush_output, fail ; true.
remove_first :- retract(aa(_)).
add_top :- asserta(aa(300)).
add_bottom :- assertz(aa(xyz)).
aa(1). aa(2). aa(3).