head 1.36; access; symbols; locks ulrich:1.36; strict; comment @# @; 1.36 date 2010.12.11.20.48.14; author ulrich; state Exp; branches; next 1.35; 1.35 date 2010.07.27.20.34.01; author ulrich; state Exp; branches; next 1.34; 1.34 date 2010.07.22.07.53.50; author ulrich; state Exp; branches; next 1.33; 1.33 date 2010.07.21.06.08.05; author ulrich; state Exp; branches; next 1.32; 1.32 date 2010.07.20.14.46.13; author ulrich; state Exp; branches; next 1.31; 1.31 date 2010.07.19.11.13.35; author ulrich; state Exp; branches; next 1.30; 1.30 date 2010.07.09.13.19.00; author ulrich; state Exp; branches; next 1.29; 1.29 date 2009.11.02.20.25.43; author ulrich; state Exp; branches; next 1.28; 1.28 date 2009.11.02.20.23.23; author ulrich; state Exp; branches; next 1.27; 1.27 date 2009.11.02.00.53.26; author ulrich; state Exp; branches; next 1.26; 1.26 date 2009.11.02.00.51.51; author ulrich; state Exp; branches; next 1.25; 1.25 date 2009.11.02.00.51.30; author ulrich; state Exp; branches; next 1.24; 1.24 date 2009.11.01.23.53.04; author ulrich; state Exp; branches; next 1.23; 1.23 date 2009.11.01.23.51.35; author ulrich; state Exp; branches; next 1.22; 1.22 date 2009.11.01.23.47.10; author ulrich; state Exp; branches; next 1.21; 1.21 date 2009.10.27.10.19.49; author ulrich; state Exp; branches; next 1.20; 1.20 date 2009.10.26.20.40.40; author ulrich; state Exp; branches; next 1.19; 1.19 date 2009.10.22.14.37.02; author ulrich; state Exp; branches; next 1.18; 1.18 date 2009.10.22.14.13.59; author ulrich; state Exp; branches; next 1.17; 1.17 date 2009.10.22.13.50.08; author ulrich; state Exp; branches; next 1.16; 1.16 date 2009.10.22.12.10.29; author ulrich; state Exp; branches; next 1.15; 1.15 date 2009.10.22.11.38.34; author ulrich; state Exp; branches; next 1.14; 1.14 date 2009.10.22.11.36.27; author ulrich; state Exp; branches; next 1.13; 1.13 date 2009.10.21.20.45.48; author ulrich; state Exp; branches; next 1.12; 1.12 date 2009.10.21.20.08.57; author ulrich; state Exp; branches; next 1.11; 1.11 date 2009.10.21.20.03.33; author ulrich; state Exp; branches; next 1.10; 1.10 date 2009.10.21.19.37.04; author ulrich; state Exp; branches; next 1.9; 1.9 date 2009.10.21.13.58.03; author ulrich; state Exp; branches; next 1.8; 1.8 date 2009.10.20.17.26.31; author ulrich; state Exp; branches; next 1.7; 1.7 date 2009.10.20.11.45.25; author ulrich; state Exp; branches; next 1.6; 1.6 date 2009.10.19.20.47.37; author ulrich; state Exp; branches; next 1.5; 1.5 date 2009.10.19.03.36.10; author ulrich; state Exp; branches; next 1.4; 1.4 date 2009.10.19.03.33.35; author ulrich; state Exp; branches; next 1.3; 1.3 date 2009.10.19.03.27.32; author ulrich; state Exp; branches; next 1.2; 1.2 date 2009.10.19.03.01.47; author ulrich; state Exp; branches; next 1.1; 1.1 date 2009.10.19.02.55.00; author ulrich; state Exp; branches; next ; desc @@ 1.36 log @Final @ text @ N225 Built-in predicates: current practice

ISO/IEC JTC1 SC22 WG17 N225
Built-in predicates, current practice

Ulrich Neumerkel (Version history)
This is the final state of the document as it was used for the resolutions in Edinburgh. In the meantime many systems adopted accordingly.
In 13211-1:1995 built-in predicates (8) are provided automatically by a standard-conforming processor. This document provides an overview of the current practice of built-in predicates that are not part of 13211-1 but are compliant (5.1) due to:
5.5.9 Built-in predicates
A processor may support one or more additional built-in
predicates (8) as an implementation specific feature.

Implementation specific built-in predicates

Implementors interested in standardization who wish to see their system listed in this table are asked to provide a table in HTML with the complete first row and one row for their system. Please consider only additional built-in predicates if you believe that they should be part of the Prolog core.

bip : built-in predicate
lib : library - must be loaded explicitly
pdp : pre-defined predicate - either autoloaded or pre-defined otherwise.
alt : alternate name or very close alternate definition
- : this built-in is not present
empty : this field is unknown, please help to remove the unknowns!
In all known Prolog processors, there is no distiction between control constructs (7.8) and built-in predicates (8) w.r.t. predicate_property/2.

core core pllib B IF SICStus YAP SWI ECLiPSe GNU
Functor 2008-11-17 2009-07-17 7B 7.35.33.12 6.05.76.01.3
compare/3 8.4.2 8.4.2 bipbipbipbipbipbipbipbip
sort/2 8.18.48.18.4anybipbipbipbipbipbipbip
keysort/2 8.18.58.18.5anybip- bipbipbipbipbip
ground/1 8.3.108.3.10 bipbipbipbipbipbipbip
call/2-8 8.15.48.15.4bipbip...4 bipbiplibbip
false/0 pdp- bipbippdpbipnew
callable/1 8.3.9 8.3.9 pdp- bipbipbipbipbip
subsumes_term/2 alt- altaltaltalt-
subsumes_chk/2 alt liblibbiplib
subsumeschk/2 alt 4 altaltalt
subsume/2 bip altaltaltalt
acyclic_term/1 alt 8.3.11 - altliblibbipbip-
acyclic/1 8.3.11alt - altaltaltaltalt-
cyclic/1 8.3.12alt - bipaltaltaltalt-
term_variables/2,3 bip libbipbiplib
retractall/1 8.9.5 8.9.5 bip- bipbipbipbipbip
numbervars/3 8.5.5 8.5.5 bip- bipbipbiplibbip
subsumes/2 8.2.4 8.2.4 alt- liblibbiplib-
forall/2 8.10.48.10.4 pdp- - bipbiplibnew
setup_call_cleanup/3 7.8.11 new- altbipbiplib-
call_cleanup/2 8.15.5 bip- bipbipbipalt-
(?=)/2 ? bip- bip- biplib-
between/3 bip- - - libbiplib-
is_list/1 ? bip- libbipbipbip-
variant/2 bip liblibaltbip
(=@@=)/ 2 altaltbipalt
between/4 ? - - - - - bip-
(>=<)/2 bip- - - - - - -
arity/2 - - - - - bip-
length/2 8.18.2lib anybip- bipbipbipbipbip
append/3 8.18.1lib anybipbipliblibpdpbipbip
member/2 8.18.3lib anybipbipliblibpdpbipbip
cuf

call/2-8
setup_call_cleanup/3
subsumes/2
Changed by A.1 c, Pasadena 2009 (removed text striked through, new text highlighted, problematic text underscored):
8.2.4.1 Description
subsumes(General, Specific) is true iff there is a substitution θ, including the empty substitution, such that the term General is instantiated. Generalθ = Specific = Specificθ . This predicate provides a one-way unification.
The last sentence should go reformulated into subclause 8.2.4 (precedent: 8.10.2 bagof/3).
In the literature one sided unification (semi-unification) is defined as Generalθ = Specificθ = Specific. Related to this is the notion of matching, that sometimes is referred to as one-way unification. That other kind of matching is defined as General θ = Specific. Now for f(X) and f(g(X)) the substitution (3.171) θ = {X → g(X)} is a matcher, but this is not one-sided unification. Example from Hans-Jürgen Bückert, Matching - A Special Case of Unification? in Claude Kirchner (ed.), Unification, Academic Press, 125-138 1990.
Proposal for a property: For all terms X, Y: subsumes(X,Y) iff subsumes(g(X),g(Y)). (This property allows to wrap terms up).
Originally from O'Keefe's METUTL.PL (1983-05-20).
subsumes/2 could be expressed as a bootstrapped built-in predicate:
subsumes(General, Specific) :-
   subsumes_chk(General, Specific),
   General = Specific.
subsumes_term/2
The following definition has not yet been presented to WG17. It may replace the current definition of subsumes/2. There has been a vivid discussion on the SWI list.

8.2.4 subsumes_term/2

This built-in predicate provides a test for syntactic one-sided unification.

8.2.4.1 Description

subsumes_term(General, Specific) is true iff there is a substitution θ such that
Generalθ and Specificθ are identical, and
Specificθ and Specific are identical.

Procedurally, subsumes_term(General, Specific) simply succeeds or fails accordingly. There is no side effect or unification.

8.2.4.2 Template and modes

subsumes_term(@@term, @@term)

8.2.4.3 Errors

None.

8.2.4.4 Examples

subsumes_term(a, a).
   Succeeds.

subsumes_term(f(X,Y), f(Z,Z)).
   Succeeds.

subsumes_term(f(Z,Z), f(X,Y)).
   Fails.

subsumes_term(g(X), g(f(X))).
   Fails.

subsumes_term(X, f(X)).
   Fails.

subsumes_term(X, Y), subsumes_term(Y, f(X)).
   Succeeds.
NOTES
1 subsumes_term/2 is not transitive. The last two examples above illustrate this.
2 A related built-in predicate subsumes/2 is implemented in many existing processors. In addition to testing for one-sided unifiability, it binds the first argument to become the second. In many situations this binding leads to erroneous programs. The following definition is deprecated and is mentioned here only for backwards compatibility.
subsumes(General, Specific) :-
   subsumes_term(General, Specific),
   General = Specific.
In SICStus since 2.1#7 (1993-02-08), originally from Richard O'Keefe's METUTL.PL (1983-05-20).
(>=<)/2
Defined for arithmetics
(?=)/2
X and Y are either syntactically identical or syntactically non-unifiable.
arity/2
arity(Term, Arity) is the same as functor(Term, _, Arity). Maybe rather an evaluable functor arity/1.
between/4
between(+From, +To, +Step, ?Result)
between/3
between(+From, +To, ?I)
is_list/1
True iff Argument is a list (3.99). [a,b|c] is not a list, [_|_] is not a list.
sort/2
Bootstrapped definition
sort(Xs, Sorted) :-
   setof(X, member(X,Xs), Sorted).
sort([], []).
Is sort(@@list, ?list) a good mode? After all
?- sort([A],[a]).
A = a.
keysort/2
Bootstrapped definition
mykeysort(KV_s, Sorted) :-
   bagof(K-V,
      Vs^
         ( setof(K-Vs, bagof(V, member(K-V,KV_s), Vs), KVs_s),
           member(K-Vs, KVs_s),
	   member(V, Vs)
         ),
      Sorted).
mykeysort([], []).
Is keysort(@@list, ?list) a good mode? After
term_variables/2
Unify VARIABLES with the list of all variables of term TERM. The variables occur in depth-first, left-to-right traversal order.
variant/2.
Implementations do not implement the logical form of variant, but rather a very "implementation oriented" one which works safely only if there is no variable occuring in both arguments. In particular, variant(A-B,B-A). and variant(A-B,B-C). most often fail. This behaviour can be easily emulated with:
variant_halfcorrect(A, B) :-
   subsumes_term(A, B),
   subsumes_term(B, A).
The more costly version would them be:
variant_correct(A, B) :-
   copy_term(A, AC),
   subsumes_term(AC, B),
   subsumes_term(B, AC).

Previous documents

List of Built-in predicates prepared for Seattle 2006 by Paulo Moura
Validated HTML @ 1.35 log @N225 @ text @d82 5 d373 2 a377 2 Is keysort(@@list, ?list) a good mode? After @ 1.34 log @Last additions prior to voting @ text @d6 1 a6 1 Built-in predicates: current practice d147 4 a150 4 subsumes_chk/2 alt liblibbiplib subsumeschk/2 alt 4 altaltalt subsume/2 bip altaltaltalt subsumes/2 8.2.4 8.2.4 alt- liblibbiplib- d153 2 a154 2 acyclic/1 8.3.11alt - altaltaltaltalt- cyclic/1 8.3.12alt - bipaltaltaltalt- d158 3 d163 2 d235 1 a235 1 a vidid d240 1 a240 1

8.4.3 subsumes_term/2

d244 1 a244 1

8.4.3.1 Description

d259 1 a259 1

8.4.3.2 Template and modes

d263 1 a263 1

8.4.3.3 Errors

d266 1 a266 1

8.4.3.4 Examples

d339 33 a371 1
term_variables/2 @ 1.33 log @Further changes reflecting WG17 discussion on 2010-07-21 @ text @d149 2 d236 1 a236 1

8.4.3 subsumes_term/2

d252 1 a252 1 succeeds or fails accordingly. There is no side effect or @ 1.32 log @Changes during WG17 meeting @ text @d156 1 a158 1 retractall/1 8.9.5 8.9.5 bip- bipbipbipbipbip d234 1 a234 1

8.2.4 subsumes_term/2

d238 1 a238 1

8.2.4.1 Description

d250 2 a251 1 succeeds or fails accordingly. No unifications take place. d253 1 a253 1

8.2.4.2 Template and modes

d257 1 a257 1

8.2.4.3 Errors

d260 1 a260 1

8.2.4.4 Examples

@ 1.31 log @Changes with Jonathan and Jan @ text @d155 1 a155 1 term_variables/2 bip libbipbiplib d244 3 a246 2 = Specificθ = Specific. d291 1 a291 1 second. In most situations this binding leads to erroneous programs. @ 1.30 log @Updated versions @ text @d108 1 d124 9 a132 10 cuf B IF SICStus YAP SWI ECLiPSe GNU Functor 2008-11-17 2009-07-17 d134 2 a135 2 7.35.33.12 6.05.76.01.3 d137 40 a176 33 subsumes/2 8.2.4 8.2.4 - - liblibbiplib- callable/1 8.3.9 8.3.9 pdp- bipbipbipbipbip ground/1 8.3.108.3.10 bipbipbipbipbipbipbip acyclic/1 8.3.11alt - - - - - - - acyclic_term/1 alt 8.3.11 - - liblibbipbip- cyclic/1 8.3.12 - bip- - - - - compare/3 8.4.2 8.4.2 bip bipbipbipbipbipbipbip numbervars/3 8.5.5 8.5.5 bip- bipbipbiplibbip retractall/1 8.9.5 8.9.5 bip- bipbipbipbipbip forall/2 8.10.48.10.4 pdp- - bipbiplibnew call/2-8 8.15.48.15.4bip bip- 4 bipbiplibbip false/0 pdp- bipbippdpbipnew call_cleanup/2 8.15.5 bip- bipbipbip- - setup_call_cleanup/3 7.8.11 new- - bipbiplib- append/3 8.18.1lib any bipbipliblibpdpbipbip length/2 8.18.2lib any bip- bipbipbipbipbip member/2 8.18.3lib any bipbipliblibpdpbipbip sort/2 8.18.48.18.4any bipbipbipbipbipbipbip keysort/2 8.18.58.18.5any bip- bipbipbipbipbip (>=<)/2 bip - - - - - - - (?=)/2 ? bip- bip- biplib- arity/2 - - - - - bip- between/3 bip - - - libbiplib- between/4 ? - - - - - bip- is_list/1 ? - - libbipbipbip- variant/2 bip liblibaltbip (=@@=)/ 2 altaltbipalt subsumes_chk/2 liblibbiplib term_variables/2 bip libbipbiplib d179 2 d227 4 a230 1 may replace the current definition of subsumes/2. d236 1 a236 9 This built-in predicate provides a test for syntactic semi-unification also known as one-sided unification.
NOTE — A related built-in predicate subsumes/2 is implemented in many existing processors. In addition to testing for semi-unifiability, it binds the first argument to become the second. In most situations this binding leads to erroneous programs.
d248 2 a249 2

Procedurally, subsumes_term(General, Specific) succeeds or fails; there is no unification. d264 6 d276 1 a276 1 subsumes_term(f(X,Y), f(Z,Z)). a277 3 subsumes_term(f(Z,Z), f(X,Y)). Fails. d281 11 a291 1 NOTE — The following definition is deprecated and is mentioned d337 20 @ 1.29 log @*** empty log message *** @ text @d141 1 a141 1 ground/1 8.3.108.3.10 bipbipbipbipbipbip- d148 3 a150 3 forall/2 8.10.48.10.4 pdp- - bipbiplib- call/2-8 8.15.48.15.4bip bip- - bipbiplibbip false/0 pdp- bipbippdpbip- d152 1 a152 1 setup_call_cleanup/3 7.8.11 new- - bipbip- - d216 1 a216 1

subsumes_chk/2 d222 1 a222 1

8.2.4 subsumes_chk/2, subsumes/2

d224 1 a224 1 These built-in predicates provide syntactic semi-unification also d227 7 d235 1 a235 1 subsumes_chk(General, Specific) is true iff there is a d244 1 a244 1

Procedurally, subsumes_chk(General, Specific) succeeds d249 1 a249 1 subsumes_chk(@@term, @@term) d257 10 a266 1 subsumes_chk(f(X,Y), f(Z,Z)). d269 2 a270 2 subsumes_chk(f(Z,Z), f(X,Y)). Fails d273 3 a275 4

8.2.4.5 Bootstrapped built-in predicates

The built-in predicate subsumes/2 provides similar functionality to subsumes_chk/2 except that subsumes/2 unifies the arguments. d278 1 a278 1 subsumes_chk(General, Specific), d281 1 @ 1.28 log @*** empty log message *** @ text @d218 1 a218 1 may replace the current definition of subsumes/2. @ 1.27 log @*** empty log message *** @ text @d218 1 a218 1 may replace the current definition of subsumes/2. @ 1.26 log @*** empty log message *** @ text @d238 1 a238 1 or fails. No unification is performed. @ 1.25 log @*** empty log message *** @ text @d237 1 a237 1

Procedurally, subsumes_chk(General, Specific) suceeds @ 1.24 log @*** empty log message *** @ text @d217 1 a217 1

The following definition has not (yet) been presented to WG17! It d238 1 a238 1 or fails. No unification takes place. @ 1.23 log @*** empty log message *** @ text @d217 2 a218 1
The following definition has not (yet) been presented to WG17! @ 1.22 log @*** empty log message *** @ text @d236 3 @ 1.21 log @*** empty log message *** @ text @d186 2 a187 1 that the term General is instantiated d201 66 a266 2 Hans-Jürgen Bückert, Matching - A Special Case of Unification? in Jörg Siekmann (ed.), Unification, 1990. d298 1 a298 2 variables occur in the order of their first appearance when traversing the term depth-first, left-to-right. d305 1 a305 1 for Seattle 2006 @ 1.20 log @*** empty log message *** @ text @d190 1 a190 1 The last sentence should go reformulated into clause 8.2.4 (precedent: @ 1.19 log @*** empty log message *** @ text @d104 7 a110 8
bip : built-in predicate
lib : library - must be loaded explicitly
pdp : pre-defined predicate - either autoloaded or pre-defined otherwise.
- : this built-in is not present
empty : this field is unknown, please help to remove the unknowns!
d151 7 a157 7 call_cleanup/2 8.15.5 - bip- bipbipbip- - setup_call_cleanup/3 7.8.11- new- - bipbip- - append/3 8.18.1lib bipbipliblibpdpbipbip length/2 8.18.2lib bip- bipbipbipbipbip member/2 8.18.3lib bipbipliblibpdpbipbip sort/2 8.18.48.18.4 bipbipbipbipbipbipbip keysort/2 8.18.58.18.5 bip- bipbipbipbipbip d178 1 a178 1
subsumes/2 d184 1 a184 1 subsumes(General, Specific) is true iff there is a @ 1.18 log @Further reformulation for subsumes/2 @ text @d180 3 a182 1
Changed by A.1 c, Pasadena 2009 (new part highlighted): d200 1 a200 1 but this is not one-sided unification. This example is from @ 1.17 log @Inserted new Decription of subsumes @ text @d185 1 a185 1 that the term General is instantiated to d187 14 a200 2 = Specificθ . This predicate provides a one-way unification. @ 1.16 log @*** empty log message *** @ text @d11 2 d179 11 @ 1.15 log @ECLiPSe arity/2 or arity/1 @ text @d112 1 a112 1 and built-in predicates w.r.t. predicate_property/2. @ 1.14 log @*** empty log message *** @ text @d188 2 a189 1
arity(Term, Arity) is the same as functor(Term, _, Arity). @ 1.13 log @*** empty log message *** @ text @d132 1 a132 1 6 @ 1.12 log @Improved codex depiction @ text @d213 2 a214 2 List of Built-in prepared for Seattle 2006 @ 1.11 log @Corrected mode to ISO mode @ text @d84 1 a84 1 13211-1 but are compliant (5.1) due to 5.5.9 Built-in predicates: d87 2 a88 1 A processor may support one or more additional built-in predicates (8) @ 1.10 log @Paulo Moura's Seattle Slide Neng-Fa Zhou's correction @ text @d190 1 a190 1
between(+From, +To, +Step, -Result) @ 1.9 log @Pasadena resolution moved these predicates into libraries @ text @d162 1 a162 1 variant/2 liblibaltbip d165 1 a165 1 term_variables/2 - libbipbiplib d210 5 @ 1.8 log @*** empty log message *** @ text @d151 3 a153 3 append/3 8.18.1 bipbipliblibpdpbipbip length/2 8.18.2 bip- bipbipbipbipbip member/2 8.18.3 bipbipliblibpdpbipbip @ 1.7 log @*** empty log message *** @ text @d147 1 a147 1 call/2-8 8.15.48.15.4bip bip- - bipbip bip d157 1 a157 1 (?=)/2 ? bip- bip- bip- - d164 1 a164 1 subsumes_chk/2 liblib lib @ 1.6 log @*** empty log message *** @ text @d137 1 a137 1 subsumes/2 8.2.4 8.2.4 - - liblibbip- - d141 1 a141 1 acyclic_term/1 alt 8.3.11 - - liblibbip- - d144 3 a146 3 numbervars/3 8.5.5 8.5.5 bip- bipbipbip bip retractall/1 8.9.5 8.9.5 bip- bipbipbip bip forall/2 8.10.48.10.4 pdp- - bipbip - d158 8 d167 1 a169 3 d185 23 d210 2 @ 1.5 log @*** empty log message *** @ text @d136 1 d140 3 a142 3 acyclic/1 8.3.11alt - - - - - - acyclic_term/1 alt 8.3.11 - liblibbip- - cyclic/1 8.3.12 bip- - - - - @ 1.4 log @formatting @ text @d118 40 a157 40 core core pllib cuf B IF SICStus YAP SWI ECLiPSe GNU Functor 2008-11-17 2009-07-17 6 7.35.33.12 6.05.76.01.3 subsumes/2 8.2.4 8.2.4 - - liblibbip- - callable/1 8.3.9 8.3.9 pdp- bipbipbipbipbip ground/1 8.3.108.3.10 bipbipbipbipbipbip- acyclic/1 8.3.11alt - - - - - - acyclic_term/1 alt 8.3.11 - liblibbip- - cyclic/1 8.3.12 bip- - - - - compare/3 8.4.2 8.4.2 bip bipbipbipbipbipbipbip numbervars/3 8.5.5 8.5.5 bip- bipbipbip bip retractall/1 8.9.5 8.9.5 bip- bipbipbip bip forall/2 8.10.48.10.4 pdp- - bipbip - call/2-88.15.48.15.4bip bip- - bipbip bip false/0 pdp- bipbippdpbip- call_cleanup/2 8.15.5 - bip- bipbipbip- - setup_call_cleanup/3 7.8.11- new- - bipbip- - append/3 8.18.1 bipbipliblibpdpbipbip length/2 8.18.2 bip- bipbipbipbipbip member/2 8.18.3 bipbipliblibpdpbipbip sort/2 8.18.48.18.4 bipbipbipbipbipbipbip keysort/2 8.18.58.18.5 bip- bipbipbipbipbip (>=<)/2 bip - - - - - - - (?=)/2 ? bip- bip- bip- - d165 4 @ 1.3 log @*** empty log message *** @ text @d118 40 a157 40 core core pllib cuf B IF SICStus YAP SWI ECLiPSe GNU Functor 2008-11-17 2009-07-17 6 7.35.33.12 6.05.76.01.3 subsumes/2 8.2.4 8.2.4 - - liblibbip- - callable/1 8.3.9 8.3.9 pdp- bipbipbipbipbip ground/1 8.3.108.3.10 bipbipbipbipbipbip- acyclic/1 8.3.11alt - - - - - - acyclic_term/1 alt 8.3.11 - liblibbip- - cyclic/1 8.3.12 bip- - - - - compare/3 8.4.2 8.4.2 bip bipbipbipbipbipbipbip numbervars/3 8.5.5 8.5.5 bip- bipbipbip bip retractall/1 8.9.5 8.9.5 bip- bipbipbip bip forall/2 8.10.48.10.4 pdp- - bipbip - call/2-88.15.48.15.4bip bip- - bipbip bip false/0 pdp- bipbippdpbip- call_cleanup/2 8.15.5 - bip- bipbipbip- - setup_call_cleanup/3 7.8.11- new- - bipbip- - append/3 8.18.1 bipbipliblibpdpbipbip length/2 8.18.2 bip- bipbipbipbipbip member/2 8.18.3 bipbipliblibpdpbipbip sort/2 8.18.48.18.4 bipbipbipbipbipbipbip keysort/2 8.18.58.18.5 bip- bipbipbipbipbip (>=<)/2 bip - - - - - - - (?=)/2 ? bip- bip- bip- - d168 1 a168 1 Defined for arithmetics @ 1.2 log @ECLiPSe @ text @d102 5 a106 3
bip - built-in predicate
lib - library - must be loaded explicitly
pdp - pre-defined predicate - either autoloaded or pre-defined otherwise. @ 1.1 log @Initial revision @ text @d134 7 a140 7 subsumes/2 8.2.4 8.2.4 - - liblibbip - callable/1 8.3.9 8.3.9 pdp- bipbipbip bip ground/1 8.3.108.3.10 bipbipbipbipbip - acyclic/1 8.3.11alt - - - - - acyclic_term/1 alt 8.3.11 - liblibbip - cyclic/1 8.3.12 bip- - - - compare/3 8.4.2 8.4.2 bip bipbipbipbipbip bip d145 1 a145 1 false/0 pdp- bipbippdp - d148 7 a154 7 append/3 8.18.1 bipbipliblibpdp bip length/2 8.18.2 bip- bipbipbip bip member/2 8.18.3 bipbipliblibpdp bip sort/2 8.18.48.18.4 bipbipbipbipbip bip keysort/2 8.18.58.18.5 bip- bipbipbip bip (>=<)/2 bip - - - - - - (?=)/2 ? bip- bip- bip - @