F.2 Library predicates

F.2.1 library(aggregate)

aggregate/3Aggregate bindings in Goal according to Template.
aggregate/4Aggregate bindings in Goal according to Template.
aggregate_all/3Aggregate bindings in Goal according to Template.
aggregate_all/4Aggregate bindings in Goal according to Template.
foreach/2True if conjunction of results is true.
free_variables/4Find free variables in bagof/setof template.

F.2.2 library(apply)

exclude/3Filter elements for which Goal fails.
foldl/4Fold a list, using arguments of the list as left argument.
foldl/5Fold a list, using arguments of the list as left argument.
foldl/6Fold a list, using arguments of the list as left argument.
foldl/7Fold a list, using arguments of the list as left argument.
include/3Filter elements for which Goal succeeds.
maplist/2True if Goal can successfully be applied on all elements of List.
maplist/3As maplist/2, operating on pairs of elements from two lists.
maplist/4As maplist/2, operating on triples of elements from three lists.
maplist/5As maplist/2, operating on quadruples of elements from four lists.
partition/4Filter elements of List according to Pred.
partition/5Filter List according to Pred in three sets.
scanl/4Left scan of list.
scanl/5Left scan of list.
scanl/6Left scan of list.
scanl/7Left scan of list.

F.2.3 library(assoc)

assoc_to_list/2Translate assoc into a pairs list
assoc_to_keys/2Translate assoc into a key list
assoc_to_values/2Translate assoc into a value list
empty_assoc/1Test/create an empty assoc
gen_assoc/3Non-deterministic enumeration of assoc
get_assoc/3Get associated value
get_assoc/5Get and replace associated value
list_to_assoc/2Translate pair list to assoc
map_assoc/2Test assoc values
map_assoc/3Map assoc values
max_assoc/3Max key-value of an assoc
min_assoc/3Min key-value of an assoc
ord_list_to_assoc/3Translate ordered list into an assoc
put_assoc/4Add association to an assoc

F.2.4 library(broadcast)

broadcast/1Send event notification
broadcast_request/1Request all agents
listen/2Listen to event notifications
listen/3Listen to event notifications
unlisten/1Stop listening to event notifications
unlisten/2Stop listening to event notifications
unlisten/3Stop listening to event notifications
listening/3Who is listening to event notifications?

F.2.5 library(charsio)

atom_to_chars/2Convert Atom into a list of character codes.
atom_to_chars/3Convert Atom into a difference list of character codes.
format_to_chars/3Use format/2 to write to a list of character codes.
format_to_chars/4Use format/2 to write to a difference list of character codes.
number_to_chars/2Convert Atom into a list of character codes.
number_to_chars/3Convert Number into a difference list of character codes.
open_chars_stream/2Open Codes as an input stream.
read_from_chars/2Read Codes into Term.
read_term_from_chars/3Read Codes into Term.
with_output_to_chars/2Run Goal as with once/1.
with_output_to_chars/3Run Goal as with once/1.
with_output_to_chars/4Same as with_output_to_chars/3 using an explicit stream.
write_to_chars/2Write a term to a code list.
write_to_chars/3Write a term to a code list.

F.2.6 library(check)

check/0Program completeness and consistency
list_undefined/0List undefined predicates
list_autoload/0List predicates that require autoload
list_redefined/0List locally redefined predicates

F.2.7 library(csv)

csv_read_file/2Read a CSV file into a list of rows.
csv_read_file/3Read a CSV file into a list of rows.
csv_read_file_row/3True when Row is a row in File.
csv_write_file/2Write a list of Prolog terms to a CSV file.
csv_write_file/3Write a list of Prolog terms to a CSV file.
csv_write_stream/3Write the rows in Data to Stream.
csv/3Prolog DCG to `read/write' CSV data.
csv/4Prolog DCG to `read/write' CSV data.

F.2.8 library(lists)

append/2Concatenate a list of lists.
append/3List1AndList2 is the concatenation of List1 and List2.
delete/3Delete matching elements from a list.
flatten/2Is true if List2 is a non-nested version of List1.
intersection/3True if Set3 unifies with the intersection of Set1 and Set2.
is_set/1True if Set is a proper list without duplicates.
last/2Succeeds when Last is the last element of List.
list_to_set/2True when Set has the same elements as List in the same order.
max_list/2True if Max is the largest number in List.
max_member/2True when Max is the largest member in the standard order of terms.
member/2True if Elem is a member of List.
min_list/2True if Min is the smallest number in List.
min_member/2True when Min is the smallest member in the standard order of terms.
nextto/3True if Y follows X in List.
nth0/3True when Elem is the Index'th element of List.
nth0/4Select/insert element at index.
nth1/3Is true when Elem is the Index'th element of List.
nth1/4As nth0/4, but counting starts at 1.
numlist/3List is a list [Low, Low+1, ... High].
permutation/2True when Xs is a permutation of Ys.
prefix/2True iff Part is a leading substring of Whole.
proper_length/2True when Length is the number of elements in the proper list List.
reverse/2Is true when the elements of List2 are in reverse order compared to List1.
same_length/2Is true when List1 and List2 are lists with the same number of elements.
select/3Is true when List1, with Elem removed, results in List2.
select/4Select two elements from two lists at the same place.
selectchk/3Semi-deterministic removal of first element in List that unifies with Elem.
selectchk/4Semi-deterministic version of select/4.
subset/2True if all elements of SubSet belong to Set as well.
subtract/3Delete all elements in Delete from Set.
sum_list/2Sum is the result of adding all numbers in List.
union/3True if Set3 unifies with the union of Set1 and Set2.

F.2.9 library(debug)

assertion/1Acts similar to C assert() macro.
assertion_failed/2This hook is called if the Goal of assertion/1 fails.
debug/1Add/remove a topic from being printed.
debug/3Format a message if debug topic is enabled.
debug_message_context/1Specify additional context for debug messages.
debug_print_hook/3Hook called by debug/3.
debugging/1Examine debug topics.
debugging/2Examine debug topics.
list_debug_topics/0List currently known debug topics and their setting.
nodebug/1Add/remove a topic from being printed.

F.2.10 library(option)

merge_options/3Merge two option lists.
meta_options/3Perform meta-expansion on options that are module-sensitive.
option/2Get an Option from OptionList.
option/3Get an Option Qfrom OptionList.
select_option/3Get and remove Option from an option list.
select_option/4Get and remove Option with default value.

F.2.11 library(optparse)

opt_arguments/3Extract commandline options according to a specification.
opt_help/2True when Help is a help string synthesized from OptsSpec.
opt_parse/4Equivalent to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).
opt_parse/5Parse the arguments Args (as list of atoms) according to OptsSpec.

F.2.12 library(ordsets)

is_ordset/1True if Term is an ordered set.
list_to_ord_set/2Transform a list into an ordered set.
ord_add_element/3Insert an element into the set.
ord_del_element/3Delete an element from an ordered set.
ord_disjoint/2True if Set1 and Set2 have no common elements.
ord_empty/1True when List is the empty ordered set.
ord_intersect/2True if both ordered sets have a non-empty intersection.
ord_intersect/3Intersection holds the common elements of Set1 and Set2.
ord_intersection/2Intersection of a powerset.
ord_intersection/3Intersection holds the common elements of Set1 and Set2.
ord_intersection/4Intersection and difference between two ordered sets.
ord_memberchk/2True if Element is a member of OrdSet, compared using ==.
ord_seteq/2True if Set1 and Set2 have the same elements.
ord_subset/2Is true if all elements of Sub are in Super.
ord_subtract/3Diff is the set holding all elements of InOSet that are not in NotInOSet.
ord_symdiff/3Is true when Difference is the symmetric difference of Set1 and Set2.
ord_union/2True if Union is the union of all elements in the superset SetOfSets.
ord_union/3Union is the union of Set1 and Set2.
ord_union/4True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).

F.2.13 library(predicate_options)

assert_predicate_options/4As predicate_options(:PI, +Arg, +Options).
check_predicate_option/3Verify predicate options at runtime.
check_predicate_options/0Analyse loaded program for erroneous options.
current_option_arg/2True when Arg of PI processes predicate options.
current_predicate_option/3True when Arg of PI processes Option.
current_predicate_options/3True when Options is the current active option declaration for PI on Arg.
derive_predicate_options/0Derive new predicate option declarations.
derived_predicate_options/1Derive predicate option declarations for a module.
derived_predicate_options/3Derive option arguments using static analysis.
predicate_options/3Declare that the predicate PI processes options on Arg.
retractall_predicate_options/0Remove all dynamically (derived) predicate options.

F.2.14 library(prologpack)

environment/2Hook to define the environment for building packs.
pack_info/1Print more detailed information about Pack.
pack_install/1Install a package.
pack_install/2Install package Name.
pack_list/1Query package server and installed packages and display results.
pack_list_installed/0List currently installed packages.
pack_rebuild/0Rebuild foreign components of all packages.
pack_rebuild/1Rebuilt possible foreign components of Pack.
pack_remove/1Remove the indicated package.
pack_search/1Query package server and installed packages and display results.
pack_upgrade/1Try to upgrade the package Pack.

F.2.15 library(prologxref)

prolog:called_by/2(hook) Extend cross-referencer
xref_built_in/1Examine defined built-ins
xref_called/3Examine called predicates
xref_clean/1Remove analysis of source
xref_current_source/1Examine cross-referenced sources
xref_defined/3Examine defined predicates
xref_exported/2Examine exported predicates
xref_module/2Module defined by source
xref_source/1Cross-reference analysis of source

F.2.16 library(pairs)

group_pairs_by_key/2Group values with the same key.
map_list_to_pairs/3Create a Key-Value list by mapping each element of List.
pairs_keys/2Remove the values from a list of Key-Value pairs.
pairs_keys_values/3True if Keys holds the keys of Pairs and Values the values.
pairs_values/2Remove the keys from a list of Key-Value pairs.
transpose_pairs/2Swap Key-Value to Value-Key.

F.2.17 library(pio)

F.2.17.1 library(pure_input)

phrase_from_file/2Process the content of File using the DCG rule Grammar.
phrase_from_file/3As phrase_from_file/2, providing additional Options.
stream_to_lazy_list/2Create a lazy list representing the character codes in Stream.

F.2.18 library(random)

getrand/1Query/set the state of the random generator.
maybe/0Succeed/fail with equal probability (variant of maybe/1).
maybe/1Succeed with probability P, fail with probability 1-P.
maybe/2Succeed with probability K/N (variant of maybe/1).
random/1Binds R to a new random float in the _open_ interval (0.0,1.0).
random/3Generate a random integer or float in a range.
random_between/3Binds R to a random integer in [L,U] (i.e., including both L and U).
random_member/2X is a random member of List.
random_perm2/4Does X=A,Y=B or X=B,Y=A with equal probability.
random_permutation/2Permutation is a random permutation of List.
random_select/3Randomly select or insert an element.
randseq/3S is a list of K unique random integers in the range 1..N.
randset/3S is a sorted list of K unique random integers in the range 1..N.
setrand/1Query/set the state of the random generator.

F.2.19 library(readutil)

read_line_to_codes/2Read line from a stream
read_line_to_codes/3Read line from a stream
read_stream_to_codes/2Read contents of stream
read_stream_to_codes/3Read contents of stream
read_file_to_codes/3Read contents of file
read_file_to_terms/3Read contents of file to Prolog terms

F.2.20 library(record)

record/1Define named fields in a term

F.2.21 library(registry)

This library is only available on Windows systems.

registry_get_key/2Get principal value of key
registry_get_key/3Get associated value of key
registry_set_key/2Set principal value of key
registry_set_key/3Set associated value of key
registry_delete_key/1Remove a key
shell_register_file_type/4Register a file-type
shell_register_dde/6Register DDE action
shell_register_prolog/1Register Prolog

F.2.22 library(ugraphs)

vertices_edges_to_ugraph/3Create unweighted graph
vertices/2Find vertices in graph
edges/2Find edges in graph
add_vertices/3Add vertices to graph
del_vertices/3Delete vertices from graph
add_edges/3Add edges to graph
del_edges/3Delete edges from graph
transpose/2Invert the direction of all edges
neighbors/3Find neighbors of vertice
neighbours/3Find neighbors of vertice
complement/2Inverse presense of edges
compose/3
top_sort/2Sort graph topologically
top_sort/3Sort graph topologically
transitive_closure/2Create transitive closure of graph
reachable/3Find all reachable vertices
ugraph_union/3Union of two graphs

F.2.23 library(url)

file_name_to_url/2Translate between a filename and a file:// URL.
global_url/3Translate a possibly relative URL into an absolute one.
http_location/2Construct or analyze an HTTP location.
is_absolute_url/1True if URL is an absolute URL.
parse_url/2Construct or analyse a URL.
parse_url/3Similar to parse_url/2 for relative URLs.
parse_url_search/2Construct or analyze an HTTP search specification.
set_url_encoding/2Query and set the encoding for URLs.
url_iri/2Convert between a URL, encoding in US-ASCII and an IRI.
www_form_encode/2En/decode to/from application/x-www-form-encoded.

F.2.24 library(www_browser)

www_open_url/1Open a web-page in a browser

F.2.25 library(clp/clpfd)

#/\/2P and Q hold.
#</2X is less than Y.
#<==/2Q implies P.
#<==>/2P and Q are equivalent.
#=/2X equals Y.
#=</2X is less than or equal to Y.
#==>/2P implies Q.
#>/2X is greater than Y.
#>=/2X is greater than or equal to Y.
#\/1The reifiable constraint Q does _not_ hold.
#\//2P or Q holds.
#\=/2X is not Y.
all_different/1Vars are pairwise distinct.
all_distinct/1Like all_different/1, with stronger propagation.
automaton/3Constrain variables with a finite automaton.
automaton/8Constrain variables with a finite automaton.
chain/2Constrain variables to be a chain with respect to Relation.
circuit/1True if the list Vs of finite domain variables induces a Hamiltonian circuit.
cumulative/1Equivalent to cumulative(Tasks, [limit(1)]).
cumulative/2Tasks is a list of tasks, each of the form task(S_i, D_i, E_i, C_i, T_i).
element/3The N-th element of the list of finite domain variables Vs is V.
fd_dom/2Dom is the current domain (see in/2) of Var.
fd_inf/2Inf is the infimum of the current domain of Var.
fd_size/2Determine the size of a variable's domain.
fd_sup/2Sup is the supremum of the current domain of Var.
fd_var/1True iff Var is a CLP(FD) variable.
global_cardinality/2Global Cardinality constraint.
global_cardinality/3Global Cardinality constraint.
in/2Var is an element of Domain.
indomain/1Bind Var to all feasible values of its domain on backtracking.
ins/2The variables in the list Vars are elements of Domain.
label/1Equivalent to labeling([], Vars).
labeling/2Assign a value to each variable in Vars.
lex_chain/1Lists are lexicographically non-decreasing.
scalar_product/4Cs is a list of integers, Vs is a list of variables and integers.
serialized/2Constrain a set of intervals to a non-overlapping sequence.
sum/3The sum of elements of the list Vars is in relation Rel to Expr.
transpose/2Transpose a list of lists of the same length.
tuples_in/2Relation must be a list of lists of integers.
zcompare/3Analogous to compare/3, with finite domain variables A and B.

F.2.26 library(clpqr)

entailed/1Check if constraint is entailed
inf/2Find the infimum of an expression
sup/2Find the supremum of an expression
minimize/1Minimizes an expression
maximize/1Maximizes an expression
bb_inf/3Infimum of expression for mixed-integer problems
bb_inf/4Infimum of expression for mixed-integer problems
bb_inf/5Infimum of expression for mixed-integer problems
dump/3Dump constraints on variables

F.2.27 library(clp/simplex)

assignment/2Solve assignment problem
constraint/3Add linear constraint to state
constraint/4Add named linear constraint to state
constraint_add/4Extend a named constraint
gen_state/1Create empty linear program
maximize/3Maximize objective function in to linear constraints
minimize/3Minimize objective function in to linear constraints
objective/2Fetch value of objective function
shadow_price/3Fetch shadow price in solved state
transportation/4Solve transportation problem
variable_value/3Fetch value of variable in solved state

F.2.28 library(thread_pool)

current_thread_pool/1True if Name refers to a defined thread pool.
thread_create_in_pool/4Create a thread in Pool.
thread_pool_create/3Create a pool of threads.
thread_pool_destroy/1Destroy the thread pool named Name.
thread_pool_property/2True if Property is a property of thread pool Name.

F.2.29 library(varnumbers)

max_var_number/3True when Max is the max of Start and the highest numbered $VAR(N) term.
numbervars/1Number variables in Term using $VAR(N).
varnumbers/2Inverse of numbervars/1.
varnumbers/3Inverse of numbervars/3.