doc-src/IsarRef/isar-ref.tex
author wenzelm
Tue, 17 Oct 2000 22:25:23 +0200
changeset 10240 9ac0fe356ea7
parent 10208 2b284ef75049
child 10639 f902346264e9
permissions -rw-r--r--
tuned;
     1 
     2 %% $Id$
     3 
     4 \documentclass[12pt,a4paper,fleqn]{report}
     5 \usepackage{latexsym,graphicx,../iman,../extra,../ttbox,../proof,../rail,../railsetup,../isar,../pdfsetup}
     6 
     7 \title{\includegraphics[scale=0.5]{isabelle_isar} \\[4ex] The Isabelle/Isar Reference Manual}
     8 \author{\emph{Markus Wenzel} \\ TU M\"unchen}
     9 
    10 \makeindex
    11 
    12 \newcommand{\isastyle}{\small\tt\slshape}
    13 \newcommand{\isa}[1]{\emph{\isastyle #1}}
    14 \newcommand{\isamath}[1]{\emph{$#1$}}
    15 \newcommand{\isasymColon}{\isamath{\mathrel{::}}}
    16 \newcommand{\isasymRightarrow}{\isamath{\Rightarrow}}
    17 
    18 \railterm{percent,ppercent,underscore,lbrace,rbrace,atsign}
    19 \railterm{ident,longident,symident,var,textvar,typefree,typevar,nat,string,verbatim,keyword}
    20 \railterm{name,nameref,text,type,term,prop,atom}
    21 
    22 \railalias{ident}{\railtoken{ident}}
    23 \railalias{longident}{\railtoken{longident}}
    24 \railalias{symident}{\railtoken{symident}}
    25 \railalias{var}{\railtoken{var}}
    26 \railalias{textvar}{\railtoken{textvar}}
    27 \railalias{typefree}{\railtoken{typefree}}
    28 \railalias{typevar}{\railtoken{typevar}}
    29 \railalias{nat}{\railtoken{nat}}
    30 \railalias{string}{\railtoken{string}}
    31 \railalias{verbatim}{\railtoken{verbatim}}
    32 \railalias{keyword}{\railtoken{keyword}}
    33 
    34 \railalias{name}{\railqtoken{name}}
    35 \railalias{nameref}{\railqtoken{nameref}}
    36 \railalias{text}{\railqtoken{text}}
    37 \railalias{type}{\railqtoken{type}}
    38 \railalias{term}{\railqtoken{term}}
    39 \railalias{prop}{\railqtoken{prop}}
    40 \railalias{atom}{\railqtoken{atom}}
    41 
    42 \newcommand{\drv}{\mathrel{\vdash}}
    43 \newcommand{\edrv}{\mathop{\drv}\nolimits}
    44 \newcommand{\Or}{\mathrel{\;|\;}}
    45 
    46 
    47 \setcounter{secnumdepth}{2} \setcounter{tocdepth}{2}
    48 
    49 \pagestyle{headings}
    50 \sloppy
    51 \binperiod     %%%treat . like a binary operator
    52 
    53 \renewcommand{\phi}{\varphi}
    54 
    55 %\includeonly{}
    56 
    57 
    58 \begin{document}
    59 
    60 \underscoreoff
    61 
    62 \maketitle 
    63 
    64 \begin{abstract}
    65   \emph{Intelligible semi-automated reasoning} (\emph{Isar}) is a generic
    66   approach to readable formal proof documents.  It sets out to bridge the
    67   semantic gap between any internal notions of proof based on primitive
    68   inferences and tactics, and an appropriate level of abstraction for
    69   user-level work.  The Isar formal proof language has been designed to
    70   satisfy quite contradictory requirements, being both ``declarative'' and
    71   immediately ``executable'', by virtue of the \emph{Isar/VM} interpreter.
    72   
    73   The Isabelle/Isar system provides an interpreter for the Isar formal proof
    74   language.  The input may consist either of proper document constructors, or
    75   improper auxiliary commands (for diagnostics, exploration etc.).  Proof
    76   texts consisting of proper elements only admit a purely static reading, thus
    77   being intelligible later without requiring dynamic replay that is so typical
    78   for traditional proof scripts.  Any of the Isabelle/Isar commands may be
    79   executed in single-steps, so basically the interpreter has a proof text
    80   debugger already built-in.
    81   
    82   Employing the Isar instantiation of \emph{Proof~General}, a generic Emacs
    83   interface for interactive proof assistants, we arrive at a reasonable
    84   environment for \emph{live document editing}.  Thus proof texts may be
    85   developed incrementally by issuing proof commands, including forward and
    86   backward tracing of partial documents; intermediate states may be inspected
    87   by diagnostic commands.
    88   
    89   The Isar subsystem is tightly integrated into the Isabelle/Pure meta-logic
    90   implementation.  Theories, theorems, proof procedures etc.\ may be used
    91   interchangeably between classic Isabelle proof scripts and Isabelle/Isar
    92   documents.  Even more, Isar provides a set of emulation commands and methods
    93   for simulating traditional tactic scripts within new-style theory documents.
    94   
    95   The Isar framework is as generic as Isabelle, able to support a wide range
    96   of object-logics.  Currently, the end-user working environment is most
    97   complete for Isabelle/HOL.
    98 \end{abstract}
    99 
   100 \pagenumbering{roman} \tableofcontents \clearfirst
   101 
   102 %FIXME
   103 \nocite{Aspinall:2000:eProof}
   104 \nocite{Bauer-Wenzel:2000:HB}
   105 \nocite{Harrison:1996:MizarHOL}
   106 \nocite{Muzalewski:Mizar}
   107 \nocite{Rudnicki:1992:MizarOverview}
   108 \nocite{Rudnicki:1992:MizarOverview}
   109 \nocite{Syme:1997:DECLARE}
   110 \nocite{Syme:1998:thesis}
   111 \nocite{Syme:1999:TPHOL}
   112 \nocite{Trybulec:1993:MizarFeatures}
   113 \nocite{Wiedijk:1999:Mizar}
   114 \nocite{Wiedijk:2000:MV}
   115 \nocite{Zammit:1999:TPHOL}
   116 
   117 \include{intro}
   118 \include{basics}
   119 \include{syntax}
   120 \include{pure}
   121 \include{generic}
   122 \include{hol}
   123 
   124 \appendix
   125 \include{refcard}
   126 \include{conversion}
   127 
   128 \begingroup
   129   \bibliographystyle{plain} \small\raggedright\frenchspacing
   130   \bibliography{../manual}
   131 \endgroup
   132 
   133 \printindex
   134 
   135 \end{document}