:- module relation. :- pragma termination_info(relation:init((builtin:out)), finite(6, [no, no]), cannot_loop). :- pragma termination_info((relation:init) = (builtin:out), finite(6, [no, no]), cannot_loop). :- pragma termination_info(relation:add_element((builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(relation:search_element((builtin:in), (builtin:in), (builtin:out)), finite(-10, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_element((builtin:in), (builtin:in), (builtin:out)), finite(-10, [no, yes, no, no]), can_loop). :- pragma termination_info(relation:lookup_element((builtin:in), (builtin:in)) = (builtin:out), finite(-10, [no, yes, no, no]), can_loop). :- pragma termination_info(relation:search_key((builtin:in), (builtin:in), (builtin:out)), finite(-10, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_key((builtin:in), (builtin:in), (builtin:out)), finite(-10, [no, yes, no, no]), can_loop). :- pragma termination_info(relation:lookup_key((builtin:in), (builtin:in)) = (builtin:out), finite(-10, [no, yes, no, no]), can_loop). :- pragma termination_info(relation:add((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:add((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:add_values((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:add_values((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:add_assoc_list((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:add_assoc_list((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:remove((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:remove((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:remove_assoc_list((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:remove_assoc_list((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:lookup((builtin:in), (builtin:in), (builtin:out)), finite(-10, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(relation:reverse_lookup((builtin:in), (builtin:out), (builtin:in)), finite(-10, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:reverse_lookup((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_from((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_from((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_to((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:lookup_to((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(relation:to_assoc_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:to_assoc_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:to_key_assoc_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:to_key_assoc_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:from_assoc_list((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:from_assoc_list((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:domain((builtin:in), (builtin:out)), finite(-6, [no, yes, no]), cannot_loop). :- pragma termination_info(relation:domain((builtin:in)) = (builtin:out), finite(-6, [no, yes, no]), cannot_loop). :- pragma termination_info(relation:inverse((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(relation:inverse((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(relation:compose((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:compose((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:dfs((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfs((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:dfsrev((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfsrev((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:dfs((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfs((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:dfsrev((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfsrev((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:dfs((builtin:in), (builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfsrev((builtin:in), (builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:is_dag((builtin:in)), finite(0, [no, no]), can_loop). :- pragma termination_info(relation:components((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:components((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:cliques((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:cliques((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:reduced((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:reduced((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:tsort((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:atsort((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:atsort((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:sc((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:sc((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:tc((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:tc((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:rtc((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:rtc((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(relation:traverse((builtin:in), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (pred((builtin:in), (builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(relation:traverse((builtin:in), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (pred((builtin:in), (builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:to_assoc_list_2((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:to_key_assoc_list_2((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:domain_sorted_list((builtin:in), (builtin:out)), finite(-6, [no, yes, no]), cannot_loop). :- pragma termination_info(relation:compose_2((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:compose_3((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfs_2((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:dfs_3((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:is_dag_2((builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no]), can_loop). :- pragma termination_info(relation:components_2((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:cliques_2((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:tsort_2((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:check_tsort((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), can_loop). :- pragma termination_info(relation:c_dfs((builtin:in), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:atsort_2((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:detect_fake_reflexives((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, no, yes, no]), cannot_loop). :- pragma termination_info(relation:traverse_nodes((builtin:in), (builtin:in), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (pred((builtin:in), (builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(relation:traverse_nodes((builtin:in), (builtin:in), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (pred((builtin:in), (builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(relation:traverse_children((builtin:in), (builtin:in), (builtin:in), (pred((builtin:in), (builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(relation:traverse_children((builtin:in), (builtin:in), (builtin:in), (pred((builtin:in), (builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop).