:- module counter. :- pragma termination_info(counter:init((builtin:in), (builtin:out)), finite(1, [yes, no]), cannot_loop). :- pragma termination_info(counter:init((builtin:in)) = (builtin:out), finite(1, [yes, no]), cannot_loop). :- pragma termination_info(counter:allocate((builtin:out), (builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop).