\relax \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {0.1}Introduction}{2}} \newlabel{Intro}{{0.1}{2}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {0.2}Notational Conventions}{2}} \newlabel{Notation}{{0.2}{2}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {1}How to run Prolog}{3}} \newlabel{Run Intro}{{1}{3}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.1}Getting Started}{3}} \newlabel{Start}{{1.1}{3}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.2}Reading in Programs}{3}} \newlabel{Reading In}{{1.2}{3}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.3}Inserting Clauses at the Terminal}{4}} \newlabel{Inserting Clauses}{{1.3}{4}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.4}Directives: Queries and Commands}{4}} \newlabel{Directives}{{1.4}{4}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.5}Syntax Errors}{6}} \newlabel{Syntax Errors}{{1.5}{6}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.6}Undefined Predicates}{6}} \newlabel{Undefined Predicates}{{1.6}{6}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.7}Program Execution And Interruption}{6}} \newlabel{Execution}{{1.7}{6}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.8}Exiting From The Interpreter}{7}} \newlabel{Exiting}{{1.8}{7}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.9}Nested Executions---Break and Abort}{7}} \newlabel{Nested}{{1.9}{7}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.10}Saving and Restoring Program States}{7}} \newlabel{Saving}{{1.10}{7}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.11}Emacs Interface}{8}} \newlabel{Emacs Interface}{{1.11}{8}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {2}Debugging}{9}} \newlabel{Debug Intro}{{2}{9}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.1}The Procedure Box Control Flow Model}{9}} \newlabel{Procedure Box}{{2.1}{9}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.2}Basic Debugging Predicates}{10}} \newlabel{Basic Debug}{{2.2}{10}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.3}Tracing}{11}} \newlabel{Trace}{{2.3}{11}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.4}Spy-points}{11}} \newlabel{Spy-Point}{{2.4}{11}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.5}Format of Debugging messages}{12}} \newlabel{Debug Format}{{2.5}{12}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.6}Options available during Debugging}{12}} \newlabel{Debug Options}{{2.6}{12}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.7}Consulting during Debugging}{14}} \newlabel{Consult}{{2.7}{14}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.8}Advanced Debugging Predicates}{14}} \newlabel{Advanced Debug}{{2.8}{14}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {3}Loading Programs}{14}} \newlabel{Load Intro}{{3}{14}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.1}Predicates which Load Code}{14}} \newlabel{Load Predicates}{{3.1}{14}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.2}Declarations}{15}} \newlabel{Declarations}{{3.2}{15}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.3}Pitfalls of File-To-File Compilation}{15}} \newlabel{Pitfalls}{{3.3}{15}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.4}Indexing}{15}} \newlabel{Indexing}{{3.4}{15}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.5}Tail Recursion Optimization}{15}} \newlabel{Tail}{{3.5}{15}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {4}Built-In Predicates}{15}} \newlabel{Built Intro}{{4}{15}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.1}Input / Output}{16}} \newlabel{Input Output}{{4.1}{16}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.1}Reading-in Programs}{16}} \newlabel{Read In}{{4.1.1}{16}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.2}Input and Output of Terms}{16}} \newlabel{Term IO}{{4.1.2}{16}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.3}Character Input/Output}{18}} \newlabel{Char IO}{{4.1.3}{18}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.4}Stream IO}{18}} \newlabel{Stream Pred}{{4.1.4}{18}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.5}Socket IO}{19}} \newlabel{Socket Pred}{{4.1.5}{19}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {4.1.6}DEC-10 Prolog File IO}{19}} \newlabel{File Pred}{{4.1.6}{19}} \newlabel{IO Example}{{4.1.6}{19}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.2}Arithmetic}{19}} \newlabel{Arithmetic}{{4.2}{19}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.3}Comparison of Terms}{22}} \newlabel{Term Compare}{{4.3}{22}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.4}Control}{23}} \newlabel{Control}{{4.4}{23}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.5}Error and Exception Handling}{24}} \newlabel{Exception}{{4.5}{24}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.6}Information about the State of the Program}{25}} \newlabel{State Info}{{4.6}{25}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.7}Meta-Logic}{25}} \newlabel{Meta Logic}{{4.7}{25}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.8}Modification of the Program}{27}} \newlabel{Modify Prog}{{4.8}{27}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.9}Internal Database}{28}} \newlabel{Database}{{4.9}{28}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.10}All Solutions}{29}} \newlabel{All Solutions}{{4.10}{29}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.11}Debugging}{30}} \newlabel{Debug Pred}{{4.11}{30}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.12}Execution Profiling}{30}} \newlabel{Profiling}{{4.12}{30}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.13}Definite Clause Grammars}{30}} \newlabel{Definite}{{4.13}{30}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.14}Miscellaneous}{31}} \newlabel{Misc Pred}{{4.14}{31}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {5}The Module System}{31}} \newlabel{Module Intro}{{5}{31}} \newlabel{Basic Concepts}{{5}{31}} \newlabel{Module Spec}{{5}{31}} \newlabel{Def Modules}{{5}{31}} \newlabel{Importation}{{5}{31}} \newlabel{Meta Exp}{{5}{31}} \newlabel{Meta Decl}{{5}{31}} \newlabel{Mod Compile}{{5}{31}} \newlabel{Mod Emacs}{{5}{31}} \newlabel{Mod Builtin}{{5}{31}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {6}Coroutining Facilities}{31}} \newlabel{Blocking}{{6}{31}} \newlabel{Block Decl}{{6}{31}} \newlabel{Coroutine Preds}{{6}{31}} \newlabel{Boolean Solver}{{6}{31}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {7}Mixing C and Prolog}{31}} \newlabel{Mixing Intro}{{7}{31}} \newlabel{Calling C}{{7}{31}} \newlabel{Support}{{7}{31}} \newlabel{Life Time}{{7}{31}} \newlabel{Calling Prolog}{{7}{31}} \newlabel{Hooks}{{7}{31}} \newlabel{Runtime Systems}{{7}{31}} \newlabel{Declarative FLI}{{7}{31}} \newlabel{SICStus Streams}{{7}{31}} \newlabel{Mixing Examples}{{7}{31}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {8}The Prolog Language}{31}} \newlabel{Prolog Intro}{{8}{31}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.1}Syntax, Terminology and Informal Semantics}{32}} \newlabel{Syntax}{{8.1}{32}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {8.1.1}Terms}{32}} \newlabel{Terms}{{8.1.1}{32}} \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {8.1.2}Programs}{34}} \newlabel{Programs}{{8.1.2}{34}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.2}Declarative Semantics}{36}} \newlabel{Declarative}{{8.2}{36}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.3}Procedural Semantics}{36}} \newlabel{Procedural}{{8.3}{36}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.4}Occur Check}{37}} \newlabel{Occur}{{8.4}{37}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.5}The Cut Symbol}{38}} \newlabel{Cut}{{8.5}{38}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.6}Operators}{38}} \newlabel{Operators}{{8.6}{38}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.7}Syntax Restrictions}{40}} \newlabel{Restrictions}{{8.7}{40}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.8}Comments}{41}} \newlabel{Comments}{{8.8}{41}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {8.9}Full Prolog Syntax}{41}} \newlabel{Full Syntax}{{8.9}{41}} \newlabel{Syntax Notation}{{8.9}{41}} \newlabel{Sentence}{{8.9}{41}} \newlabel{Term Token}{{8.9}{41}} \newlabel{Token String}{{8.9}{41}} \newlabel{Syntax Notes}{{8.9}{41}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {9}Programming Examples}{41}} \newlabel{Example Intro}{{9}{41}} \newlabel{Simple List}{{9}{41}} \newlabel{Small Database}{{9}{41}} \newlabel{Association Lists}{{9}{41}} \newlabel{Derivative}{{9}{41}} \newlabel{Use Of Meta}{{9}{41}} \newlabel{Use Of Term Exp}{{9}{41}} \newlabel{Use Of Bool Constraints}{{9}{41}} \newlabel{Interpreter}{{9}{41}} \newlabel{Translate}{{9}{41}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {10}Summary of Built-In Predicates}{41}} \newlabel{Pred Summary}{{10}{41}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {11}Standard Operators}{51}} \newlabel{Standard Operators}{{11}{51}}