File: summary.doc

package info (click to toggle)
swi-prolog 8.2.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 78,084 kB
  • sloc: ansic: 362,656; perl: 322,276; java: 5,451; cpp: 4,625; sh: 3,047; ruby: 1,594; javascript: 1,509; yacc: 845; xml: 317; makefile: 156; sed: 12; sql: 6
file content (976 lines) | stat: -rw-r--r-- 60,256 bytes parent folder | download
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
\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 apropos/1 to
suggest predicates from a keyword.

\begin{summarylist}{ll}
\predicatesummary{@}{2}{Call using calling context}
\predicatesummary{!}{0}{Cut (discard choicepoints)}
\oppredsummary{,}{2}{xfy}{1000}{Conjunction of goals}
\oppredsummary{->}{2}{xfy}{1050}{If-then-else}
\oppredsummary{*->}{2}{xfy}{1050}{Soft-cut}
\predicatesummary{.}{2}{Consult. Also functional notation}
\oppredsummary{:<}{2}{xfx}{700}{Select keys from a dict}
\oppredsummary{;}{2}{xfy}{1100}{Disjunction of two goals}
\oppredsummary{<}{2}{xfx}{700}{Arithmetic smaller}
\oppredsummary{=}{2}{xfx}{700}{True when arguments are unified}
\oppredsummary{=..}{2}{xfx}{700}{``Univ.'' Term to list conversion}
\oppredsummary{=:=}{2}{xfx}{700}{Arithmetic equality}
\oppredsummary{=<}{2}{xfx}{700}{Arithmetic smaller or equal}
\oppredsummary{==}{2}{xfx}{700}{Test for strict equality}
\oppredsummary{=@=}{2}{xfx}{700}{Test for structural equality (variant)}
\oppredsummary{=\=}{2}{xfx}{700}{Arithmetic not equal}
\oppredsummary{>}{2}{xfx}{700}{Arithmetic larger}
\oppredsummary{>=}{2}{xfx}{700}{Arithmetic larger or equal}
\oppredsummary{>:<}{2}{xfx}{700}{Partial dict unification}
\predicatesummary{?=}{2}{Test of terms can be compared now}
\oppredsummary{@<}{2}{xfx}{700}{Standard order smaller}
\oppredsummary{@=<}{2}{xfx}{700}{Standard order smaller or equal}
\oppredsummary{@>}{2}{xfx}{700}{Standard order larger}
\oppredsummary{@>=}{2}{xfx}{700}{Standard order larger or equal}
\oppredsummary{\+}{1}{fy}{900}{Negation by failure. Same as not/1}
\oppredsummary{\=}{2}{xfx}{700}{True if arguments cannot be unified}
\oppredsummary{\==}{2}{xfx}{700}{True if arguments are not strictly equal}
\oppredsummary{\=@=}{2}{xfx}{700}{Not structural identical}
\oppredsummary{^}{2}{xfy}{200}{Existential quantification (bagof/3, setof/3)}
\oppredsummary{|}{2}{xfy}{1105}{Disjunction in DCGs. Same as \predref{;}{2}}
\predicatesummary{{}}{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_module_tables}{1}{Abolish all tables in a module}
\predicatesummary{abolish_nonincremental_tables}{0}{Abolish non-auttomatic tables}
\predicatesummary{abolish_nonincremental_tables}{1}{Abolish non-auttomatic tables}
\predicatesummary{abolish_private_tables}{0}{Abolish tables of this thread}
\predicatesummary{abolish_shared_tables}{0}{Abolish tables shared between threads}
\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{answer_count_restraint}{0}{Undefined answer due to \const{max_answers}}
\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 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}{1}{Declare a file for autoloading}
\predicatesummary{autoload}{2}{Declare a file for autoloading specific predicates}
\predicatesummary{autoload_all}{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{bounded_number}{3}{Number between bounds}
\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 phrase/3 without type checking}
\predicatesummary{call_delays}{2}{Get the condition associated with an
answer} \predicatesummary{call_residue_vars}{2}{Find residual attributed
variables} \predicatesummary{call_residual_program}{2}{Get residual
program associated with an answer}
\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 halt/0 from an 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
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 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{delays_residual_program}{2}{Get the residual program
for an answer} \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{dynamic}{2}{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{exists_source}{2}{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 findall/3} \predicatesummary{findnsols}{4}{Find first \arg{N}
solutions} \predicatesummary{findnsols}{5}{Difference list version of
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{float_class}{2}{Classify (special) floats}
\predicatesummary{float_parts}{4}{Get mantissa and exponent of a float}
\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 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}{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_dict}{1}{Type check for a dict}
\predicatesummary{is_dict}{2}{Type check for a dict in a class}
\predicatesummary{is_engine}{1}{Type check for an engine handle}
\predicatesummary{is_list}{1}{Type check for a list}
\predicatesummary{is_most_general_term}{1}{Type check for general term}
\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{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{malloc_property}{1}{Property of the allocator}
\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 member/2}
\predicatesummary{message_hook}{3}{Intercept print_message/2}
\predicatesummary{message_line_element}{2}{\hook{prolog} Intercept
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_queue_set}{2}{Set a
message queue property}
\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{\+}{1}}
\predicatesummary{not_exists}{1}{Tabled negation for non-ground or non-tabled goals}
\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_source_hook}{3}{\hook{prolog} Open a source 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 print/1}
\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 edit/1}
\predicatesummary{prolog_edit:locate}{3}{Locate targets for edit/1}
\predicatesummary{prolog_edit:edit_source}{1}{Call editor for edit/1}
\predicatesummary{prolog_edit:edit_command}{2}{Specify editor activation}
\predicatesummary{prolog_edit:load}{0}{Load 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_listen}{2}{Listen to Prolog events}
\predicatesummary{prolog_listen}{3}{Listen to Prolog events}
\predicatesummary{prolog_load_context}{2}{Context information for directives}
\predicatesummary{prolog_load_file}{2}{\hook{user} Program 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{prolog_unlisten}{2}{Stop listening to Prolog events}
\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 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{radial_restraint}{0}{Tabbling radial restraint was violated}
\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_malloc}{1}{Set memory allocator property}
\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{set_system_IO}{3}{Rebind stdin/stderr/stdout}
\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 reset/3}
\predicatesummary{show_profile}{1}{Show results of the profiler}
\predicatesummary{size_abstract_term}{3}{Abstract a term (tabling support)}
\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}{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{tabled_call}{1}{Helper for not_exists/1}
\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_alias}{1}{Set the alias name of a thread}
\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_idle}{2}{Reduce footprint while waiting}
\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 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 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{tnot}{1}{Tabled negation}
\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_gen_compiled}{2}{Get all terms from a trie}
\predicatesummary{trie_gen_compiled}{3}{Get all terms from a trie}
\predicatesummary{trie_insert}{2}{Insert term into 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{tripwire}{2}{\hook{prolog} Handle a tabling tripwire event}
\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{undefined}{0}{Well Founded Semantics: true nor false}
\predicatesummary{unify_with_occurs_check}{2}{Logically sound unification}
\predicatesummary{unifiable}{3}{Determining binding required for unification}
\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{untable}{1}{Remove tabling instrumentation}
\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}{POSIX style glob pattern matching}
\predicatesummary{wildcard_match}{3}{POSIX style glob pattern matching}
\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_color}{2}{Win32: change colors of console window}
\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{with_tty_raw}{1}{Run goal with terminal in raw mode}
\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{*}{2}{yfx}{400}{Multiplication}
\opfuncsummary{**}{2}{xfx}{200}{Power function}
\opfuncsummary{+}{1}{fx}{500}{Unary plus (No-op)}
\opfuncsummary{+}{2}{yfx}{500}{Addition}
\opfuncsummary{-}{1}{fx}{500}{Unary minus}
\opfuncsummary{-}{2}{yfx}{500}{Subtraction}
\opfuncsummary{/}{2}{yfx}{400}{Division}
\opfuncsummary{//}{2}{yfx}{400}{Integer division}
\opfuncsummary{/\}{2}{yfx}{500}{Bitwise and}
\opfuncsummary{<<}{2}{yfx}{400}{Bitwise left shift}
\opfuncsummary{>>}{2}{yfx}{400}{Bitwise right shift}
\functionsummary{.}{2}{List of one character: character code}
\opfuncsummary{\}{1}{fx}{500}{Bitwise negation}
\opfuncsummary{\/}{2}{yfx}{500}{Bitwise or}
\opfuncsummary{^}{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{denominator}{1}{Denominator of a rational number (N/D)}
\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{lcm}{2}{Least Common Multiple}
\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{nexttoward}{2}{Next float in some direction}
\functionsummary{numerator}{1}{Numerator of a rational number (N/D)}
\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{roundtoward}{2}{Float arithmetic with specified rounding}
\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}{$}{Bind top-level variable}
\opsummary{200}{xfy}{^}{Existential qualification}
\opsummary{200}{xfy}{^}{Arithmetic function}
\opsummary{300}{xfx}{mod}{Arithmetic function}
\opsummary{400}{yfx}{*}{Arithmetic function}
\opsummary{400}{yfx}{/}{Arithmetic function}
\opsummary{400}{yfx}{//}{Arithmetic function}
\opsummary{400}{yfx}{<<}{Arithmetic function}
\opsummary{400}{yfx}{>>}{Arithmetic function}
\opsummary{400}{yfx}{xor}{Arithmetic function}
\opsummary{500}{fx}{+}{Arithmetic function}
\opsummary{500}{fx}{-}{Arithmetic function}
\opsummary{500}{fx}{?}{XPCE: obtainer}
\opsummary{500}{fx}{\}{Arithmetic function}
\opsummary{500}{yfx}{+}{Arithmetic function}
\opsummary{500}{yfx}{-}{Arithmetic function}
\opsummary{500}{yfx}{/\}{Arithmetic function}
\opsummary{500}{yfx}{\/}{Arithmetic function}
\opsummary{600}{xfy}{:}{module:term separator}
\opsummary{700}{xfx}{<}{Predicate}
\opsummary{700}{xfx}{=}{Predicate}
\opsummary{700}{xfx}{=..}{Predicate}
\opsummary{700}{xfx}{=:=}{Predicate}
\opsummary{700}{xfx}{<}{Predicate}
\opsummary{700}{xfx}{==}{Predicate}
\opsummary{700}{xfx}{=@=}{Predicate}
\opsummary{700}{xfx}{=\=}{Predicate}
\opsummary{700}{xfx}{>}{Predicate}
\opsummary{700}{xfx}{>=}{Predicate}
\opsummary{700}{xfx}{@<}{Predicate}
\opsummary{700}{xfx}{@=<}{Predicate}
\opsummary{700}{xfx}{@>}{Predicate}
\opsummary{700}{xfx}{@>=}{Predicate}
\opsummary{700}{xfx}{is}{Predicate}
\opsummary{700}{xfx}{\=}{Predicate}
\opsummary{700}{xfx}{\==}{Predicate}
\opsummary{700}{xfx}{=@=}{Predicate}
\opsummary{900}{fy}{not}{Predicate}
\opsummary{900}{fy}{\+}{Predicate}
\opsummary{1000}{xfy}{,}{Predicate}
\opsummary{1050}{xfy}{->}{Predicate}
\opsummary{1050}{xfy}{*->}{Predicate}
\opsummary{1100}{xfy}{;}{Predicate}
\opsummary{1105}{xfy}{|}{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}{:-}{Introduces a directive}
\opsummary{1200}{fx}{?-}{Introduces a directive}
\opsummary{1200}{xfx}{-->}{DCGrammar: rewrite}
\opsummary{1200}{xfx}{:-}{head \Sneck{} body. separator}
\end{summarylist}