This file is indexed.

/usr/share/doc/gprolog-doc/gprolog.html/gprolog031.html is in gprolog-doc 1.3.0-6.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>

<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<META name="GENERATOR" content="hevea 1.10">
<LINK rel="stylesheet" type="text/css" href="gprolog.css">
<TITLE>Predicate information</TITLE>
</HEAD>
<BODY TEXT=black BGCOLOR=white>
<A HREF="gprolog030.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="gprolog023.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
<A HREF="gprolog032.html"><IMG SRC="next_motif.gif" ALT="Next"></A>
<HR>
<H3 CLASS="subsection"><A NAME="htoc98">7.8</A>&#XA0;&#XA0;Predicate information</H3><UL>
<LI><A HREF="gprolog031.html#toc69"><TT>current_predicate/1</TT></A>
</LI><LI><A HREF="gprolog031.html#toc70"><TT>predicate_property/2</TT></A>
</LI></UL>
<H4 CLASS="subsubsection"><A NAME="toc69"></A><A NAME="htoc99">7.8.1</A>&#XA0;&#XA0;<TT>current_predicate/1</TT></H4><P>
<A NAME="current-predicate/1"></A>
</P><P><B>Templates</B></P><DL CLASS="list"><DT CLASS="dt-list">
</DT><DD CLASS="dd-list"><TT>
current_predicate(?predicate_indicator)</TT></DD></DL><P><B>Description</B></P><P><TT>current_predicate(Pred)</TT> succeeds if there
exists a predicate indicator of a defined procedure that unifies with
<TT>Pred</TT>. All user defined procedures are found, whether static or
dynamic. Internal system procedures whose name begins
with <TT>&#X2019;$&#X2019;</TT> are not found. A user-defined procedure is found
even when it has no clauses. A user-defined procedure is not found if
it has been abolished. To conform to the ISO reference, built-in predicates
are not found except if the <TT>strict_iso</TT> Prolog flag is switched off (section&#XA0;<A HREF="gprolog045.html#set-prolog-flag/2">7.22.1</A>). This predicate is re-executable on
backtracking.</P><P><B>Errors</B></P><TABLE CELLSPACING=6 CELLPADDING=0><TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is neither a variable nor a predicate indicator</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(predicate_indicator, Pred)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
neither a variable nor an integer</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(integer, Arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Name</TT> is
neither a variable nor an atom</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(atom, Name)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
an integer &lt; 0</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>domain_error(not_less_than_zero, Arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
an integer &gt; <TT>max_arity</TT> flag (section&#XA0;<A HREF="gprolog045.html#set-prolog-flag/2">7.22.1</A>)</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>representation_error(max_arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
</TABLE><P><B>Portability</B></P><P>ISO predicate.</P><H4 CLASS="subsubsection"><A NAME="toc70"></A><A NAME="htoc100">7.8.2</A>&#XA0;&#XA0;<TT>predicate_property/2</TT></H4><P>
<A NAME="predicate-property/2"></A>
</P><P><B>Templates</B></P><DL CLASS="list"><DT CLASS="dt-list">
</DT><DD CLASS="dd-list"><TT>
predicate_property(?predicate_indicator, ?predicate_property)</TT></DD></DL><P><B>Description</B></P><P><TT>predicate_property(Pred, Property)</TT> succeeds if there
exists a predicate indicator of a defined procedure that unifies with
<TT>Pred</TT> and if <TT>Property</TT> unifies with one of the properties of
the procedure. All user defined procedures and built-in predicates are 
found. Internal system procedures whose name begins with <TT>&#X2019;$&#X2019;</TT>
are not found. This predicate is re-executable on backtracking.</P><P><B>Predicate properties</B>:</P><UL CLASS="itemize"><LI CLASS="li-itemize"><TT>static</TT>: if the procedure is static.</LI><LI CLASS="li-itemize"><TT>dynamic</TT>: if the procedure is dynamic.</LI><LI CLASS="li-itemize"><TT>private</TT>: if the procedure is private.</LI><LI CLASS="li-itemize"><TT>public</TT>: if the procedure is public.</LI><LI CLASS="li-itemize"><TT>user</TT>: if the procedure is a user-defined procedure.</LI><LI CLASS="li-itemize"><TT>built_in</TT>: if the procedure is a Prolog built-in predicate.</LI><LI CLASS="li-itemize"><TT>built_in_fd</TT>: if the procedure is an FD built-in predicate.</LI><LI CLASS="li-itemize"><TT>native_code</TT>: if the procedure is compiled in native code.</LI><LI CLASS="li-itemize"><TT>prolog_file(File)</TT>: source file from which the
predicate has been read.</LI><LI CLASS="li-itemize"><TT>prolog_line(Line)</TT>: line number of the source
file.</LI></UL><P><B>Errors</B></P><TABLE CELLSPACING=6 CELLPADDING=0><TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is neither a variable nor a predicate indicator</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(predicate_indicator, Pred)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
neither a variable nor an integer</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(integer, Arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Name</TT> is
neither a variable nor an atom</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(atom, Name)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
an integer &lt; 0</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>domain_error(not_less_than_zero, Arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Pred</TT> is a term <TT>Name/Arity</TT> and <TT>Arity</TT> is
an integer &gt; <TT>max_arity</TT> flag (section&#XA0;<A HREF="gprolog045.html#set-prolog-flag/2">7.22.1</A>)</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>representation_error(max_arity)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Property</TT> is neither a variable nor a predicate property
term</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>domain_error(predicate_property, Property)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Property</TT> = <TT>prolog_file(File)</TT> and <TT>File</TT>
is neither a variable nor an atom</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(atom, File)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left>
<TT>Property</TT> = <TT>prolog_line(Line)</TT> and <TT>Line</TT>
is neither a variable nor an integer</TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left><TT>type_error(integer, Line)</TT></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
</TABLE><P><B>Portability</B></P><P>GNU Prolog predicate.</P>
<HR SIZE=2>
Copyright (C) 1999-2007 Daniel Diaz
Verbatim copying and distribution of this entire article is permitted in any
medium, provided this notice is preserved. <A HREF="index.html#copyright">More about the copyright</A>
<HR>
<A HREF="gprolog030.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="gprolog023.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
<A HREF="gprolog032.html"><IMG SRC="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>