UNPKG

@ciao-lang/ts-ciao-interface

Version:

Simple Ciao interface for node.

202 lines 56.5 kB
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>Preprocessing Unit Information Server &mdash; The CiaoPP Program Processor v1.5</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">&#9776;</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="ciao-logo_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="Punit.html">&#x2191;</a><a class="lpdoc-navbutton" href="Punit0.html">&#x2190;</a><a class="lpdoc-navbutton" href="native.html">&#x2192;</a><a class="lpdoc-navbutton" href="ciaopp_ref_mansearch.html">&#x1F50D;</a></span><span><a href="ciaopp_ref_manfulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="ciaopp_ref_man.html">The CiaoPP Program Processor</a> &raquo;<br/> </li><li><a href="part_internals.html">PART IV - CiaoPP Internals</a> &raquo;<br/> </li><li><a href="Punit.html">The Preprocessing Unit Component</a> &raquo;<br/> </li><li><a href=""><strong>Preprocessing Unit Information Server</strong></a></li></ul><hr></hr><em>ON THIS PAGE</em><ul><li><a href="#Usage and interface">Usage and interface</a></li><li><a href="#Documentation on exports">Documentation on exports</a></li><li><a href="#Documentation on multifiles">Documentation on multifiles</a></li><li><a href="#Documentation on imports">Documentation on imports</a></li></ul></div><div class="lpdoc-main"><div id=""><h1>Preprocessing Unit Information Server</h1><a class="lpdoc-idx-anchor" href="ciaopp_ref_mansearch.html#p_unit"></a> <strong>Author(s):</strong> <a class="lpdoc-idx-anchor" id="The Ciao Development Team" href="ciaopp_ref_mansearch.html#The Ciao Development Team">The Ciao Development Team</a>.<p> This module loads the preprocessing unit of a file to be preprocessed and serves all the information related to it to the rest of CiaoPP, including (but not limited to) the source code.<br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/><tt>:- use_module(library(compiler/p_unit)).</tt><li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Predicates:</em><br/><a class="lpdoc-idx-anchor" id="0" href="#preprocessing_unit/3"><tt>preprocessing_unit/3</tt></a>, <a class="lpdoc-idx-anchor" id="1" href="#program/2"><tt>program/2</tt></a>, <a class="lpdoc-idx-anchor" id="2" href="#filtered_program_clauses/3"><tt>filtered_program_clauses/3</tt></a>, <a class="lpdoc-idx-anchor" id="3" href="#replace_program/2"><tt>replace_program/2</tt></a>, <a class="lpdoc-idx-anchor" id="4" href="#native_to_prop/2"><tt>native_to_prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="5" href="#prop_to_native/2"><tt>prop_to_native/2</tt></a>, <a class="lpdoc-idx-anchor" id="6" href="#native_to_props_visible/2"><tt>native_to_props_visible/2</tt></a>, <a class="lpdoc-idx-anchor" id="7" href="#dynamic_or_unknown_predicate/1"><tt>dynamic_or_unknown_predicate/1</tt></a>, <a class="lpdoc-idx-anchor" id="8" href="#get_assertion/2"><tt>get_assertion/2</tt></a>, <a class="lpdoc-idx-anchor" id="9" href="#add_assertions/1"><tt>add_assertions/1</tt></a>, <a class="lpdoc-idx-anchor" id="10" href="#add_assertion/1"><tt>add_assertion/1</tt></a>, <a class="lpdoc-idx-anchor" id="11" href="#add_directive/1"><tt>add_directive/1</tt></a>, <a class="lpdoc-idx-anchor" id="12" href="#erase_directive/1"><tt>erase_directive/1</tt></a>, <a class="lpdoc-idx-anchor" id="13" href="#type_of_directive/2"><tt>type_of_directive/2</tt></a>, <a class="lpdoc-idx-anchor" id="14" href="#pr_key_clean/0"><tt>pr_key_clean/0</tt></a>, <a class="lpdoc-idx-anchor" id="15" href="#pr_key_add/1"><tt>pr_key_add/1</tt></a>, <a class="lpdoc-idx-anchor" id="16" href="#pr_key_get/1"><tt>pr_key_get/1</tt></a>, <a class="lpdoc-idx-anchor" id="17" href="#add_defined_pred/2"><tt>add_defined_pred/2</tt></a>, <a class="lpdoc-idx-anchor" id="18" href="#new_predicate/3"><tt>new_predicate/3</tt></a>, <a class="lpdoc-idx-anchor" id="19" href="#predicate_names/1"><tt>predicate_names/1</tt></a>, <a class="lpdoc-idx-anchor" id="20" href="#multifile_predicate_names/1"><tt>multifile_predicate_names/1</tt></a>, <a class="lpdoc-idx-anchor" id="21" href="#inject_output_package/1"><tt>inject_output_package/1</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="#add_output_package/1"><tt>add_output_package/1</tt></a>, <a class="lpdoc-idx-anchor" id="23" href="#get_output_package/1"><tt>get_output_package/1</tt></a>, <a class="lpdoc-idx-anchor" id="24" href="#add_output_operator/3"><tt>add_output_operator/3</tt></a>, <a class="lpdoc-idx-anchor" id="25" href="#get_output_operator/3"><tt>get_output_operator/3</tt></a>, <a class="lpdoc-idx-anchor" id="26" href="#add_comment/1"><tt>add_comment/1</tt></a>, <a class="lpdoc-idx-anchor" id="27" href="#get_comment/1"><tt>get_comment/1</tt></a>, <a class="lpdoc-idx-anchor" id="28" href="#cleanup_comment_db/0"><tt>cleanup_comment_db/0</tt></a>, <a class="lpdoc-idx-anchor" id="29" href="#cleanup_commented_assrt/0"><tt>cleanup_commented_assrt/0</tt></a>, <a class="lpdoc-idx-anchor" id="30" href="#get_commented_assertion/2"><tt>get_commented_assertion/2</tt></a>, <a class="lpdoc-idx-anchor" id="31" href="#add_commented_assertions/1"><tt>add_commented_assertions/1</tt></a>, <a class="lpdoc-idx-anchor" id="32" href="#add_commented_assertion/1"><tt>add_commented_assertion/1</tt></a>, <a class="lpdoc-idx-anchor" id="33" href="#cleanup_punit/0"><tt>cleanup_punit/0</tt></a>, <a class="lpdoc-idx-anchor" id="34" href="#get_call_from_call_assrt/7"><tt>get_call_from_call_assrt/7</tt></a>, <a class="lpdoc-idx-anchor" id="35" href="#get_pred_mod_defined/2"><tt>get_pred_mod_defined/2</tt></a>, <a class="lpdoc-idx-anchor" id="36" href="#assertion_set_status/3"><tt>assertion_set_status/3</tt></a>, <a class="lpdoc-idx-anchor" id="37" href="#assertion_set_head/3"><tt>assertion_set_head/3</tt></a>, <a class="lpdoc-idx-anchor" id="38" href="#assertion_set_calls/3"><tt>assertion_set_calls/3</tt></a>, <a class="lpdoc-idx-anchor" id="39" href="#assertion_set_success/3"><tt>assertion_set_success/3</tt></a>, <a class="lpdoc-idx-anchor" id="40" href="#assertion_set_comp/3"><tt>assertion_set_comp/3</tt></a>, <a class="lpdoc-idx-anchor" id="41" href="#cleanup_libcache/0"><tt>cleanup_libcache/0</tt></a>, <a class="lpdoc-idx-anchor" id="42" href="#loaded_libcache/0"><tt>loaded_libcache/0</tt></a>, <a class="lpdoc-idx-anchor" id="43" href="#load_libcache/1"><tt>load_libcache/1</tt></a>, <a class="lpdoc-idx-anchor" id="44" href="#gen_libcache/1"><tt>gen_libcache/1</tt></a>. <li><em>Multifiles:</em><br/><a class="lpdoc-idx-anchor" id="45" href="#define_flag/3"><tt>define_flag/3</tt></a>, <a class="lpdoc-idx-anchor" id="46" href="frontend_driver.html#hook_compact_global_prop/2"><tt>hook_compact_global_prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="47" href="frontend_driver.html#hook_compact_calls_prop/2"><tt>hook_compact_calls_prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="48" href="frontend_driver.html#hook_native_prop/2"><tt>hook_native_prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="49" href="frontend_driver.html#hook_pp_info_clause/3"><tt>hook_pp_info_clause/3</tt></a>, <a class="lpdoc-idx-anchor" id="50" href="frontend_driver.html#hook_pp_info_lit/4"><tt>hook_pp_info_lit/4</tt></a>, <a class="lpdoc-idx-anchor" id="51" href="frontend_driver.html#hook_legal_regtype/1"><tt>hook_legal_regtype/1</tt></a>, <a class="lpdoc-idx-anchor" id="52" href="frontend_driver.html#hook_insert_regtype/2"><tt>hook_insert_regtype/2</tt></a>, <a class="lpdoc-idx-anchor" id="53" href="frontend_driver.html#hook_post_init_regtypes/0"><tt>hook_post_init_regtypes/0</tt></a>, <a class="lpdoc-idx-anchor" id="54" href="frontend_driver.html#hook_cleanup_lib_regtypes/0"><tt>hook_cleanup_lib_regtypes/0</tt></a>, <a class="lpdoc-idx-anchor" id="55" href="frontend_driver.html#hook_restore_lib_regtypes/1"><tt>hook_restore_lib_regtypes/1</tt></a>, <a class="lpdoc-idx-anchor" id="56" href="frontend_driver.html#hook_save_lib_regtypes/1"><tt>hook_save_lib_regtypes/1</tt></a>. </ul></ul></div></div><div id="Documentation on exports"><h2>Documentation on exports</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="preprocessing_unit/3" href="ciaopp_ref_mansearch.html#preprocessing_unit/3">preprocessing_unit/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage 1:</span><span class="lpdoc-usage-decl"><tt>preprocessing_unit(Fs,Ms,E)</tt> </span><p>Loads the preprocessing unit of <span class="lpdoc-var">Fs</span> defining <span class="lpdoc-var">Ms</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="57" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">Fs</span> is a list of <span class="lpdoc-var">filename</span>s. </span> <li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="58" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">Ms</span> is a list of <span class="lpdoc-var">moddesc</span>s. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="59" href="ciaopp_ref_mansearch.html#switch/1"><tt>switch/1</tt></a>)</span><span><span class="lpdoc-var">E</span> is an atom indicating yes/no. </span> </ul><p><span class="lpdoc-usage-header">Usage 2:</span><span class="lpdoc-usage-decl"><tt>preprocessing_unit(F,M,E)</tt> </span><p>Loads the preprocessing unit of <span class="lpdoc-var">F</span> defining <span class="lpdoc-var">M</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="60" href="ciaopp_ref_mansearch.html#filename/1"><tt>filename/1</tt></a>)</span><span><span class="lpdoc-var">F</span> is an atom describing the name of a file. </span> <li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="61" href="ciaopp_ref_mansearch.html#moddesc/1"><tt>moddesc/1</tt></a>)</span><span><span class="lpdoc-var">M</span> is a module descriptor. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="62" href="ciaopp_ref_mansearch.html#switch/1"><tt>switch/1</tt></a>)</span><span><span class="lpdoc-var">E</span> is an atom indicating yes/no. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="program/2" href="ciaopp_ref_mansearch.html#program/2">program/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>program(P,D)</tt> </span><p><span class="lpdoc-var">P</span> are the clauses (no directives) of the current module and <span class="lpdoc-var">D</span> their dictionaries.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="63" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">P</span> is a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="64" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">D</span> is a free variable. </span> <li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="65" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">P</span> is a list of <span class="lpdoc-var">clause</span>s. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="66" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">D</span> is a list of <span class="lpdoc-var">varnamedict</span>s. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="filtered_program_clauses/3" href="ciaopp_ref_mansearch.html#filtered_program_clauses/3">filtered_program_clauses/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>filtered_program_clauses(Mods,P,D)</tt> </span><p><span class="lpdoc-var">P</span> are the clauses of module <span class="lpdoc-var">Mod</span> and <span class="lpdoc-var">D</span> their dictionaries.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="67" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">Mods</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="68" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">P</span> is a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="69" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">D</span> is a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="70" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">Mods</span> is a list. </span> <li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="71" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">Mods</span> is a list. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="72" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">P</span> is a list of <span class="lpdoc-var">clause</span>s. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="73" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">D</span> is a list of <span class="lpdoc-var">varnamedict</span>s. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="replace_program/2" href="ciaopp_ref_mansearch.html#replace_program/2">replace_program/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>replace_program(P,D)</tt> </span><p>The database holding the program is updated by first deleting its contents and then adding the clauses in <span class="lpdoc-var">P</span> and dictionaries in <span class="lpdoc-var">D</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="74" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">P</span> is a list of <span class="lpdoc-var">clause</span>s. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="75" href="ciaopp_ref_mansearch.html#varnamedict/1"><tt>varnamedict/1</tt></a>)</span><span><span class="lpdoc-var">D</span> is a dictionary of variable names. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="native_to_prop/2" href="ciaopp_ref_mansearch.html#native_to_prop/2">native_to_prop/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>native_to_prop(NProp,Prop)</tt> </span><p>Obtain the user predicate (lit) <span class="lpdoc-var">Prop</span> that corresponds to the native property (lit) <span class="lpdoc-var">NProp</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="76" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">NProp</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="77" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Prop</span> is a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="prop_to_native/2" href="ciaopp_ref_mansearch.html#prop_to_native/2">prop_to_native/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>prop_to_native(Prop,NProp)</tt> </span><p>Obtain the native property (lit) <span class="lpdoc-var">NProp</span> that corresponds to the (lit) <span class="lpdoc-var">Prop</span> user predicate.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="78" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">Prop</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="79" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">NProp</span> is a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="native_to_props_visible/2" href="ciaopp_ref_mansearch.html#native_to_props_visible/2">native_to_props_visible/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>native_to_props_visible(Props,Goals)</tt> </span><p>Maps native <span class="lpdoc-var">Props</span> into their corresponding <span class="lpdoc-var">Goals</span> visible in the current module.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="80" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">Props</span> is a list of <span class="lpdoc-var">cgoal</span>s. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="81" href="basic_props.html#list/2"><tt>list/2</tt></a>)</span><span><span class="lpdoc-var">Goals</span> is a list of <span class="lpdoc-var">cgoal</span>s. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dynamic_or_unknown_predicate/1" href="ciaopp_ref_mansearch.html#dynamic_or_unknown_predicate/1">dynamic_or_unknown_predicate/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>dynamic_or_unknown_predicate(Goal)</tt> </span><p><span class="lpdoc-var">Goal</span> is an atom for a predicate such that all its clauses might not be available or may change in the program unit.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_assertion/2" href="ciaopp_ref_mansearch.html#get_assertion/2">get_assertion/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_assertions/1" href="ciaopp_ref_mansearch.html#add_assertions/1">add_assertions/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_assertions(AssrtList)</tt> </span><p>Add assertions list <span class="lpdoc-var">AssrtList</span> to internal DB.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="82" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">AssrtList</span> is a list. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_assertion/1" href="ciaopp_ref_mansearch.html#add_assertion/1">add_assertion/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_assertion(Assrt)</tt> </span><p>Add assertion <span class="lpdoc-var">Assrt</span> to internal DB.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_directive/1" href="ciaopp_ref_mansearch.html#add_directive/1">add_directive/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_directive(C)</tt> </span><p>The directive <span class="lpdoc-var">C</span> is added to the program data base. This directive will be considered as read from the program, i.e., analizers, transformations and output will use/show it.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="83" href="basic_props.html#term/1"><tt>term/1</tt></a>)</span><span><span class="lpdoc-var">C</span> is any term. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="erase_directive/1" href="ciaopp_ref_mansearch.html#erase_directive/1">erase_directive/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>erase_directive(D)</tt> </span><p>Erase directive <span class="lpdoc-var">D</span> (previously added with <a class="lpdoc-idx-anchor" id="84" href="#add_directive/1"><tt>add_directive/1</tt></a></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="85" href="basic_props.html#term/1"><tt>term/1</tt></a>)</span><span><span class="lpdoc-var">D</span> is any term. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="type_of_directive/2" href="ciaopp_ref_mansearch.html#type_of_directive/2">type_of_directive/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>type_of_directive(Type,Body)</tt> </span><p>There is a directive of the form <span class="lpdoc-var">:- Type Body</span> (of arity one).</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="pr_key_clean/0" href="ciaopp_ref_mansearch.html#pr_key_clean/0">pr_key_clean/0</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Removes all information about predicate order.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="86" href="native_props_nfdet_doc.html#det/1"><tt>det/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">pr_key_clean</span> are deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="pr_key_add/1" href="ciaopp_ref_mansearch.html#pr_key_add/1">pr_key_add/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>pr_key_add(K)</tt> </span><p>Add a predicate key (once)</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="87" href="basic_props.html#cgoal/1"><tt>cgoal/1</tt></a>)</span><span><span class="lpdoc-var">K</span> is a term which represents a goal, i.e., an atom or a structure. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="88" href="native_props_nfdet_doc.html#det/1"><tt>det/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">pr_key_add(K)</span> are deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="pr_key_get/1" href="ciaopp_ref_mansearch.html#pr_key_get/1">pr_key_get/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>pr_key_get(K)</tt> </span><p>Current predicate keys</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="89" href="basic_props.html#cgoal/1"><tt>cgoal/1</tt></a>)</span><span><span class="lpdoc-var">K</span> is a term which represents a goal, i.e., an atom or a structure. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="90" href="native_props_nfdet_doc.html#multi/1"><tt>multi/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">pr_key_get(K)</span> are multi-deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_defined_pred/2" href="ciaopp_ref_mansearch.html#add_defined_pred/2">add_defined_pred/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_defined_pred(ClKey,M)</tt> </span><p>Add the necessary data in itf_db (and <a class="lpdoc-idx-anchor" id="91" href="ciaopp_ref_mansearch.html#pr_key/1"><tt>pr_key/1</tt></a>) to define the predicate <span class="lpdoc-var">ClKey</span> in the module <span class="lpdoc-var">M</span>.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="92" href="basic_props.html#term/1"><tt>term/1</tt></a>)</span><span><span class="lpdoc-var">ClKey</span> is any term. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="93" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">M</span> is an atom. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="94" href="native_props_nfdet_doc.html#det/1"><tt>det/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">add_defined_pred(ClKey,M)</span> are deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="new_predicate/3" href="ciaopp_ref_mansearch.html#new_predicate/3">new_predicate/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>new_predicate(F,A,NewF)</tt> </span><p>Checks wether there is a predicate <span class="lpdoc-var">F</span>/<span class="lpdoc-var">A</span> in the program and returns <span class="lpdoc-var">NewF</span> so that there is no predicate <span class="lpdoc-var">NewF</span>/<span class="lpdoc-var">A</span> in the program.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="95" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">F</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="96" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="97" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">NewF</span> is a free variable. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="98" href="native_props_nfdet_doc.html#det/1"><tt>det/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">new_predicate(F,A,NewF)</span> are deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="predicate_names/1" href="ciaopp_ref_mansearch.html#predicate_names/1">predicate_names/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Returns the specs of predicates defined in the current punit.</p><ul class="lpdoc-itemize-minus"><li><em>Call and exit should be compatible with:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="99" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">Arg1</span> is a list. </span> <li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="100" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Arg1</span> is a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="multifile_predicate_names/1" href="ciaopp_ref_mansearch.html#multifile_predicate_names/1">multifile_predicate_names/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Returns the specs of predicates defined in the current punit.</p><ul class="lpdoc-itemize-minus"><li><em>Call and exit should be compatible with:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="101" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">Arg1</span> is a list. </span> <li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="102" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Arg1</span> is a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="inject_output_package/1" href="ciaopp_ref_mansearch.html#inject_output_package/1">inject_output_package/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>inject_output_package(A)</tt> </span><p>Inject the package <span class="lpdoc-var">A</span> in the current program database (including the output package list). The necesary information from these packages is loaded for correct treatment and unexpansion.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="103" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an atom. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_output_package/1" href="ciaopp_ref_mansearch.html#add_output_package/1">add_output_package/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_output_package(A)</tt> </span><p>Add the package <span class="lpdoc-var">A</span> to the output packages list</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="104" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is an atom. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_output_package/1" href="ciaopp_ref_mansearch.html#get_output_package/1">get_output_package/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_output_package(X)</tt> </span><p><span class="lpdoc-var">X</span> is a package that will be included in the output (<tt>module</tt> directive).</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_output_operator/3" href="ciaopp_ref_mansearch.html#add_output_operator/3">add_output_operator/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_output_operator(Prec,Type,OP)</tt> </span><p>Define an operator for output (same arguments as in <a class="lpdoc-idx-anchor" id="105" href="ciaopp_ref_mansearch.html#op/3"><tt>op/3</tt></a>).</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="106" href="basic_props.html#int/1"><tt>int/1</tt></a>)</span><span><span class="lpdoc-var">Prec</span> is an integer. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="107" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">Type</span> is an atom. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="108" href="basic_props.html#atm_or_atm_list/1"><tt>atm_or_atm_list/1</tt></a>)</span><span><span class="lpdoc-var">OP</span> is an atom or a list of atoms. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_output_operator/3" href="ciaopp_ref_mansearch.html#get_output_operator/3">get_output_operator/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_output_operator(Pred,Type,OP)</tt> </span><p>Enumerate output operators (same arguments as in <a class="lpdoc-idx-anchor" id="109" href="ciaopp_ref_mansearch.html#op/3"><tt>op/3</tt></a>).</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="110" href="basic_props.html#int/1"><tt>int/1</tt></a>)</span><span><span class="lpdoc-var">Pred</span> is an integer. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="111" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">Type</span> is an atom. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="112" href="basic_props.html#atm_or_atm_list/1"><tt>atm_or_atm_list/1</tt></a>)</span><span><span class="lpdoc-var">OP</span> is an atom or a list of atoms. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_comment/1" href="ciaopp_ref_mansearch.html#add_comment/1">add_comment/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_comment(Comment)</tt> </span><p>Add comment to the comment db</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="113" href="basic_props.html#string/1"><tt>string/1</tt></a>)</span><span><span class="lpdoc-var">Comment</span> is a string (a list of character codes). </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_comment/1" href="ciaopp_ref_mansearch.html#get_comment/1">get_comment/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_comment(Comment)</tt> </span><p>Retrieves comments from the comment db</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="114" href="basic_props.html#string/1"><tt>string/1</tt></a>)</span><span><span class="lpdoc-var">Comment</span> is a string (a list of character codes). </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="cleanup_comment_db/0" href="ciaopp_ref_mansearch.html#cleanup_comment_db/0">cleanup_comment_db/0</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Cleans up the comment db</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="cleanup_commented_assrt/0" href="ciaopp_ref_mansearch.html#cleanup_commented_assrt/0">cleanup_commented_assrt/0</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_commented_assertion/2" href="ciaopp_ref_mansearch.html#get_commented_assertion/2">get_commented_assertion/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_commented_assertions/1" href="ciaopp_ref_mansearch.html#add_commented_assertions/1">add_commented_assertions/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_commented_assertions(A)</tt> </span><p>Add the assertions list <span class="lpdoc-var">A</span> to the commented assertions DB.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="115" href="basic_props.html#list/1"><tt>list/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is a list. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_commented_assertion/1" href="ciaopp_ref_mansearch.html#add_commented_assertion/1">add_commented_assertion/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_commented_assertion(A)</tt> </span><p>Add assertion <span class="lpdoc-var">A</span> to the commented assertions DB.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="116" href="basic_props.html#term/1"><tt>term/1</tt></a>)</span><span><span class="lpdoc-var">A</span> is any term. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="cleanup_punit/0" href="ciaopp_ref_mansearch.html#cleanup_punit/0">cleanup_punit/0</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Clean up all facts that p_unit asserts.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_call_from_call_assrt/7" href="ciaopp_ref_mansearch.html#get_call_from_call_assrt/7">get_call_from_call_assrt/7</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_call_from_call_assrt(Sg,M,Status,Call,Source,LB,LE)</tt> </span><p>Returns in <span class="lpdoc-var">Call</span>, upon backtracking call patterns from calls assertions related to <span class="lpdoc-var">Sg</span>, in module <span class="lpdoc-var">M</span>. Also takes care of disjunctions.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_pred_mod_defined/2" href="ciaopp_ref_mansearch.html#get_pred_mod_defined/2">get_pred_mod_defined/2</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_pred_mod_defined(Sg,Mod)</tt> </span><p>Returns the module where a predicate given by goal <span class="lpdoc-var">Sg</span> is defined. If the <span class="lpdoc-var">Sg</span> is multifile, the modules where it is defined are enumerated.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="117" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">Sg</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="118" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Mod</span> is a free variable. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="119" href="native_props_nfdet_doc.html#nondet/1"><tt>nondet/1</tt></a>)</span><span>Calls of the form <span class="lpdoc-var">get_pred_mod_defined(Sg,Mod)</span> are non-deterministic. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="assertion_set_status/3" href="ciaopp_ref_mansearch.html#assertion_set_status/3">assertion_set_status/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="assertion_set_head/3" href="ciaopp_ref_mansearch.html#assertion_set_head/3">assertion_set_head/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="assertion_set_calls/3" href="ciaopp_ref_mansearch.html#assertion_set_calls/3">assertion_set_calls/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="assertion_set_success/3" href="ciaopp_ref_mansearch.html#assertion_set_success/3">assertion_set_success/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="assertion_set_comp/3" href="ciaopp_ref_mansearch.html#assertion_set_comp/3">assertion_set_comp/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="cleanup_libcache/0" href="ciaopp_ref_mansearch.html#cleanup_libcache/0">cleanup_libcache/0</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Cleans up libcache.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="loaded_libcache/0" href="ciaopp_ref_mansearch.html#loaded_libcache/0">loaded_libcache/0</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>Checks if the libcache is loaded</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="load_libcache/1" href="ciaopp_ref_mansearch.html#load_libcache/1">load_libcache/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>load_libcache(DataDir)</tt> </span><p>Load the preprocessed library cache (specified in the <tt>core/Manifest/core.libcache.pl</tt> module.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="gen_libcache/1" href="ciaopp_ref_mansearch.html#gen_libcache/1">gen_libcache/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>gen_libcache(DataDir)</tt> </span><p>Generate the preprocessed library cache (specified in the <tt>core/Manifest/core.libcache.pl</tt> module. .</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">(UNDOC_REEXPORT)</span><a class="lpdoc-idx-anchor" id="type_of_goal/2" href="ciaopp_ref_mansearch.html#type_of_goal/2">type_of_goal/2</a></div><div class="lpdoc-deftext"> Imported from <a class="lpdoc-idx-anchor" id="120" href="ciaopp_ref_mansearch.html#p_unit_basic"><tt>p_unit_basic</tt></a> (see the corresponding documentation for details).<br/></div></div><p> </div><div id="Documentation on multifiles"><h2>Documentation on multifiles</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="define_flag/3" href="ciaopp_ref_mansearch.html#define_flag/3">define_flag/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>define_flag(Flag,FlagValues,Default)</tt> </span><p></p><ul class="lpdoc-itemize-minus"><li><em>The following properties hold upon exit:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="121" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">Flag</span> is an atom. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="122" href="basic_props.html#flag_values/1"><tt>flag_values/1</tt></a>)</span><span>Define the valid flag values </span> </ul> The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_compact_global_prop/2" href="ciaopp_ref_mansearch.html#hook_compact_global_prop/2">hook_compact_global_prop/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_compact_calls_prop/2" href="ciaopp_ref_mansearch.html#hook_compact_calls_prop/2">hook_compact_calls_prop/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_native_prop/2" href="ciaopp_ref_mansearch.html#hook_native_prop/2">hook_native_prop/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_pp_info_clause/3" href="ciaopp_ref_mansearch.html#hook_pp_info_clause/3">hook_pp_info_clause/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_pp_info_lit/4" href="ciaopp_ref_mansearch.html#hook_pp_info_lit/4">hook_pp_info_lit/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_legal_regtype/1" href="ciaopp_ref_mansearch.html#hook_legal_regtype/1">hook_legal_regtype/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_insert_regtype/2" href="ciaopp_ref_mansearch.html#hook_insert_regtype/2">hook_insert_regtype/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="hook_post_init_regtypes/0" href="ciaopp_ref_mansearch.html#hook_post_init_regtypes/0">hook_post_init_regtypes/0</a></div><div class="lpdoc-deftext">No further documentation available for this predicate. The predicate is <em>multifile</em>.<br/></div></div><p> <div><div class="l