\chapter{Summary}		\label{sec:summary}

% Required Macros:
%
% environment `summarylist' to embrace a summary list
%
% \predicatesummary{Name}{Arity}{Summary}
% \oppredsummary{Name}{Arity}{Associativity}{Priority}{Summary}
% \functionsummary{Name}{Arity}{Summary}
% \opfuncsummary{Name}{Arity}{Associativity}{Priority}{Summary}
% \opsummary{Priority}{Associativity}{Name}{Function}

\section{Predicates}		\label{sec:predsummary}

The predicate summary is used by the Prolog predicate \index{apropos/1}\predref{apropos}{1} to
suggest predicates from a keyword.

\begin{summarylist}{ll}
\predicatesummary{@}{2}{Call using calling context}
\predicatesummary{\Scut}{0}{Cut (discard choicepoints)}
\oppredsummary{\Scomma}{2}{xfy}{1000}{Conjunction of goals}
\oppredsummary{\Sifthen}{2}{xfy}{1050}{If-then-else}
\oppredsummary{\Ssoftcut}{2}{xfy}{1050}{Soft-cut}
\predicatesummary{\Sdot}{2}{Consult. Also functional notation}
\oppredsummary{\Smapselect}{2}{xfx}{700}{Select keys from a dict}
\oppredsummary{\Ssemicolon}{2}{xfy}{1100}{Disjunction of two goals}
\oppredsummary{\Slt}{2}{xfx}{700}{Arithmetic smaller}
\oppredsummary{\Seq}{2}{xfx}{700}{True when arguments are unified}
\oppredsummary{\Suniv}{2}{xfx}{700}{``Univ.'' Term to list conversion}
\oppredsummary{\Saeq}{2}{xfx}{700}{Arithmetic equality}
\oppredsummary{\Sle}{2}{xfx}{700}{Arithmetic smaller or equal}
\oppredsummary{\Sequal}{2}{xfx}{700}{Test for strict equality}
\oppredsummary{\Sstructeq}{2}{xfx}{700}{Test for structural equality (variant)}
\oppredsummary{\Sane}{2}{xfx}{700}{Arithmetic not equal}
\oppredsummary{\Sgt}{2}{xfx}{700}{Arithmetic larger}
\oppredsummary{\Sge}{2}{xfx}{700}{Arithmetic larger or equal}
\oppredsummary{\Smappunify}{2}{xfx}{700}{Partial dict unification}
\predicatesummary{?=}{2}{Test of terms can be compared now}
\oppredsummary{\Stlt}{2}{xfx}{700}{Standard order smaller}
\oppredsummary{\Stle}{2}{xfx}{700}{Standard order smaller or equal}
\oppredsummary{\Stgt}{2}{xfx}{700}{Standard order larger}
\oppredsummary{\Stge}{2}{xfx}{700}{Standard order larger or equal}
\oppredsummary{\Snot}{1}{fy}{900}{Negation by failure. Same as \index{not/1}\predref{not}{1}}
\oppredsummary{\Sne}{2}{xfx}{700}{True if arguments cannot be unified}
\oppredsummary{\Snequal}{2}{xfx}{700}{True if arguments are not strictly equal}
\oppredsummary{\Sstructneq}{2}{xfx}{700}{Not structural identical}
\oppredsummary{\Shat}{2}{xfy}{200}{Existential quantification (\index{bagof/3}\predref{bagof}{3}, \index{setof/3}\predref{setof}{3})}
\oppredsummary{\Sbar}{2}{xfy}{1105}{Disjunction in DCGs. Same as \predref{\Ssemicolon}{2}}
\predicatesummary{\Scurl}{1}{DCG escape; constraints}
\predicatesummary{abolish}{1}{Remove predicate definition from the database}
\predicatesummary{abolish}{2}{Remove predicate definition from the database}
\predicatesummary{abolish_all_tables}{0}{Abolish computed tables}
\predicatesummary{abolish_table_subgoals}{1}{Abolish tables for a goal}
\predicatesummary{abort}{0}{Abort execution, return to top level}
\predicatesummary{absolute_file_name}{2}{Get absolute path name}
\predicatesummary{absolute_file_name}{3}{Get absolute path name with options}
\predicatesummary{access_file}{2}{Check access permissions of a file}
\predicatesummary{acyclic_term}{1}{Test term for cycles}
\predicatesummary{add_import_module}{3}{Add module to the auto-import list}
\predicatesummary{add_nb_set}{2}{Add term to a non-backtrackable set}
\predicatesummary{add_nb_set}{3}{Add term to a non-backtrackable set}
\predicatesummary{append}{1}{Append to a file}
\predicatesummary{apply}{2}{Call goal with additional arguments}
\predicatesummary{apropos}{1}{\pllib{online_help} Search manual}
\predicatesummary{arg}{3}{Access argument of a term}
\predicatesummary{assoc_to_list}{2}{Convert association tree to list}
\predicatesummary{assert}{1}{Add a clause to the database}
\predicatesummary{assert}{2}{Add a clause to the database, give reference}
\predicatesummary{asserta}{1}{Add a clause to the database (first)}
\predicatesummary{asserta}{2}{Add a clause to the database (first)}
\predicatesummary{assertion}{1}{Make assertions about your program}
\predicatesummary{assertz}{1}{Add a clause to the database (last)}
\predicatesummary{assertz}{2}{Add a clause to the database (last)}
\predicatesummary{attach_console}{0}{Attach I/O console to thread}
\predicatesummary{attach_packs}{0}{Attach add-ons}
\predicatesummary{attach_packs}{1}{Attach add-ons from directory}
\predicatesummary{attach_packs}{2}{Attach add-ons from directory}
\predicatesummary{attribute_goals}{3}{Project attributes to goals}
\predicatesummary{attr_unify_hook}{2}{Attributed variable unification hook}
\predicatesummary{attr_portray_hook}{2}{Attributed variable print hook}
\predicatesummary{attvar}{1}{Type test for attributed variable}
\predicatesummary{at_end_of_stream}{0}{Test for end of file on input}
\predicatesummary{at_end_of_stream}{1}{Test for end of file on stream}
\predicatesummary{at_halt}{1}{Register goal to run at \index{halt/1}\predref{halt}{1}}
\predicatesummary{atom}{1}{Type check for an atom}
\predicatesummary{atom_chars}{2}{Convert between atom and list of characters}
\predicatesummary{atom_codes}{2}{Convert between atom and list of characters codes}
\predicatesummary{atom_concat}{3}{Contatenate two atoms}
\predicatesummary{atom_length}{2}{Determine length of an atom}
\predicatesummary{atom_number}{2}{Convert between atom and number}
\predicatesummary{atom_prefix}{2}{Test for start of atom}
\predicatesummary{atom_string}{2}{Conversion between atom and string}
\predicatesummary{atom_to_term}{3}{Convert between atom and term}
\predicatesummary{atomic}{1}{Type check for primitive}
\predicatesummary{atomic_concat}{3}{Concatenate two atomic values to an atom}
\predicatesummary{atomic_list_concat}{2}{Append a list of atomics}
\predicatesummary{atomic_list_concat}{3}{Append a list of atomics with separator}
\predicatesummary{atomics_to_string}{2}{Concatenate list of inputs to a string}
\predicatesummary{atomics_to_string}{3}{Concatenate list of inputs to a string}
\predicatesummary{autoload}{0}{Autoload all predicates now}
\predicatesummary{autoload_path}{1}{Add directories for autoloading}
\predicatesummary{b_getval}{2}{Fetch backtrackable global variable}
\predicatesummary{b_set_dict}{3}{Destructive assignment on a dict}
\predicatesummary{b_setval}{2}{Assign backtrackable global variable}
\predicatesummary{bagof}{3}{Find all solutions to a goal}
\predicatesummary{between}{3}{Integer range checking/generating}
\predicatesummary{blob}{2}{Type check for a blob}
\predicatesummary{break}{0}{Start interactive top level}
\predicatesummary{break_hook}{6}{\hook{prolog} Debugger hook}
\predicatesummary{byte_count}{2}{Byte-position in a stream}
\predicatesummary{call}{1}{Call a goal}
\predicatesummary{call}{[2..]}{Call with additional arguments}
\predicatesummary{call_cleanup}{3}{Guard a goal with a cleaup-handler}
\predicatesummary{call_cleanup}{2}{Guard a goal with a cleaup-handler}
\predicatesummary{call_dcg}{3}{As \index{phrase/3}\predref{phrase}{3} without type checking}
\predicatesummary{call_residue_vars}{2}{Find residual attributed variables}
\predicatesummary{call_shared_object_function}{2}{UNIX:  Call C-function in shared (.so) file}
\predicatesummary{call_with_depth_limit}{3}{Prove goal with bounded depth}
\predicatesummary{call_with_inference_limit}{3}{Prove goal in limited inferences}
\predicatesummary{callable}{1}{Test for atom or compound term}
\predicatesummary{cancel_halt}{1}{Cancel \index{halt/0}\predref{halt}{0} from an \index{at_halt/1}\predref{at_halt}{1} hook}
\predicatesummary{catch}{3}{Call goal, watching for exceptions}
\predicatesummary{char_code}{2}{Convert between character and character code}
\predicatesummary{char_conversion}{2}{Provide mapping of input characters}
\predicatesummary{char_type}{2}{Classify characters}
\predicatesummary{character_count}{2}{Get character index on a stream}
\predicatesummary{chdir}{1}{Compatibility: change working directory}
\predicatesummary{chr_constraint}{1}{CHR Constraint declaration}
\predicatesummary{chr_show_store}{1}{List suspended CHR constraints}
\predicatesummary{chr_trace}{0}{Start CHR tracer}
\predicatesummary{chr_type}{1}{CHR Type declaration}
\predicatesummary{chr_notrace}{0}{Stop CHR tracer}
\predicatesummary{chr_leash}{1}{Define CHR leashed ports}
\predicatesummary{chr_option}{2}{Specify CHR compilation options}
\predicatesummary{clause}{2}{Get clauses of a predicate}
\predicatesummary{clause}{3}{Get clauses of a predicate}
\predicatesummary{clause_property}{2}{Get properties of a clause}
\predicatesummary{close}{1}{Close stream}
\predicatesummary{close}{2}{Close stream (forced)}
\predicatesummary{close_dde_conversation}{1}{Win32: Close DDE channel}
\predicatesummary{close_shared_object}{1}{UNIX:  Close shared library (.so file)}
\predicatesummary{collation_key}{2}{Sort key for locale dependent ordering}
\predicatesummary{comment_hook}{3}{\hook{prolog} handle comments in sources}
\predicatesummary{compare}{3}{Compare, using a predicate to determine the order}
\predicatesummary{compile_aux_clauses}{1}{Compile predicates for \index{goal_expansion/2}\predref{goal_expansion}{2}}
\predicatesummary{compile_predicates}{1}{Compile dynamic code to static}
\predicatesummary{compiling}{0}{Is this a compilation run?}
\predicatesummary{compound}{1}{Test for compound term}
\predicatesummary{compound_name_arity}{3}{Name and arity of a compound term}
\predicatesummary{compound_name_arguments}{3}{Name and arguments of a compound term}
\predicatesummary{code_type}{2}{Classify a character-code}
\predicatesummary{consult}{1}{Read (compile) a Prolog source file}
\predicatesummary{context_module}{1}{Get context module of current goal}
\predicatesummary{convert_time}{8}{Break time stamp into fields}
\predicatesummary{convert_time}{2}{Convert time stamp to string}
\predicatesummary{copy_stream_data}{2}{Copy all data from stream to stream}
\predicatesummary{copy_stream_data}{3}{Copy n bytes from stream to stream}
\predicatesummary{copy_predicate_clauses}{2}{Copy clauses between predicates}
\predicatesummary{copy_term}{2}{Make a copy of a term}
\predicatesummary{copy_term}{3}{Copy a term and obtain attribute-goals}
\predicatesummary{copy_term_nat}{2}{Make a copy of a term without attributes}
\predicatesummary{create_prolog_flag}{3}{Create a new Prolog flag}
\predicatesummary{current_arithmetic_function}{1}{Examine evaluable functions}
\predicatesummary{current_atom}{1}{Examine existing atoms}
\predicatesummary{current_blob}{2}{Examine typed blobs}
\predicatesummary{current_char_conversion}{2}{Query input character mapping}
\predicatesummary{current_engine}{1}{Enumerate known engines}
\predicatesummary{current_flag}{1}{Examine existing flags}
\predicatesummary{current_foreign_library}{2}{\pllib{shlib} Examine loaded shared libraries (.so files)}
\predicatesummary{current_format_predicate}{2}{Enumerate user-defined format codes}
\predicatesummary{current_functor}{2}{Examine existing name/arity pairs}
\predicatesummary{current_input}{1}{Get current input stream}
\predicatesummary{current_key}{1}{Examine existing database keys}
\predicatesummary{current_locale}{1}{Get the current locale}
\predicatesummary{current_module}{1}{Examine existing modules}
\predicatesummary{current_op}{3}{Examine current operator declarations}
\predicatesummary{current_output}{1}{Get the current output stream}
\predicatesummary{current_predicate}{1}{Examine existing predicates (ISO)}
\predicatesummary{current_predicate}{2}{Examine existing predicates}
\predicatesummary{current_signal}{3}{Current software signal mapping}
\predicatesummary{current_stream}{3}{Examine open streams}
\predicatesummary{current_table}{2}{Find answer table for a variant}
\predicatesummary{current_trie}{1}{Enumerate known tries}
\predicatesummary{cyclic_term}{1}{Test term for cycles}
\predicatesummary{day_of_the_week}{2}{Determine ordinal-day from date}
\predicatesummary{date_time_stamp}{2}{Convert date structure to time-stamp}
\predicatesummary{date_time_value}{3}{Extract info from a date structure}
\predicatesummary{dcg_translate_rule}{2}{Source translation of DCG rules}
\predicatesummary{dcg_translate_rule}{4}{Source translation of DCG rules}
\predicatesummary{dde_current_connection}{2}{Win32: Examine open DDE connections}
\predicatesummary{dde_current_service}{2}{Win32: Examine DDE services provided}
\predicatesummary{dde_execute}{2}{Win32: Execute command on DDE server}
\predicatesummary{dde_register_service}{2}{Win32: Become a DDE server}
\predicatesummary{dde_request}{3}{Win32: Make a DDE request}
\predicatesummary{dde_poke}{3}{Win32: POKE operation on DDE server}
\predicatesummary{dde_unregister_service}{1}{Win32: Terminate a DDE service}
\predicatesummary{debug}{0}{Test for debugging mode}
\predicatesummary{debug}{1}{Select topic for debugging}
\predicatesummary{debug}{3}{Print debugging message on topic}
\predicatesummary{debug_control_hook}{1}{\hook{prolog} Extend \index{spy/1}\predref{spy}{1}, etc.}
\predicatesummary{debugging}{0}{Show debugger status}
\predicatesummary{debugging}{1}{Test where we are debugging topic}
\predicatesummary{default_module}{2}{Query module inheritance}
\predicatesummary{del_attr}{2}{Delete attribute from variable}
\predicatesummary{del_attrs}{1}{Delete all attributes from variable}
\predicatesummary{del_dict}{4}{Delete Key-Value pair from a dict}
\predicatesummary{delete_directory}{1}{Remove a folder from the file system}
\predicatesummary{delete_file}{1}{Remove a file from the file system}
\predicatesummary{delete_import_module}{2}{Remove module from import list}
\predicatesummary{deterministic}{1}{Test deterministicy of current clause}
\predicatesummary{dif}{2}{Constrain two terms to be different}
\predicatesummary{directory_files}{2}{Get entries of a directory/folder}
\oppredsummary{discontiguous}{1}{fx}{1150}{Indicate distributed definition of a predicate}
\predicatesummary{divmod}{4}{Compute quotient and remainder of two integers}
\predicatesummary{downcase_atom}{2}{Convert atom to lower-case}
\predicatesummary{duplicate_term}{2}{Create a copy of a term}
\predicatesummary{dwim_match}{2}{Atoms match in ``Do What I Mean'' sense}
\predicatesummary{dwim_match}{3}{Atoms match in ``Do What I Mean'' sense}
\predicatesummary{dwim_predicate}{2}{Find predicate in ``Do What I Mean'' sense}
\oppredsummary{dynamic}{1}{fx}{1150}{Indicate predicate definition may change}
\predicatesummary{edit}{0}{Edit current script- or associated file}
\predicatesummary{edit}{1}{Edit a file, predicate, module (extensible)}
\predicatesummary{elif}{1}{Part of conditional compilation (directive)}
\predicatesummary{else}{0}{Part of conditional compilation (directive)}
\predicatesummary{empty_assoc}{1}{Create/test empty association tree}
\predicatesummary{empty_nb_set}{1}{Test/create an empty non-backtrackable set}
\predicatesummary{encoding}{1}{Define encoding inside a source file}
\predicatesummary{endif}{0}{End of conditional compilation (directive)}
\predicatesummary{engine_create}{3}{Create an interactor}
\predicatesummary{engine_create}{4}{Create an interactor}
\predicatesummary{engine_destroy}{1}{Destroy an interactor}
\predicatesummary{engine_fetch}{1}{Get term from caller}
\predicatesummary{engine_next}{2}{Ask interactor for next term}
\predicatesummary{engine_next_reified}{2}{Ask interactor for next term}
\predicatesummary{engine_post}{2}{Send term to an interactor}
\predicatesummary{engine_post}{3}{Send term to an interactor and wait for reply}
\predicatesummary{engine_self}{1}{Get handle to running interactor}
\predicatesummary{engine_yield}{1}{Make term available to caller}
\predicatesummary{ensure_loaded}{1}{Consult a file if that has not yet been done}
\predicatesummary{erase}{1}{Erase a database record or clause}
\predicatesummary{exception}{3}{\hook{user} Handle runtime exceptions}
\predicatesummary{exists_directory}{1}{Check existence of directory}
\predicatesummary{exists_file}{1}{Check existence of file}
\predicatesummary{exists_source}{1}{Check existence of a Prolog source}
\predicatesummary{expand_answer}{2}{Expand answer of query}
\predicatesummary{expand_file_name}{2}{Wildcard expansion of file names}
\predicatesummary{expand_file_search_path}{2}{Wildcard expansion of file paths}
\predicatesummary{expand_goal}{2}{Compiler: expand goal in clause-body}
\predicatesummary{expand_goal}{4}{Compiler: expand goal in clause-body}
\predicatesummary{expand_query}{4}{Expanded entered query}
\predicatesummary{expand_term}{2}{Compiler: expand read term into clause(s)}
\predicatesummary{expand_term}{4}{Compiler: expand read term into clause(s)}
\predicatesummary{expects_dialect}{1}{For which Prolog dialect is this code written?}
\predicatesummary{explain}{1}{\pllib{explain} Explain argument}
\predicatesummary{explain}{2}{\pllib{explain} 2nd argument is explanation of first}
\predicatesummary{export}{1}{Export a predicate from a module}
\predicatesummary{fail}{0}{Always false}
\predicatesummary{false}{0}{Always false}
\predicatesummary{fast_term_serialized}{2}{Fast term (de-)serialization}
\predicatesummary{fast_read}{2}{Read binary term serialization}
\predicatesummary{fast_write}{2}{Write binary term serialization}
\predicatesummary{current_prolog_flag}{2}{Get system configuration parameters}
\predicatesummary{file_base_name}{2}{Get file part of path}
\predicatesummary{file_directory_name}{2}{Get directory part of path}
\predicatesummary{file_name_extension}{3}{Add, remove or test file extensions}
\predicatesummary{file_search_path}{2}{Define path-aliases for locating files}
\predicatesummary{find_chr_constraint}{1}{Returns a constraint from the store}
\predicatesummary{findall}{3}{Find all solutions to a goal}
\predicatesummary{findall}{4}{Difference list version of \index{findall/3}\predref{findall}{3}}
\predicatesummary{findnsols}{4}{Find first \arg{N} solutions}
\predicatesummary{findnsols}{5}{Difference list version of \index{findnsols/4}\predref{findnsols}{4}}
\predicatesummary{fill_buffer}{1}{Fill the input buffer of a stream}
\predicatesummary{flag}{3}{Simple global variable system}
\predicatesummary{float}{1}{Type check for a floating point number}
\predicatesummary{flush_output}{0}{Output pending characters on current stream}
\predicatesummary{flush_output}{1}{Output pending characters on specified stream}
\predicatesummary{forall}{2}{Prove goal for all solutions of another goal}
\predicatesummary{format}{1}{Formatted output}
\predicatesummary{format}{2}{Formatted output with arguments}
\predicatesummary{format}{3}{Formatted output on a stream}
\predicatesummary{format_time}{3}{C strftime() like date/time formatter}
\predicatesummary{format_time}{4}{date/time formatter with explicit locale}
\predicatesummary{format_predicate}{2}{Program \index{format/[1,2]}\predref{format}{[1,2]}}
\predicatesummary{term_attvars}{2}{Find attributed variables in a term}
\predicatesummary{term_variables}{2}{Find unbound variables in a term}
\predicatesummary{term_variables}{3}{Find unbound variables in a term}
\predicatesummary{text_to_string}{2}{Convert arbitrary text to a string}
\predicatesummary{freeze}{2}{Delay execution until variable is bound}
\predicatesummary{frozen}{2}{Query delayed goals on var}
\predicatesummary{functor}{3}{Get name and arity of a term or construct a term }
\predicatesummary{garbage_collect}{0}{Invoke the garbage collector}
\predicatesummary{garbage_collect_atoms}{0}{Invoke the atom garbage collector}
\predicatesummary{garbage_collect_clauses}{0}{Invoke clause garbage collector}
\predicatesummary{gen_assoc}{3}{Enumerate members of association tree}
\predicatesummary{gen_nb_set}{2}{Generate members of non-backtrackable set}
\predicatesummary{gensym}{2}{Generate unique atoms from a base}
\predicatesummary{get}{1}{Read first non-blank character}
\predicatesummary{get}{2}{Read first non-blank character from a stream}
\predicatesummary{get_assoc}{3}{Fetch key from association tree}
\predicatesummary{get_assoc}{5}{Fetch key from association tree}
\predicatesummary{get_attr}{3}{Fetch named attribute from a variable}
\predicatesummary{get_attrs}{2}{Fetch all attributes of a variable}
\predicatesummary{get_byte}{1}{Read next byte (ISO)}
\predicatesummary{get_byte}{2}{Read next byte from a stream (ISO)}
\predicatesummary{get_char}{1}{Read next character as an atom (ISO)}
\predicatesummary{get_char}{2}{Read next character from a stream (ISO)}
\predicatesummary{get_code}{1}{Read next character (ISO)}
\predicatesummary{get_code}{2}{Read next character from a stream (ISO)}
\predicatesummary{get_dict}{3}{Get the value associated to a key from a dict}
\predicatesummary{get_dict_ex}{3}{Get the value associated to a key from a dict}
\predicatesummary{get_dict}{5}{Replace existing value in a dict}
\predicatesummary{get_flag}{2}{Get value of a flag}
\predicatesummary{get_single_char}{1}{Read next character from the terminal}
\predicatesummary{get_string_code}{3}{Get character code at index in string}
\predicatesummary{get_time}{1}{Get current time}
\predicatesummary{get0}{1}{Read next character}
\predicatesummary{get0}{2}{Read next character from a stream}
\predicatesummary{getenv}{2}{Get shell environment variable}
\predicatesummary{goal_expansion}{2}{Hook for macro-expanding goals}
\predicatesummary{goal_expansion}{4}{Hook for macro-expanding goals}
\predicatesummary{ground}{1}{Verify term holds no unbound variables}
\predicatesummary{gdebug}{0}{Debug using graphical tracer}
\predicatesummary{gspy}{1}{Spy using graphical tracer}
\predicatesummary{gtrace}{0}{Trace using graphical tracer}
\predicatesummary{guitracer}{0}{Install hooks for the graphical debugger}
\predicatesummary{gxref}{0}{Cross-reference loaded program}
\predicatesummary{halt}{0}{Exit from Prolog}
\predicatesummary{halt}{1}{Exit from Prolog with status}
\predicatesummary{term_hash}{2}{Hash-value of ground term}
\predicatesummary{term_hash}{4}{Hash-value of term with depth limit}
\predicatesummary{help}{0}{Give help on help}
\predicatesummary{help}{1}{Give help on predicates and show parts of manual}
\predicatesummary{help_hook}{1}{\hook{prolog} User-hook in the help-system}
\predicatesummary{if}{1}{Start conditional compilation (directive)}
\predicatesummary{ignore}{1}{Call the argument, but always succeed}
\predicatesummary{import}{1}{Import a predicate from a module}
\predicatesummary{import_module}{2}{Query import modules}
\predicatesummary{in_pce_thread}{1}{Run goal in XPCE thread}
\predicatesummary{in_pce_thread_sync}{1}{Run goal in XPCE thread}
\predicatesummary{include}{1}{Include a file with declarations}
\predicatesummary{initialization}{1}{Initialization directive}
\predicatesummary{initialization}{2}{Initialization directive}
\predicatesummary{initialize}{0}{Run program initialization}
\predicatesummary{instance}{2}{Fetch clause or record from reference}
\predicatesummary{integer}{1}{Type check for integer}
\predicatesummary{interactor}{0}{Start new thread with console and top level}
\oppredsummary{is}{2}{xfx}{700}{Evaluate arithmetic expression}
\predicatesummary{is_absolute_file_name}{1}{True if arg defines an absolute path}
\predicatesummary{is_assoc}{1}{Verify association list}
\predicatesummary{is_engine}{1}{Type check for an engine handle}
\predicatesummary{is_list}{1}{Type check for a list}
\predicatesummary{is_dict}{1}{Type check for a dict}
\predicatesummary{is_dict}{2}{Type check for a dict in a class}
\predicatesummary{is_stream}{1}{Type check for a stream handle}
\predicatesummary{is_trie}{1}{Type check for a trie handle}
\predicatesummary{is_thread}{1}{Type check for an thread handle}
\predicatesummary{join_threads}{0}{Join all terminated threads interactively}
\predicatesummary{keysort}{2}{Sort, using a key}
\predicatesummary{known_licenses}{0}{Print known licenses}
\predicatesummary{last}{2}{Last element of a list}
\predicatesummary{leash}{1}{Change ports visited by the tracer}
\predicatesummary{length}{2}{Length of a list}
\predicatesummary{library_directory}{1}{\hook{user} Directories holding Prolog libraries}
\predicatesummary{license}{0}{Evaluate licenses of loaded modules}
\predicatesummary{license}{1}{Define license for current file}
\predicatesummary{license}{2}{Define license for named module}
\predicatesummary{line_count}{2}{Line number on stream}
\predicatesummary{line_position}{2}{Character position in line on stream}
\predicatesummary{list_debug_topics}{0}{List registered topics for debugging}
\predicatesummary{list_to_assoc}{2}{Create association tree from list}
\predicatesummary{list_to_set}{2}{Remove duplicates from a list}
\predicatesummary{list_strings}{0}{Help porting to version 7}
\predicatesummary{listing}{0}{List program in current module}
\predicatesummary{listing}{1}{List predicate}
\predicatesummary{load_files}{1}{Load source files}
\predicatesummary{load_files}{2}{Load source files with options}
\predicatesummary{load_foreign_library}{1}{\pllib{shlib} Load shared library (.so file)}
\predicatesummary{load_foreign_library}{2}{\pllib{shlib} Load shared library (.so file)}
\predicatesummary{locale_create}{3}{Create a new locale object}
\predicatesummary{locale_destroy}{1}{Destroy a locale object}
\predicatesummary{locale_property}{2}{Query properties of locale objects}
\predicatesummary{locale_sort}{2}{Language dependent sort of atoms}
\predicatesummary{make}{0}{Reconsult all changed source files}
\predicatesummary{make_directory}{1}{Create a folder on the file system}
\predicatesummary{make_library_index}{1}{Create autoload file INDEX.pl}
\predicatesummary{make_library_index}{2}{Create selective autoload file INDEX.pl}
\predicatesummary{map_assoc}{2}{Map association tree}
\predicatesummary{map_assoc}{3}{Map association tree}
\predicatesummary{dict_create}{3}{Create a dict from data}
\predicatesummary{dict_pairs}{3}{Convert between dict and list of pairs}
\predicatesummary{max_assoc}{3}{Highest key in association tree}
\predicatesummary{memberchk}{2}{Deterministic \index{member/2}\predref{member}{2}}
\predicatesummary{message_hook}{3}{Intercept \index{print_message/2}\predref{print_message}{2}}
\predicatesummary{message_line_element}{2}{\hook{prolog} Intercept \index{print_message_lines/3}\predref{print_message_lines}{3}}
\predicatesummary{message_property}{2}{\hook{user} Define display of a message}
\predicatesummary{message_queue_create}{1}{Create queue for thread communication}
\predicatesummary{message_queue_create}{2}{Create queue for thread communication}
\predicatesummary{message_queue_destroy}{1}{Destroy queue for thread communication}
\predicatesummary{message_queue_property}{2}{Query message queue properties}
\predicatesummary{message_to_string}{2}{Translate message-term to string}
\predicatesummary{meta_predicate}{1}{Declare access to other predicates}
\predicatesummary{min_assoc}{3}{Lowest key in association tree}
\predicatesummary{module}{1}{Query/set current type-in module}
\predicatesummary{module}{2}{Declare a module}
\predicatesummary{module}{3}{Declare a module with language options}
\predicatesummary{module_property}{2}{Find properties of a module}
\oppredsummary{module_transparent}{1}{fx}{1150}{Indicate module based meta-predicate}
\predicatesummary{msort}{2}{Sort, do not remove duplicates}
\oppredsummary{multifile}{1}{fx}{1150}{Indicate distributed definition of predicate}
\predicatesummary{mutex_create}{1}{Create a thread-synchronisation device}
\predicatesummary{mutex_create}{2}{Create a thread-synchronisation device}
\predicatesummary{mutex_destroy}{1}{Destroy a mutex}
\predicatesummary{mutex_lock}{1}{Become owner of a mutex}
\predicatesummary{mutex_property}{2}{Query mutex properties}
\predicatesummary{mutex_statistics}{0}{Print statistics on mutex usage}
\predicatesummary{mutex_trylock}{1}{Become owner of a mutex (non-blocking)}
\predicatesummary{mutex_unlock}{1}{Release ownership of mutex}
\predicatesummary{mutex_unlock_all}{0}{Release ownership of all mutexes}
\predicatesummary{name}{2}{Convert between atom and list of character codes}
\predicatesummary{nb_current}{2}{Enumerate non-backtrackable global variables}
\predicatesummary{nb_delete}{1}{Delete a non-backtrackable global variable}
\predicatesummary{nb_getval}{2}{Fetch non-backtrackable global variable}
\predicatesummary{nb_link_dict}{3}{Non-backtrackable assignment to dict}
\predicatesummary{nb_linkarg}{3}{Non-backtrackable assignment to term}
\predicatesummary{nb_linkval}{2}{Assign non-backtrackable global variable}
\predicatesummary{nb_set_to_list}{2}{Convert non-backtrackable set to list}
\predicatesummary{nb_set_dict}{3}{Non-backtrackable assignment to dict}
\predicatesummary{nb_setarg}{3}{Non-backtrackable assignment to term}
\predicatesummary{nb_setval}{2}{Assign non-backtrackable global variable}
\predicatesummary{nl}{0}{Generate a newline}
\predicatesummary{nl}{1}{Generate a newline on a stream}
\predicatesummary{nodebug}{0}{Disable debugging}
\predicatesummary{nodebug}{1}{Disable debug-topic}
\predicatesummary{noguitracer}{0}{Disable the graphical debugger}
\predicatesummary{nonground}{2}{Term is not ground due to witness}
\predicatesummary{nonvar}{1}{Type check for bound term}
\predicatesummary{nonterminal}{1}{Set predicate property}
\predicatesummary{noprofile}{1}{Hide (meta-) predicate for the profiler}
\predicatesummary{noprotocol}{0}{Disable logging of user interaction}
\predicatesummary{normalize_space}{2}{Normalize white space}
\predicatesummary{nospy}{1}{Remove spy point}
\predicatesummary{nospyall}{0}{Remove all spy points}
\oppredsummary{not}{1}{fy}{900}{Negation by failure (argument not provable). Same as \predref{\Snot}{1}}
\predicatesummary{notrace}{0}{Stop tracing}
\predicatesummary{notrace}{1}{Do not debug argument goal}
\predicatesummary{nth_clause}{3}{N-th clause of a predicate}
\predicatesummary{nth_integer_root_and_remainder}{4}{Integer root and remainder}
\predicatesummary{number}{1}{Type check for integer or float}
\predicatesummary{number_chars}{2}{Convert between number and one-char atoms}
\predicatesummary{number_codes}{2}{Convert between number and character codes}
\predicatesummary{number_string}{2}{Convert between number and string}
\predicatesummary{numbervars}{3}{Number unbound variables of a term}
\predicatesummary{numbervars}{4}{Number unbound variables of a term}
\predicatesummary{on_signal}{3}{Handle a software signal}
\predicatesummary{once}{1}{Call a goal deterministically}
\predicatesummary{op}{3}{Declare an operator}
\predicatesummary{open}{3}{Open a file (creating a stream)}
\predicatesummary{open}{4}{Open a file (creating a stream)}
\predicatesummary{open_dde_conversation}{3}{Win32: Open DDE channel}
\predicatesummary{open_null_stream}{1}{Open a stream to discard output}
\predicatesummary{open_resource}{3}{Open a program resource as a stream}
\predicatesummary{open_shared_object}{2}{UNIX: Open shared library (.so file)}
\predicatesummary{open_shared_object}{3}{UNIX: Open shared library (.so file)}
\predicatesummary{open_string}{2}{Open a string as a stream}
\predicatesummary{ord_list_to_assoc}{2}{Convert ordered list to assoc}
\predicatesummary{parse_time}{2}{Parse text to a time-stamp}
\predicatesummary{parse_time}{3}{Parse text to a time-stamp}
\predicatesummary{pce_dispatch}{1}{Run XPCE GUI in separate thread}
\predicatesummary{pce_call}{1}{Run goal in XPCE GUI thread}
\predicatesummary{peek_byte}{1}{Read byte without removing}
\predicatesummary{peek_byte}{2}{Read byte without removing}
\predicatesummary{peek_char}{1}{Read character without removing}
\predicatesummary{peek_char}{2}{Read character without removing}
\predicatesummary{peek_code}{1}{Read character-code without removing}
\predicatesummary{peek_code}{2}{Read character-code without removing}
\predicatesummary{peek_string}{3}{Read a string without removing}
\predicatesummary{phrase}{2}{Activate grammar-rule set}
\predicatesummary{phrase}{3}{Activate grammar-rule set (returning rest)}
\predicatesummary{phrase_from_quasi_quotation}{2}{Parse quasi quotation with DCG}
\predicatesummary{please}{3}{Query/change environment parameters}
\predicatesummary{plus}{3}{Logical integer addition}
\predicatesummary{portray}{1}{\hook{user} Modify behaviour of \index{print/1}\predref{print}{1}}
\predicatesummary{portray_clause}{1}{Pretty print a clause}
\predicatesummary{portray_clause}{2}{Pretty print a clause to a stream}
\predicatesummary{predicate_property}{2}{Query predicate attributes}
\predicatesummary{predsort}{3}{Sort, using a predicate to determine the order}
\predicatesummary{print}{1}{Print a term}
\predicatesummary{print}{2}{Print a term on a stream}
\predicatesummary{print_message}{2}{Print message from (exception) term}
\predicatesummary{print_message_lines}{3}{Print message to stream}
\predicatesummary{profile}{1}{Obtain execution statistics}
\predicatesummary{profile}{2}{Obtain execution statistics}
\predicatesummary{profile_count}{3}{Obtain profile results on a predicate}
\predicatesummary{profiler}{2}{Obtain/change status of the profiler}
\predicatesummary{prolog}{0}{Run interactive top level}
\predicatesummary{prolog_alert_signal}{2}{Query/set unblock signal}
\predicatesummary{prolog_choice_attribute}{3}{Examine the choice point stack}
\predicatesummary{prolog_current_choice}{1}{Reference to most recent choice point}
\predicatesummary{prolog_current_frame}{1}{Reference to goal's environment stack}
\predicatesummary{prolog_cut_to}{1}{Realise global cuts}
\predicatesummary{prolog_edit:locate}{2}{Locate targets for \index{edit/1}\predref{edit}{1}}
\predicatesummary{prolog_edit:locate}{3}{Locate targets for \index{edit/1}\predref{edit}{1}}
\predicatesummary{prolog_edit:edit_source}{1}{Call editor for \index{edit/1}\predref{edit}{1}}
\predicatesummary{prolog_edit:edit_command}{2}{Specify editor activation}
\predicatesummary{prolog_edit:load}{0}{Load \index{edit/1}\predref{edit}{1} extensions}
\predicatesummary{prolog_exception_hook}{4}{Rewrite exceptions}
\predicatesummary{prolog_file_type}{2}{Define meaning of file extension}
\predicatesummary{prolog_frame_attribute}{3}{Obtain information on a goal environment}
\predicatesummary{prolog_ide}{1}{Program access to the development environment}
\predicatesummary{prolog_list_goal}{1}{\hook{user} Intercept tracer 'L' command}
\predicatesummary{prolog_load_context}{2}{Context information for directives}
\predicatesummary{prolog_load_file}{2}{\hook{user} Program \index{load_files/2}\predref{load_files}{2}}
\predicatesummary{prolog_skip_level}{2}{Indicate deepest recursion to trace}
\predicatesummary{prolog_skip_frame}{1}{Perform `skip' on a frame}
\predicatesummary{prolog_stack_property}{2}{Query properties of the stacks}
\predicatesummary{prolog_to_os_filename}{2}{Convert between Prolog and OS filenames}
\predicatesummary{prolog_trace_interception}{4}{\pllib{user} Intercept the Prolog tracer}
\predicatesummary{project_attributes}{2}{Project constraints to query variables}
\predicatesummary{prompt1}{1}{Change prompt for 1 line}
\predicatesummary{prompt}{2}{Change the prompt used by \index{read/1}\predref{read}{1}}
\predicatesummary{protocol}{1}{Make a log of the user interaction}
\predicatesummary{protocola}{1}{Append log of the user interaction to file}
\predicatesummary{protocolling}{1}{On what file is user interaction logged}
\predicatesummary{public}{1}{Declaration that a predicate may be called}
\predicatesummary{put}{1}{Write a character}
\predicatesummary{put}{2}{Write a character on a stream}
\predicatesummary{put_assoc}{4}{Add Key-Value to association tree}
\predicatesummary{put_attr}{3}{Put attribute on a variable}
\predicatesummary{put_attrs}{2}{Set/replace all attributes on a variable}
\predicatesummary{put_byte}{1}{Write a byte}
\predicatesummary{put_byte}{2}{Write a byte on a stream}
\predicatesummary{put_char}{1}{Write a character}
\predicatesummary{put_char}{2}{Write a character on a stream}
\predicatesummary{put_code}{1}{Write a character-code}
\predicatesummary{put_code}{2}{Write a character-code on a stream}
\predicatesummary{put_dict}{3}{Add/replace multiple keys in a dict}
\predicatesummary{put_dict}{4}{Add/replace a single key in a dict}
\predicatesummary{qcompile}{1}{Compile source to Quick Load File}
\predicatesummary{qcompile}{2}{Compile source to Quick Load File}
\predicatesummary{qsave_program}{1}{Create runtime application}
\predicatesummary{qsave_program}{2}{Create runtime application}
\predicatesummary{quasi_quotation_syntax}{1}{Declare quasi quotation syntax}
\predicatesummary{quasi_quotation_syntax_error}{1}{Raise syntax error}
\predicatesummary{random_property}{1}{Query properties of random generation}
\predicatesummary{rational}{1}{Type check for a rational number}
\predicatesummary{rational}{3}{Decompose a rational}
\predicatesummary{read}{1}{Read Prolog term}
\predicatesummary{read}{2}{Read Prolog term from stream}
\predicatesummary{read_clause}{3}{Read clause from stream}
\predicatesummary{read_history}{6}{Read using history substitution}
\predicatesummary{read_link}{3}{Read a symbolic link}
\predicatesummary{read_pending_codes}{3}{Fetch buffered input from a stream}
\predicatesummary{read_pending_chars}{3}{Fetch buffered input from a stream}
\predicatesummary{read_string}{3}{Read a number of characters into a string}
\predicatesummary{read_string}{5}{Read string upto a delimiter}
\predicatesummary{read_term}{2}{Read term with options}
\predicatesummary{read_term}{3}{Read term with options from stream}
\predicatesummary{read_term_from_atom}{3}{Read term with options from atom}
\predicatesummary{recorda}{2}{Record term in the database (first)}
\predicatesummary{recorda}{3}{Record term in the database (first)}
\predicatesummary{recorded}{2}{Obtain term from the database}
\predicatesummary{recorded}{3}{Obtain term from the database}
\predicatesummary{recordz}{2}{Record term in the database (last)}
\predicatesummary{recordz}{3}{Record term in the database (last)}
\predicatesummary{redefine_system_predicate}{1}{Abolish system definition}
\predicatesummary{reexport}{1}{Load files and re-export the imported predicates}
\predicatesummary{reexport}{2}{Load predicates from a file and re-export it}
\predicatesummary{reload_foreign_libraries}{0}{Reload DLLs/shared objects}
\predicatesummary{reload_library_index}{0}{Force reloading the autoload index}
\predicatesummary{rename_file}{2}{Change name of file}
\predicatesummary{repeat}{0}{Succeed, leaving infinite backtrack points}
\predicatesummary{require}{1}{This file requires these predicates}
\predicatesummary{reset}{3}{Wrapper for delimited continuations}
\predicatesummary{reset_gensym}{1}{Reset a gensym key}
\predicatesummary{reset_gensym}{0}{Reset all gensym keys}
\predicatesummary{reset_profiler}{0}{Clear statistics obtained by the profiler}
\predicatesummary{resource}{2}{Declare a program resource}
\predicatesummary{resource}{3}{Declare a program resource}
\predicatesummary{retract}{1}{Remove clause from the database}
\predicatesummary{retractall}{1}{Remove unifying clauses from the database}
\predicatesummary{same_file}{2}{Succeeds if arguments refer to same file}
\predicatesummary{same_term}{2}{Test terms to be at the same address}
\predicatesummary{see}{1}{Change the current input stream}
\predicatesummary{seeing}{1}{Query the current input stream}
\predicatesummary{seek}{4}{Modify the current position in a stream}
\predicatesummary{seen}{0}{Close the current input stream}
\predicatesummary{select_dict}{2}{Select matching attributes from a dict}
\predicatesummary{select_dict}{3}{Select matching attributes from a dict}
\predicatesummary{set_end_of_stream}{1}{Set physical end of an open file}
\predicatesummary{set_flag}{2}{Set value of a flag}
\predicatesummary{set_input}{1}{Set current input stream from a stream}
\predicatesummary{set_locale}{1}{Set the default local}
\predicatesummary{set_module}{1}{Set properties of a module}
\predicatesummary{set_output}{1}{Set current output stream from a stream}
\predicatesummary{set_prolog_IO}{3}{Prepare streams for interactive session}
\predicatesummary{set_prolog_flag}{2}{Define a system feature}
\predicatesummary{set_prolog_gc_thread}{1}{Control the gc thread}
\predicatesummary{set_prolog_stack}{2}{Modify stack characteristics}
\predicatesummary{set_random}{1}{Control random number generation}
\predicatesummary{set_stream}{2}{Set stream attribute}
\predicatesummary{set_stream_position}{2}{Seek stream to position}
\predicatesummary{setup_call_cleanup}{3}{Undo side-effects safely}
\predicatesummary{setup_call_catcher_cleanup}{4}{Undo side-effects safely}
\predicatesummary{setarg}{3}{Destructive assignment on term}
\predicatesummary{setenv}{2}{Set shell environment variable}
\predicatesummary{setlocale}{3}{Set/query C-library regional information}
\predicatesummary{setof}{3}{Find all unique solutions to a goal}
\predicatesummary{shell}{1}{Execute OS command}
\predicatesummary{shell}{2}{Execute OS command}
\predicatesummary{shift}{1}{Shift control to the closest \index{reset/3}\predref{reset}{3}}
\predicatesummary{show_profile}{1}{Show results of the profiler}
\predicatesummary{size_file}{2}{Get size of a file in characters}
\predicatesummary{size_nb_set}{2}{Determine size of non-backtrackable set}
\predicatesummary{skip}{1}{Skip to character in current input}
\predicatesummary{skip}{2}{Skip to character on stream}
\predicatesummary{sleep}{1}{Suspend execution for specified time}
\predicatesummary{sort}{2}{Sort elements in a list}
\predicatesummary{sort}{4}{Sort elements in a list}
\predicatesummary{source_exports}{2}{Check whether source exports a predicate}
\predicatesummary{source_file}{1}{Examine currently loaded source files}
\predicatesummary{source_file}{2}{Obtain source file of predicate}
\predicatesummary{source_file_property}{2}{Information about loaded files}
\predicatesummary{source_location}{2}{Location of last read term}
\predicatesummary{split_string}{4}{Break a string into substrings}
\predicatesummary{spy}{1}{Force tracer on specified predicate}
\predicatesummary{stamp_date_time}{3}{Convert time-stamp to date structure}
\predicatesummary{statistics}{0}{Show execution statistics}
\predicatesummary{statistics}{2}{Obtain collected statistics}
\predicatesummary{stream_pair}{3}{Create/examine a bi-directional stream}
\predicatesummary{stream_position_data}{3}{Access fields from stream position}
\predicatesummary{stream_property}{2}{Get stream properties}
\predicatesummary{string}{1}{Type check for string}
\predicatesummary{string_concat}{3}{\index{atom_concat/3}\predref{atom_concat}{3} for strings}
\predicatesummary{string_length}{2}{Determine length of a string}
\predicatesummary{string_chars}{2}{Conversion between string and list of characters}
\predicatesummary{string_codes}{2}{Conversion between string and list of character codes}
\predicatesummary{string_code}{3}{Get or find a character code in a string}
\predicatesummary{string_lower}{2}{Case conversion to lower case}
\predicatesummary{string_upper}{2}{Case conversion to upper case}
\predicatesummary{string_predicate}{1}{\hook{check} Predicate contains strings}
\predicatesummary{strip_module}{3}{Extract context module and term}
\predicatesummary{style_check}{1}{Change level of warnings}
\predicatesummary{sub_atom}{5}{Take a substring from an atom}
\predicatesummary{sub_atom_icasechk}{3}{Case insensitive substring match}
\predicatesummary{sub_string}{5}{Take a substring from a string}
\predicatesummary{subsumes_term}{2}{One-sided unification test}
\predicatesummary{succ}{2}{Logical integer successor relation}
\predicatesummary{swritef}{2}{Formatted write on a string}
\predicatesummary{swritef}{3}{Formatted write on a string}
\predicatesummary{tab}{1}{Output number of spaces}
\predicatesummary{tab}{2}{Output number of spaces on a stream}
\predicatesummary{table}{1}{Declare predicate to be tabled}
\predicatesummary{tdebug}{0}{Switch all threads into debug mode}
\predicatesummary{tdebug}{1}{Switch a thread into debug mode}
\predicatesummary{tell}{1}{Change current output stream}
\predicatesummary{telling}{1}{Query current output stream}
\predicatesummary{term_expansion}{2}{\hook{user} Convert term before compilation}
\predicatesummary{term_expansion}{4}{\hook{user} Convert term before compilation}
\predicatesummary{term_singletons}{2}{Find singleton variables in a term}
\predicatesummary{term_string}{2}{Read/write a term from/to a string}
\predicatesummary{term_string}{3}{Read/write a term from/to a string}
\predicatesummary{term_subsumer}{3}{Most specific generalization of two terms}
\predicatesummary{term_to_atom}{2}{Convert between term and atom}
\predicatesummary{thread_affinity}{3}{Query and control the \jargon{affinity} mask}
\predicatesummary{thread_at_exit}{1}{Register goal to be called at exit}
\predicatesummary{thread_create}{2}{Create a new Prolog task}
\predicatesummary{thread_create}{3}{Create a new Prolog task}
\predicatesummary{thread_detach}{1}{Make thread cleanup after completion}
\predicatesummary{thread_exit}{1}{Terminate Prolog task with value}
\predicatesummary{thread_get_message}{1}{Wait for message}
\predicatesummary{thread_get_message}{2}{Wait for message in a queue}
\predicatesummary{thread_get_message}{3}{Wait for message in a queue}
\predicatesummary{thread_initialization}{1}{Run action at start of thread}
\predicatesummary{thread_join}{1}{Wait for Prolog task-completion}
\predicatesummary{thread_join}{2}{Wait for Prolog task-completion}
\predicatesummary{thread_local}{1}{Declare thread-specific clauses for a predicate}
\predicatesummary{thread_message_hook}{3}{Thread local \index{message_hook/3}\predref{message_hook}{3}}
\predicatesummary{thread_peek_message}{1}{Test for message}
\predicatesummary{thread_peek_message}{2}{Test for message in a queue}
\predicatesummary{thread_property}{2}{Examine Prolog threads}
\predicatesummary{thread_self}{1}{Get identifier of current thread}
\predicatesummary{thread_send_message}{2}{Send message to another thread}
\predicatesummary{thread_send_message}{3}{Send message to another thread}
\predicatesummary{thread_setconcurrency}{2}{Number of active threads}
\predicatesummary{thread_signal}{2}{Execute goal in another thread}
\predicatesummary{thread_statistics}{3}{Get statistics of another thread}
\predicatesummary{threads}{0}{List running threads}
\predicatesummary{throw}{1}{Raise an exception (see \index{catch/3}\predref{catch}{3})}
\predicatesummary{time}{1}{Determine time needed to execute goal}
\predicatesummary{time_file}{2}{Get last modification time of file}
\predicatesummary{tmp_file}{2}{Create a temporary filename}
\predicatesummary{tmp_file_stream}{3}{Create a temporary file and open it}
\predicatesummary{tnodebug}{0}{Switch off debug mode in all threads}
\predicatesummary{tnodebug}{1}{Switch off debug mode in a thread}
\predicatesummary{told}{0}{Close current output}
\predicatesummary{tprofile}{1}{Profile a thread for some period}
\predicatesummary{trace}{0}{Start the tracer}
\predicatesummary{trace}{1}{Set trace point on predicate}
\predicatesummary{trace}{2}{Set/Clear trace point on ports}
\predicatesummary{tracing}{0}{Query status of the tracer}
\predicatesummary{trie_delete}{3}{Remove term from trie}
\predicatesummary{trie_destroy}{1}{Destroy a trie}
\predicatesummary{trie_gen}{3}{Get all terms from a trie}
\predicatesummary{trie_insert}{3}{Insert term into a trie}
\predicatesummary{trie_insert}{4}{Insert term into a trie}
\predicatesummary{trie_lookup}{3}{Lookup a term in a trie}
\predicatesummary{trie_new}{1}{Create a trie}
\predicatesummary{trie_property}{2}{Examine a trie's properties}
\predicatesummary{trie_update}{3}{Update associated value in trie}
\predicatesummary{trie_term}{2}{Get term from a trie by handle}
\predicatesummary{trim_stacks}{0}{Release unused memory resources}
\predicatesummary{true}{0}{Succeed}
\predicatesummary{tspy}{1}{Set spy point and enable debugging in all threads}
\predicatesummary{tspy}{2}{Set spy point and enable debugging in a thread}
\predicatesummary{tty_get_capability}{3}{Get terminal parameter}
\predicatesummary{tty_goto}{2}{Goto position on screen}
\predicatesummary{tty_put}{2}{Write control string to terminal}
\predicatesummary{tty_size}{2}{Get row/column size of the terminal}
\predicatesummary{ttyflush}{0}{Flush output on terminal}
\predicatesummary{unify_with_occurs_check}{2}{Logically sound unification}
\predicatesummary{unifiable}{3}{Determining binding required for unification}
\predicatesummary{unix}{1}{OS interaction}
\predicatesummary{unknown}{2}{Trap undefined predicates}
\predicatesummary{unload_file}{1}{Unload a source file}
\predicatesummary{unload_foreign_library}{1}{\pllib{shlib} Detach shared library (.so file)}
\predicatesummary{unload_foreign_library}{2}{\pllib{shlib} Detach shared library (.so file)}
\predicatesummary{unsetenv}{1}{Delete shell environment variable}
\predicatesummary{upcase_atom}{2}{Convert atom to upper-case}
\predicatesummary{use_foreign_library}{1}{Load DLL/shared object (directive)}
\predicatesummary{use_foreign_library}{2}{Load DLL/shared object (directive)}
\predicatesummary{use_module}{1}{Import a module}
\predicatesummary{use_module}{2}{Import predicates from a module}
\predicatesummary{valid_string_goal}{1}{\hook{check} Goal handles strings}
\predicatesummary{var}{1}{Type check for unbound variable}
\predicatesummary{var_number}{2}{Check that var is numbered by numbervars}
\predicatesummary{var_property}{2}{Variable properties during macro expansion}
\predicatesummary{variant_sha1}{2}{Term-hash for term-variants}
\predicatesummary{variant_hash}{2}{Term-hash for term-variants}
\predicatesummary{version}{0}{Print system banner message}
\predicatesummary{version}{1}{Add messages to the system banner}
\predicatesummary{visible}{1}{Ports that are visible in the tracer}
\oppredsummary{volatile}{1}{fx}{1150}{Predicates that are not saved}
\predicatesummary{wait_for_input}{3}{Wait for input with optional timeout}
\predicatesummary{when}{2}{Execute goal when condition becomes true}
\predicatesummary{wildcard_match}{2}{Csh(1) style wildcard match}
\predicatesummary{win_add_dll_directory}{1}{Add directory to DLL search path}
\predicatesummary{win_add_dll_directory}{2}{Add directory to DLL search path}
\predicatesummary{win_remove_dll_directory}{1}{Remove directory from DLL search path}
\predicatesummary{win_exec}{2}{Win32: spawn Windows task}
\predicatesummary{win_has_menu}{0}{Win32: true if console menu is available}
\predicatesummary{win_folder}{2}{Win32: get special folder by CSIDL}
\predicatesummary{win_insert_menu}{2}{swipl-win.exe: add menu}
\predicatesummary{win_insert_menu_item}{4}{swipl-win.exe: add item to menu}
\predicatesummary{win_shell}{2}{Win32: open document through Shell}
\predicatesummary{win_shell}{3}{Win32: open document through Shell}
\predicatesummary{win_registry_get_value}{3}{Win32: get registry value}
\predicatesummary{win_window_pos}{1}{Win32: change size and position of window}
\predicatesummary{window_title}{2}{Win32: change title of window}
\predicatesummary{with_mutex}{2}{Run goal while holding mutex}
\predicatesummary{with_output_to}{2}{Write to strings and more}
\predicatesummary{with_quasi_quotation_input}{3}{Parse quasi quotation from stream}
\predicatesummary{working_directory}{2}{Query/change CWD}
\predicatesummary{write}{1}{Write term}
\predicatesummary{write}{2}{Write term to stream}
\predicatesummary{writeln}{1}{Write term, followed by a newline}
\predicatesummary{writeln}{2}{Write term, followed by a newline to a stream}
\predicatesummary{write_canonical}{1}{Write a term with quotes, ignore operators}
\predicatesummary{write_canonical}{2}{Write a term with quotes, ignore operators on a stream}
\predicatesummary{write_length}{3}{Dermine \#characters to output a term}
\predicatesummary{write_term}{2}{Write term with options}
\predicatesummary{write_term}{3}{Write term with options to stream}
\predicatesummary{writef}{1}{Formatted write}
\predicatesummary{writef}{2}{Formatted write on stream}
\predicatesummary{writeq}{1}{Write term, insert quotes}
\predicatesummary{writeq}{2}{Write term, insert quotes on stream}
\end{summarylist}

\input{lib/libsummary.tex}

\pagebreak
\section{Arithmetic Functions}		\label{sec:funcsummary}

\begin{summarylist}{ll}
\opfuncsummary{\Stimes}{2}{yfx}{400}{Multiplication}
\opfuncsummary{\Spow}{2}{xfx}{200}{Power function}
\opfuncsummary{\Splus}{1}{fx}{500}{Unary plus (No-op)}
\opfuncsummary{\Splus}{2}{yfx}{500}{Addition}
\opfuncsummary{\Sminus}{1}{fx}{500}{Unary minus}
\opfuncsummary{\Sminus}{2}{yfx}{500}{Subtraction}
\opfuncsummary{\Sdiv}{2}{yfx}{400}{Division}
\opfuncsummary{\Sidiv}{2}{yfx}{400}{Integer division}
\opfuncsummary{\Sand}{2}{yfx}{500}{Bitwise and}
\opfuncsummary{\Slshift}{2}{yfx}{400}{Bitwise left shift}
\opfuncsummary{\Srshift}{2}{yfx}{400}{Bitwise right shift}
\functionsummary{\Sdot}{2}{List of one character: character code}
\opfuncsummary{\Sneg}{1}{fx}{500}{Bitwise negation}
\opfuncsummary{\Sor}{2}{yfx}{500}{Bitwise or}
\opfuncsummary{\Shat}{2}{xfy}{200}{Power function}
\functionsummary{abs}{1}{Absolute value}
\functionsummary{acos}{1}{Inverse (arc) cosine}
\functionsummary{acosh}{1}{Inverse hyperbolic cosine}
\functionsummary{asin}{1}{Inverse (arc) sine}
\functionsummary{asinh}{1}{Inverse (arc) sine}
\functionsummary{atan}{1}{Inverse hyperbolic sine}
\functionsummary{atan}{2}{Rectangular to polar conversion}
\functionsummary{atanh}{1}{Inverse hyperbolic tangent}
\functionsummary{atan2}{2}{Rectangular to polar conversion}
\functionsummary{ceil}{1}{Smallest integer larger than arg}
\functionsummary{ceiling}{1}{Smallest integer larger than arg}
\functionsummary{cos}{1}{Cosine}
\functionsummary{cosh}{1}{Hyperbolic cosine}
\functionsummary{copysign}{2}{Apply sign of N2 to N1}
\functionsummary{cputime}{0}{Get CPU time}
\functionsummary{div}{2}{Integer division}
\functionsummary{e}{0}{Mathematical constant}
\functionsummary{erf}{1}{Gauss error function}
\functionsummary{erfc}{1}{Complementary error function}
\functionsummary{epsilon}{0}{Floating point precision}
\functionsummary{eval}{1}{Evaluate term as expression}
\functionsummary{exp}{1}{Exponent (base $e$)}
\functionsummary{float}{1}{Explicitly convert to float}
\functionsummary{float_fractional_part}{1}{Fractional part of a float}
\functionsummary{float_integer_part}{1}{Integer part of a float}
\functionsummary{floor}{1}{Largest integer below argument}
\functionsummary{gcd}{2}{Greatest common divisor}
\functionsummary{getbit}{2}{Get bit at index from large integer}
\functionsummary{inf}{0}{Positive infinity}
\functionsummary{integer}{1}{Round to nearest integer}
\functionsummary{lgamma}{1}{Log of gamma function}
\functionsummary{log}{1}{Natural logarithm}
\functionsummary{log10}{1}{10 base logarithm}
\functionsummary{lsb}{1}{Least significant bit}
\functionsummary{max}{2}{Maximum of two numbers}
\functionsummary{min}{2}{Minimum of two numbers}
\functionsummary{msb}{1}{Most significant bit}
\opfuncsummary{mod}{2}{xfx}{300}{Remainder of division}
\functionsummary{nan}{0}{Not a Number (NaN)}
\functionsummary{powm}{3}{Integer exponent and modulo}
\functionsummary{random}{1}{Generate random number}
\functionsummary{random_float}{0}{Generate random number}
\functionsummary{rational}{1}{Convert to rational number}
\functionsummary{rationalize}{1}{Convert to rational number}
\functionsummary{rdiv}{2}{Ration number division}
\functionsummary{rem}{2}{Remainder of division}
\functionsummary{round}{1}{Round to nearest integer}
\functionsummary{truncate}{1}{Truncate float to integer}
\functionsummary{pi}{0}{Mathematical constant}
\functionsummary{popcount}{1}{Count 1s in a bitvector}
\functionsummary{sign}{1}{Extract sign of value}
\functionsummary{sin}{1}{Sine}
\functionsummary{sinh}{1}{Hyperbolic sine}
\functionsummary{sqrt}{1}{Square root}
\functionsummary{tan}{1}{Tangent}
\functionsummary{tanh}{1}{Hyperbolic tangent}
\opfuncsummary{xor}{2}{yfx}{400}{Bitwise exclusive or}
\end{summarylist}

\pagebreak
\section{Operators}		\label{sec:opsummary}

\begin{summarylist}{lrD{f}{f}{-1}l}
\opsummary{1}{fx}{\Sdollar}{Bind top-level variable}
\opsummary{200}{xfy}{\Shat}{Existential qualification}
\opsummary{200}{xfy}{\Shat}{Arithmetic function}
\opsummary{300}{xfx}{mod}{Arithmetic function}
\opsummary{400}{yfx}{\Stimes}{Arithmetic function}
\opsummary{400}{yfx}{\Sdiv}{Arithmetic function}
\opsummary{400}{yfx}{\Sidiv}{Arithmetic function}
\opsummary{400}{yfx}{\Slshift}{Arithmetic function}
\opsummary{400}{yfx}{\Srshift}{Arithmetic function}
\opsummary{400}{yfx}{xor}{Arithmetic function}
\opsummary{500}{fx}{\Splus}{Arithmetic function}
\opsummary{500}{fx}{\Sminus}{Arithmetic function}
\opsummary{500}{fx}{\Squest}{XPCE: obtainer}
\opsummary{500}{fx}{\Sneg}{Arithmetic function}
\opsummary{500}{yfx}{\Splus}{Arithmetic function}
\opsummary{500}{yfx}{\Sminus}{Arithmetic function}
\opsummary{500}{yfx}{\Sand}{Arithmetic function}
\opsummary{500}{yfx}{\Sor}{Arithmetic function}
\opsummary{600}{xfy}{\Smodule}{module:term separator}
\opsummary{700}{xfx}{\Slt}{Predicate}
\opsummary{700}{xfx}{\Seq}{Predicate}
\opsummary{700}{xfx}{\Suniv}{Predicate}
\opsummary{700}{xfx}{\Saeq}{Predicate}
\opsummary{700}{xfx}{\Slt}{Predicate}
\opsummary{700}{xfx}{\Sequal}{Predicate}
\opsummary{700}{xfx}{\Sstructeq}{Predicate}
\opsummary{700}{xfx}{\Sane}{Predicate}
\opsummary{700}{xfx}{\Sgt}{Predicate}
\opsummary{700}{xfx}{\Sge}{Predicate}
\opsummary{700}{xfx}{\Stlt}{Predicate}
\opsummary{700}{xfx}{\Stle}{Predicate}
\opsummary{700}{xfx}{\Stgt}{Predicate}
\opsummary{700}{xfx}{\Stge}{Predicate}
\opsummary{700}{xfx}{is}{Predicate}
\opsummary{700}{xfx}{\Sne}{Predicate}
\opsummary{700}{xfx}{\Snequal}{Predicate}
\opsummary{700}{xfx}{\Sstructeq}{Predicate}
\opsummary{900}{fy}{not}{Predicate}
\opsummary{900}{fy}{\Snot}{Predicate}
\opsummary{1000}{xfy}{\Scomma}{Predicate}
\opsummary{1050}{xfy}{\Sifthen}{Predicate}
\opsummary{1050}{xfy}{\Ssoftcut}{Predicate}
\opsummary{1100}{xfy}{\Ssemicolon}{Predicate}
\opsummary{1105}{xfy}{\Sbar}{DCG disjunction}
\opsummary{1150}{fx}{discontiguous}{Directive}
\opsummary{1150}{fx}{dynamic}{Directive}
\opsummary{1150}{fx}{module_transparent}{Directive}
\opsummary{1150}{fx}{meta_predicate}{Head}
\opsummary{1150}{fx}{multifile}{Directive}
\opsummary{1150}{fx}{thread_local}{Directive}
\opsummary{1150}{fx}{volatile}{Directive}
\opsummary{1150}{fx}{initialization}{Directive}
\opsummary{1200}{fx}{\Sneck}{Introduces a directive}
\opsummary{1200}{fx}{\Sdirective}{Introduces a directive}
\opsummary{1200}{xfx}{\Sdcg}{DCGrammar: rewrite}
\opsummary{1200}{xfx}{\Sneck}{head \Sneck{} body. separator}
\end{summarylist}

