:- module bag. :- pragma termination_info(bag:init((builtin:out)), finite(0, [no, no]), cannot_loop). :- pragma termination_info((bag:init) = (builtin:out), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bag:insert((builtin:in), (builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(bag:insert((builtin:in), (builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(bag:insert_list((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:insert_list((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:from_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:from_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:to_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:to_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:to_assoc_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:to_assoc_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:to_list_without_duplicates((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bag:to_list_without_duplicates((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(bag:remove((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:det_remove((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:det_remove((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:remove_list((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:det_remove_list((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:det_remove_list((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:delete((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:delete((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:remove_all((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:delete_all((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:delete_all((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:contains((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(bag:count_value((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(bag:count_value((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(bag:subtract((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:subtract((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:union((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:union((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:intersect((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:intersect((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:intersect((builtin:in), (builtin:in)), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bag:least_upper_bound((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:least_upper_bound((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(bag:is_subbag((builtin:in), (builtin:in)), finite(0, [no, no, no]), can_loop). :- pragma termination_info(bag:is_empty((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(bag:remove_smallest((builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:subset_compare((builtin:out), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), can_loop). :- pragma termination_info(bag:to_list_2((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(bag:intersect_2((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop).