:- [pg_with_trace]. article_with_trace :- name(FileName, "article_with_trace.pl"), open(FileName,write,Stream), sigma_pg(pg(f,[f,g],[ [(f(0) -> zero), (f(s(n)) -> g(s(n))*f(n))], [(g(0) -> zero),(g(s(n)) -> suc(g(n)))] ]),Stream), close(Stream).