File: summary.doc

package info (click to toggle)
swi-prolog 7.2.3%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,180 kB
  • ctags: 45,684
  • sloc: ansic: 330,358; perl: 268,104; sh: 6,795; java: 4,904; makefile: 4,561; cpp: 4,153; ruby: 1,594; yacc: 843; xml: 82; sed: 12; sql: 6
file content (868 lines) | stat: -rw-r--r-- 54,147 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
\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{abort}{0}{Abort execution, return to top level}
\predicatesummary{absolute_file_name}{2}{Get absolute path name}
\predicatesummary{absolute_file_name}{3}{Get absolute path name with options}
\predicatesummary{access_file}{2}{Check access permissions of a file}
\predicatesummary{acyclic_term}{1}{Test term for cycles}
\predicatesummary{add_import_module}{3}{Add module to the auto-import list}
\predicatesummary{add_nb_set}{2}{Add term to a non-backtrackable set}
\predicatesummary{add_nb_set}{3}{Add term to a non-backtrackable set}
\predicatesummary{append}{1}{Append to a file}
\predicatesummary{apply}{2}{Call goal with additional arguments}
\predicatesummary{apropos}{1}{\pllib{online_help} Search manual}
\predicatesummary{arg}{3}{Access argument of a term}
\predicatesummary{assoc_to_list}{2}{Convert association tree to list}
\predicatesummary{assert}{1}{Add a clause to the database}
\predicatesummary{assert}{2}{Add a clause to the database, give reference}
\predicatesummary{asserta}{1}{Add a clause to the database (first)}
\predicatesummary{asserta}{2}{Add a clause to the database (first)}
\predicatesummary{assertion}{1}{Make assertions about your program}
\predicatesummary{assertz}{1}{Add a clause to the database (last)}
\predicatesummary{assertz}{2}{Add a clause to the database (last)}
\predicatesummary{attach_console}{0}{Attach I/O console to thread}
\predicatesummary{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}{0}{Autoload all predicates now}
\predicatesummary{autoload_path}{1}{Add directories for autoloading}
\predicatesummary{b_getval}{2}{Fetch backtrackable global variable}
\predicatesummary{b_set_dict}{3}{Destructive assignment on a dict}
\predicatesummary{b_setval}{2}{Assign backtrackable global variable}
\predicatesummary{bagof}{3}{Find all solutions to a goal}
\predicatesummary{between}{3}{Integer range checking/generating}
\predicatesummary{blob}{2}{Type check for a blob}
\predicatesummary{break}{0}{Start interactive top level}
\predicatesummary{break_hook}{6}{\hook{prolog} Debugger hook}
\predicatesummary{byte_count}{2}{Byte-position in a stream}
\predicatesummary{call}{1}{Call a goal}
\predicatesummary{call}{[2..]}{Call with additional arguments}
\predicatesummary{call_cleanup}{3}{Guard a goal with a cleaup-handler}
\predicatesummary{call_cleanup}{2}{Guard a goal with a cleaup-handler}
\predicatesummary{call_dcg}{3}{As phrase/3 without type checking}
\predicatesummary{call_residue_vars}{2}{Find residual attributed variables}
\predicatesummary{call_shared_object_function}{2}{UNIX:  Call C-function in shared (.so) file}
\predicatesummary{call_with_depth_limit}{3}{Prove goal with bounded depth}
\predicatesummary{call_with_inference_limit}{3}{Prove goal in limited inferences}
\predicatesummary{callable}{1}{Test for atom or compound term}
\predicatesummary{cancel_halt}{1}{Cancel 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_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{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{delete_directory}{1}{Remove a folder from the file system}
\predicatesummary{delete_file}{1}{Remove a file from the file system}
\predicatesummary{delete_import_module}{2}{Remove module from import list}
\predicatesummary{deterministic}{1}{Test deterministicy of current clause}
\predicatesummary{dif}{2}{Constrain two terms to be different}
\predicatesummary{directory_files}{2}{Get entries of a directory/folder}
\oppredsummary{discontiguous}{1}{fx}{1150}{Indicate distributed definition of a predicate}
\predicatesummary{divmod}{4}{Compute quotient and remainder of two integers}
\predicatesummary{downcase_atom}{2}{Convert atom to lower-case}
\predicatesummary{duplicate_term}{2}{Create a copy of a term}
\predicatesummary{dwim_match}{2}{Atoms match in ``Do What I Mean'' sense}
\predicatesummary{dwim_match}{3}{Atoms match in ``Do What I Mean'' sense}
\predicatesummary{dwim_predicate}{2}{Find predicate in ``Do What I Mean'' sense}
\oppredsummary{dynamic}{1}{fx}{1150}{Indicate predicate definition may change}
\predicatesummary{edit}{0}{Edit current script- or associated file}
\predicatesummary{edit}{1}{Edit a file, predicate, module (extensible)}
\predicatesummary{elif}{1}{Part of conditional compilation (directive)}
\predicatesummary{else}{0}{Part of conditional compilation (directive)}
\predicatesummary{empty_assoc}{1}{Create/test empty association tree}
\predicatesummary{empty_nb_set}{1}{Test/create an empty non-backtrackable set}
\predicatesummary{encoding}{1}{Define encoding inside a source file}
\predicatesummary{endif}{0}{End of conditional compilation (directive)}
\predicatesummary{ensure_loaded}{1}{Consult a file if that has not yet been done}
\predicatesummary{erase}{1}{Erase a database record or clause}
\predicatesummary{eval_license}{0}{Evaluate licenses of loaded modules}
\predicatesummary{exception}{3}{\hook{user} Handle runtime exceptions}
\predicatesummary{exists_directory}{1}{Check existence of directory}
\predicatesummary{exists_file}{1}{Check existence of file}
\predicatesummary{exists_source}{1}{Check existence of a Prolog source}
\predicatesummary{expand_answer}{2}{Expand answer of query}
\predicatesummary{expand_file_name}{2}{Wildcard expansion of file names}
\predicatesummary{expand_file_search_path}{2}{Wildcard expansion of file paths}
\predicatesummary{expand_goal}{2}{Compiler: expand goal in clause-body}
\predicatesummary{expand_goal}{4}{Compiler: expand goal in clause-body}
\predicatesummary{expand_query}{4}{Expanded entered query}
\predicatesummary{expand_term}{2}{Compiler: expand read term into clause(s)}
\predicatesummary{expand_term}{4}{Compiler: expand read term into clause(s)}
\predicatesummary{expects_dialect}{1}{For which Prolog dialect is this code written?}
\predicatesummary{explain}{1}{\pllib{explain} Explain argument}
\predicatesummary{explain}{2}{\pllib{explain} 2nd argument is explanation of first}
\predicatesummary{export}{1}{Export a predicate from a module}
\predicatesummary{fail}{0}{Always false}
\predicatesummary{false}{0}{Always false}
\predicatesummary{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 findsols/4}
\predicatesummary{flag}{3}{Simple global variable system}
\predicatesummary{float}{1}{Type check for a floating point number}
\predicatesummary{flush_output}{0}{Output pending characters on current stream}
\predicatesummary{flush_output}{1}{Output pending characters on specified stream}
\predicatesummary{forall}{2}{Prove goal for all solutions of another goal}
\predicatesummary{format}{1}{Formatted output}
\predicatesummary{format}{2}{Formatted output with arguments}
\predicatesummary{format}{3}{Formatted output on a stream}
\predicatesummary{format_time}{3}{C strftime() like date/time formatter}
\predicatesummary{format_time}{4}{date/time formatter with explicit locale}
\predicatesummary{format_predicate}{2}{Program 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{get0}{1}{Read next character}
\predicatesummary{get0}{2}{Read next character from a stream}
\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_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{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{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_list}{1}{Type check for a list}
\predicatesummary{is_dict}{1}{Type check for a dict}
\predicatesummary{is_dict}{2}{Type check for a dict in a class}
\predicatesummary{is_stream}{1}{Type check for a stream handle}
\predicatesummary{join_threads}{0}{Join all terminated threads interactively}
\predicatesummary{keysort}{2}{Sort, using a key}
\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}{1}{Define license for current file}
\predicatesummary{license}{2}{Define license for named module}
\predicatesummary{line_count}{2}{Line number on stream}
\predicatesummary{line_position}{2}{Character position in line on stream}
\predicatesummary{list_debug_topics}{0}{List registered topics for debugging}
\predicatesummary{list_to_assoc}{2}{Create association tree from list}
\predicatesummary{list_to_set}{2}{Remove duplicates from a list}
\predicatesummary{list_strings}{0}{Help porting to version 7}
\predicatesummary{listing}{0}{List program in current module}
\predicatesummary{listing}{1}{List predicate}
\predicatesummary{load_files}{1}{Load source files}
\predicatesummary{load_files}{2}{Load source files with options}
\predicatesummary{load_foreign_library}{1}{\pllib{shlib} Load shared library (.so file)}
\predicatesummary{load_foreign_library}{2}{\pllib{shlib} Load shared library (.so file)}
\predicatesummary{locale_create}{3}{Create a new locale object}
\predicatesummary{locale_destroy}{1}{Destroy a locale object}
\predicatesummary{locale_property}{2}{Query properties of locale objects}
\predicatesummary{locale_sort}{2}{Language dependent sort of atoms}
\predicatesummary{make}{0}{Reconsult all changed source files}
\predicatesummary{make_directory}{1}{Create a folder on the file system}
\predicatesummary{make_library_index}{1}{Create autoload file INDEX.pl}
\predicatesummary{make_library_index}{2}{Create selective autoload file INDEX.pl}
\predicatesummary{map_assoc}{2}{Map association tree}
\predicatesummary{map_assoc}{3}{Map association tree}
\predicatesummary{dict_create}{3}{Create a dict from data}
\predicatesummary{dict_pairs}{3}{Convert between dict and list of pairs}
\predicatesummary{max_assoc}{3}{Highest key in association tree}
\predicatesummary{memberchk}{2}{Deterministic 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_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{nonvar}{1}{Type check for bound term}
\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{notrace}{0}{Stop tracing}
\predicatesummary{notrace}{1}{Do not debug argument goal}
\predicatesummary{nth_clause}{3}{N-th clause of a predicate}
\predicatesummary{nth_integer_root_and_remainder}{4}{Integer root and remainder}
\predicatesummary{number}{1}{Type check for integer or float}
\predicatesummary{number_chars}{2}{Convert between number and one-char atoms}
\predicatesummary{number_codes}{2}{Convert between number and character codes}
\predicatesummary{number_string}{2}{Convert between number and string}
\predicatesummary{numbervars}{3}{Number unbound variables of a term}
\predicatesummary{numbervars}{4}{Number unbound variables of a term}
\predicatesummary{on_signal}{3}{Handle a software signal}
\predicatesummary{once}{1}{Call a goal deterministically}
\predicatesummary{op}{3}{Declare an operator}
\predicatesummary{open}{3}{Open a file (creating a stream)}
\predicatesummary{open}{4}{Open a file (creating a stream)}
\predicatesummary{open_dde_conversation}{3}{Win32: Open DDE channel}
\predicatesummary{open_null_stream}{1}{Open a stream to discard output}
\predicatesummary{open_resource}{3}{Open a program resource as a stream}
\predicatesummary{open_shared_object}{2}{UNIX: Open shared library (.so file)}
\predicatesummary{open_shared_object}{3}{UNIX: Open shared library (.so file)}
\predicatesummary{open_string}{2}{Open a string as a stream}
\predicatesummary{ord_list_to_assoc}{2}{Convert ordered list to assoc}
\predicatesummary{parse_time}{2}{Parse text to a time-stamp}
\predicatesummary{parse_time}{3}{Parse text to a time-stamp}
\predicatesummary{pce_dispatch}{1}{Run XPCE GUI in separate thread}
\predicatesummary{pce_call}{1}{Run goal in XPCE GUI thread}
\predicatesummary{peek_byte}{1}{Read byte without removing}
\predicatesummary{peek_byte}{2}{Read byte without removing}
\predicatesummary{peek_char}{1}{Read character without removing}
\predicatesummary{peek_char}{2}{Read character without removing}
\predicatesummary{peek_code}{1}{Read character-code without removing}
\predicatesummary{peek_code}{2}{Read character-code without removing}
\predicatesummary{peek_string}{3}{Read a string without removing}
\predicatesummary{phrase}{2}{Activate grammar-rule set}
\predicatesummary{phrase}{3}{Activate grammar-rule set (returning rest)}
\predicatesummary{phrase_from_quasi_quotation}{2}{Parse quasi quotation with DCG}
\predicatesummary{please}{3}{Query/change environment parameters}
\predicatesummary{plus}{3}{Logical integer addition}
\predicatesummary{portray}{1}{\hook{user} Modify behaviour of print/1}
\predicatesummary{portray_clause}{1}{Pretty print a clause}
\predicatesummary{portray_clause}{2}{Pretty print a clause to a stream}
\predicatesummary{predicate_property}{2}{Query predicate attributes}
\predicatesummary{predsort}{3}{Sort, using a predicate to determine the order}
\predicatesummary{print}{1}{Print a term}
\predicatesummary{print}{2}{Print a term on a stream}
\predicatesummary{print_message}{2}{Print message from (exception) term}
\predicatesummary{print_message_lines}{3}{Print message to stream}
\predicatesummary{profile}{1}{Obtain execution statistics}
\predicatesummary{profile}{2}{Obtain execution statistics}
\predicatesummary{profile_count}{3}{Obtain profile results on a predicate}
\predicatesummary{profiler}{2}{Obtain/change status of the profiler}
\predicatesummary{prolog}{0}{Run interactive top level}
\predicatesummary{prolog_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_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{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{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_input}{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_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}{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_input}{1}{Set current input stream from a stream}
\predicatesummary{set_locale}{1}{Set the default local}
\predicatesummary{set_module}{1}{Set properties of a module}
\predicatesummary{set_output}{1}{Set current output stream from a stream}
\predicatesummary{set_prolog_IO}{3}{Prepare streams for interactive session}
\predicatesummary{set_prolog_flag}{2}{Define a system feature}
\predicatesummary{set_prolog_stack}{2}{Modify stack characteristics}
\predicatesummary{set_random}{1}{Control random number generation}
\predicatesummary{set_stream}{2}{Set stream attribute}
\predicatesummary{set_stream_position}{2}{Seek stream to position}
\predicatesummary{setup_call_cleanup}{3}{Undo side-effects safely}
\predicatesummary{setup_call_catcher_cleanup}{4}{Undo side-effects safely}
\predicatesummary{setarg}{3}{Destructive assignment on term}
\predicatesummary{setenv}{2}{Set shell environment variable}
\predicatesummary{setlocale}{3}{Set/query C-library regional information}
\predicatesummary{setof}{3}{Find all unique solutions to a goal}
\predicatesummary{shell}{0}{Execute interactive subshell}
\predicatesummary{shell}{1}{Execute OS command}
\predicatesummary{shell}{2}{Execute OS command}
\predicatesummary{show_profile}{1}{Show results of the profiler}
\predicatesummary{size_file}{2}{Get size of a file in characters}
\predicatesummary{size_nb_set}{2}{Determine size of non-backtrackable set}
\predicatesummary{skip}{1}{Skip to character in current input}
\predicatesummary{skip}{2}{Skip to character on stream}
\predicatesummary{rl_add_history}{1}{Add line to readline(3) history}
\predicatesummary{rl_read_history}{1}{Read readline(3) history}
\predicatesummary{rl_read_init_file}{1}{Read readline(3) init file}
\predicatesummary{rl_write_history}{1}{Write readline(3) history}
\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{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_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_at_exit}{1}{Register goal to be called at exit}
\predicatesummary{thread_create}{3}{Create a new Prolog task}
\predicatesummary{thread_detach}{1}{Make thread cleanup after completion}
\predicatesummary{thread_exit}{1}{Terminate Prolog task with value}
\predicatesummary{thread_get_message}{1}{Wait for message}
\predicatesummary{thread_get_message}{2}{Wait for message in a queue}
\predicatesummary{thread_get_message}{3}{Wait for message in a queue}
\predicatesummary{thread_initialization}{1}{Run action at start of thread}
\predicatesummary{thread_join}{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{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{trim_stacks}{0}{Release unused memory resources}
\predicatesummary{true}{0}{Succeed}
\predicatesummary{tspy}{1}{Set spy point and enable debugging in all threads}
\predicatesummary{tspy}{2}{Set spy point and enable debugging in a thread}
\predicatesummary{tty_get_capability}{3}{Get terminal parameter}
\predicatesummary{tty_goto}{2}{Goto position on screen}
\predicatesummary{tty_put}{2}{Write control string to terminal}
\predicatesummary{tty_size}{2}{Get row/column size of the terminal}
\predicatesummary{ttyflush}{0}{Flush output on terminal}
\predicatesummary{unify_with_occurs_check}{2}{Logically sound unification}
\predicatesummary{unifiable}{3}{Determining binding required for unification}
\predicatesummary{unix}{1}{OS interaction}
\predicatesummary{unknown}{2}{Trap undefined predicates}
\predicatesummary{unload_file}{1}{Unload a source file}
\predicatesummary{unload_foreign_library}{1}{\pllib{shlib} Detach shared library (.so file)}
\predicatesummary{unload_foreign_library}{2}{\pllib{shlib} Detach shared library (.so file)}
\predicatesummary{unsetenv}{1}{Delete shell environment variable}
\predicatesummary{upcase_atom}{2}{Convert atom to upper-case}
\predicatesummary{use_foreign_library}{1}{Load DLL/shared object (directive)}
\predicatesummary{use_foreign_library}{2}{Load DLL/shared object (directive)}
\predicatesummary{use_module}{1}{Import a module}
\predicatesummary{use_module}{2}{Import predicates from a module}
\predicatesummary{valid_string_goal}{1}{\hook{check} Goal handles strings}
\predicatesummary{var}{1}{Type check for unbound variable}
\predicatesummary{var_number}{2}{Check that var is numbered by numbervars}
\predicatesummary{var_property}{2}{Variable properties during macro expansion}
\predicatesummary{variant_sha1}{2}{Term-hash for term-variants}
\predicatesummary{version}{0}{Print system banner message}
\predicatesummary{version}{1}{Add messages to the system banner}
\predicatesummary{visible}{1}{Ports that are visible in the tracer}
\oppredsummary{volatile}{1}{fx}{1150}{Predicates that are not saved}
\predicatesummary{wait_for_input}{3}{Wait for input with optional timeout}
\predicatesummary{when}{2}{Execute goal when condition becomes true}
\predicatesummary{wildcard_match}{2}{Csh(1) style wildcard match}
\predicatesummary{win_add_dll_directory}{1}{Add directory to DLL search path}
\predicatesummary{win_add_dll_directory}{2}{Add directory to DLL search path}
\predicatesummary{win_remove_dll_directory}{1}{Remove directory from DLL search path}
\predicatesummary{win_exec}{2}{Win32: spawn Windows task}
\predicatesummary{win_has_menu}{0}{Win32: true if console menu is available}
\predicatesummary{win_folder}{2}{Win32: get special folder by CSIDL}
\predicatesummary{win_insert_menu}{2}{swipl-win.exe: add menu}
\predicatesummary{win_insert_menu_item}{4}{swipl-win.exe: add item to menu}
\predicatesummary{win_shell}{2}{Win32: open document through Shell}
\predicatesummary{win_shell}{3}{Win32: open document through Shell}
\predicatesummary{win_registry_get_value}{3}{Win32: get registry value}
\predicatesummary{win_window_pos}{1}{Win32: change size and position of window}
\predicatesummary{window_title}{2}{Win32: change title of window}
\predicatesummary{with_mutex}{2}{Run goal while holding mutex}
\predicatesummary{with_output_to}{2}{Write to strings and more}
\predicatesummary{with_quasi_quotation_input}{3}{Parse quasi quotation from stream}
\predicatesummary{working_directory}{2}{Query/change CWD}
\predicatesummary{write}{1}{Write term}
\predicatesummary{write}{2}{Write term to stream}
\predicatesummary{writeln}{1}{Write term, followed by a newline}
\predicatesummary{writeln}{2}{Write term, followed by a newline to a stream}
\predicatesummary{write_canonical}{1}{Write a term with quotes, ignore operators}
\predicatesummary{write_canonical}{2}{Write a term with quotes, ignore operators on a stream}
\predicatesummary{write_length}{3}{Dermine \#characters to output a term}
\predicatesummary{write_term}{2}{Write term with options}
\predicatesummary{write_term}{3}{Write term with options to stream}
\predicatesummary{writef}{1}{Formatted write}
\predicatesummary{writef}{2}{Formatted write on stream}
\predicatesummary{writeq}{1}{Write term, insert quotes}
\predicatesummary{writeq}{2}{Write term, insert quotes on stream}
\end{summarylist}

\input{lib/libsummary.tex}

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

\begin{summarylist}{ll}
\opfuncsummary{*}{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{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{integer}{1}{Round to nearest integer}
\functionsummary{lgamma}{1}{Log of gamma function}
\functionsummary{log}{1}{Natural logarithm}
\functionsummary{log10}{1}{10 base logarithm}
\functionsummary{lsb}{1}{Least significant bit}
\functionsummary{max}{2}{Maximum of two numbers}
\functionsummary{min}{2}{Minimum of two numbers}
\functionsummary{msb}{1}{Most significant bit}
\opfuncsummary{mod}{2}{xfx}{300}{Remainder of division}
\functionsummary{powm}{3}{Integer exponent and modulo}
\functionsummary{random}{1}{Generate random number}
\functionsummary{random_float}{0}{Generate random number}
\functionsummary{rational}{1}{Convert to rational number}
\functionsummary{rationalize}{1}{Convert to rational number}
\functionsummary{rdiv}{2}{Ration number division}
\functionsummary{rem}{2}{Remainder of division}
\functionsummary{round}{1}{Round to nearest integer}
\functionsummary{truncate}{1}{Truncate float to integer}
\functionsummary{pi}{0}{Mathematical constant}
\functionsummary{popcount}{1}{Count 1s in a bitvector}
\functionsummary{sign}{1}{Extract sign of value}
\functionsummary{sin}{1}{Sine}
\functionsummary{sinh}{1}{Hyperbolic sine}
\functionsummary{sqrt}{1}{Square root}
\functionsummary{tan}{1}{Tangent}
\functionsummary{tanh}{1}{Hyperbolic tangent}
\opfuncsummary{xor}{2}{yfx}{400}{Bitwise exclusive or}
\end{summarylist}

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

\begin{summarylist}{lrD{f}{f}{-1}l}
\opsummary{1}{fx}{$}{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}