:- module set. :- pragma termination_info(set:list_to_set((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(set:list_to_set((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(set:sorted_list_to_set((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:sorted_list_to_set((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:to_sorted_list((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:to_sorted_list((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:init((builtin:uo)), finite(0, [no, no]), cannot_loop). :- pragma termination_info((set:init) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(set:singleton_set((builtin:in), (builtin:out)), finite(-2, [no, yes, no]), cannot_loop). :- pragma termination_info(set:singleton_set((builtin:out), (builtin:in)), finite(2, [no, no, yes]), cannot_loop). :- pragma termination_info(set:make_singleton_set((builtin:in)) = (builtin:out), finite(2, [no, yes, no]), cannot_loop). :- pragma termination_info(set:equal((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:empty((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(set:non_empty((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(set:subset((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:superset((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:member((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:member((builtin:out), (builtin:in)), finite(-2, [no, no, yes]), cannot_loop). :- pragma termination_info(set:is_member((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(set:contains((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:insert((builtin:di), (builtin:di), (builtin:uo)), finite(2, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(set:insert((builtin:in), (builtin:in), (builtin:out)), finite(2, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(set:insert((builtin:in), (builtin:in)) = (builtin:out), finite(2, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(set:insert_list((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), can_loop). :- pragma termination_info(set:insert_list((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), can_loop). :- pragma termination_info(set:delete((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:delete((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:delete_list((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), can_loop). :- pragma termination_info(set:delete_list((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), can_loop). :- pragma termination_info(set:remove((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:remove_list((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), can_loop). :- pragma termination_info(set:remove_least((builtin:in), (builtin:out), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:union((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(set:union((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(set:union_list((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:power_union((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:power_union((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:intersect((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:intersect((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:power_intersect((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:power_intersect((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:intersect_list((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(set:difference((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:difference((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(set:count((builtin:in), (builtin:out)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:count((builtin:in)) = (builtin:out), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(set:map((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(set:filter((pred((builtin:in)) is semidet), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(set:filter_map((func((builtin:in)) = (builtin:out) is semidet), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(set:fold((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(set:fold((pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(set:fold((pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(set:fold((pred((builtin:in), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(set:divide((pred((builtin:in)) is semidet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop).