doc-src/IsarRef/isar-ref.tex
author wenzelm
Tue, 03 Aug 1999 18:56:51 +0200
changeset 7167 0b2e3ef1d8f4
parent 7135 8eabfd7e6b9b
child 7297 c1eeeadbe80a
permissions -rw-r--r--
tuned; much more material;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     1
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     2
%% $Id$
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     3
7134
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
     4
\documentclass[12pt,fleqn]{report}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
     5
\usepackage{graphicx,a4,../iman,../extra,../proof,../rail,../railsetup,../isar,../pdfsetup}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     6
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     7
\title{\includegraphics[scale=0.5]{isabelle_isar} \\[4ex] The Isabelle/Isar Reference Manual}
7050
c70d3402fef5 checkpoint;
wenzelm
parents: 7046
diff changeset
     8
\author{\emph{Markus Wenzel} \\ TU M\"unchen}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     9
7050
c70d3402fef5 checkpoint;
wenzelm
parents: 7046
diff changeset
    10
\makeindex
c70d3402fef5 checkpoint;
wenzelm
parents: 7046
diff changeset
    11
7167
wenzelm
parents: 7135
diff changeset
    12
\railterm{percent,ppercent,underscore,lbrace,rbrace,llbrace,rrbrace}
wenzelm
parents: 7135
diff changeset
    13
\railterm{ident,longident,symident,var,textvar,typefree,typevar,nat,string,verbatim,keyword}
7134
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    14
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    15
\railalias{name}{\railqtoken{name}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    16
\railalias{nameref}{\railqtoken{nameref}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    17
\railalias{text}{\railqtoken{text}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    18
\railalias{type}{\railqtoken{type}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    19
\railalias{term}{\railqtoken{term}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    20
\railalias{prop}{\railqtoken{prop}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    21
\railalias{atom}{\railqtoken{atom}}
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    22
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    23
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    24
\setcounter{secnumdepth}{2} \setcounter{tocdepth}{2}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    25
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    26
\pagestyle{headings}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    27
\sloppy
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    28
\binperiod     %%%treat . like a binary operator
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    29
7134
320b412e5800 more stuff;
wenzelm
parents: 7050
diff changeset
    30
\renewcommand{\phi}{\varphi}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    31
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    32
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    33
\begin{document}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    34
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    35
\underscoreoff
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    36
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    37
\maketitle 
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    38
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    39
\begin{abstract}
7167
wenzelm
parents: 7135
diff changeset
    40
  \emph{Intelligible semi-automated reasoning} (\emph{Isar}) is a generic
wenzelm
parents: 7135
diff changeset
    41
  approach to readable formal proof documents.  It sets out to bridge the
wenzelm
parents: 7135
diff changeset
    42
  semantic gap between any internal notions of proof based on primitive
wenzelm
parents: 7135
diff changeset
    43
  inferences and tactics, and an appropriate level of abstraction for
wenzelm
parents: 7135
diff changeset
    44
  user-level work.  The Isar formal proof language has been designed to
wenzelm
parents: 7135
diff changeset
    45
  satisfy quite contradictory requirements, being both ``declarative'' and
wenzelm
parents: 7135
diff changeset
    46
  immediately ``executable'', by virtue of the \emph{Isar/VM} interpreter.
wenzelm
parents: 7135
diff changeset
    47
  
wenzelm
parents: 7135
diff changeset
    48
  The current version of Isabelle offers Isar as an alternative proof language
wenzelm
parents: 7135
diff changeset
    49
  interface layer, beyond traditional tactic scripts.  The Isabelle/Isar
wenzelm
parents: 7135
diff changeset
    50
  system provides an interpreter for the Isar formal proof document language.
wenzelm
parents: 7135
diff changeset
    51
  Isabelle/Isar input may consist either of \emph{proper document
wenzelm
parents: 7135
diff changeset
    52
    constructors}, or \emph{improper auxiliary commands} (for diagnostics,
wenzelm
parents: 7135
diff changeset
    53
  exploration etc.).  Proof texts consisting of proper document constructors
wenzelm
parents: 7135
diff changeset
    54
  only admit a purely static reading, thus being intelligible later without
wenzelm
parents: 7135
diff changeset
    55
  requiring dynamic replay that is so typical for traditional proof scripts.
wenzelm
parents: 7135
diff changeset
    56
  Any of the Isabelle/Isar commands may be executed in single-steps, so
wenzelm
parents: 7135
diff changeset
    57
  basically the interpreter has a proof text debugger already built-in.
wenzelm
parents: 7135
diff changeset
    58
  
wenzelm
parents: 7135
diff changeset
    59
  Employing the \emph{ProofGeneral/isar} instantiation of the generic Emacs
wenzelm
parents: 7135
diff changeset
    60
  interface for interactive proof assistants of LFCS Edinburgh, we arrive at a
wenzelm
parents: 7135
diff changeset
    61
  reasonable environment for \emph{live document editing}.  Thus proof texts
wenzelm
parents: 7135
diff changeset
    62
  may be developed incrementally by issuing proper document constructors,
wenzelm
parents: 7135
diff changeset
    63
  including forward and backward tracing of partial documents; intermediate
wenzelm
parents: 7135
diff changeset
    64
  states may be inspected by diagnostic commands.
wenzelm
parents: 7135
diff changeset
    65
  
wenzelm
parents: 7135
diff changeset
    66
  The Isar subsystem of Isabelle is tightly integrated into the Isabelle/Pure
wenzelm
parents: 7135
diff changeset
    67
  meta-logic implementation.  Theories, theorems, proof procedures etc.\ may
wenzelm
parents: 7135
diff changeset
    68
  be used interchangeably between Isabelle-classic proof scripts and
wenzelm
parents: 7135
diff changeset
    69
  Isabelle/Isar documents.  Isar is as generic as Isabelle, able to support a
wenzelm
parents: 7135
diff changeset
    70
  wide range of object-logics.  The current end-user setup is mainly for
wenzelm
parents: 7135
diff changeset
    71
  Isabelle/HOL.
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    72
\end{abstract}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    73
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    74
\pagenumbering{roman} \tableofcontents \clearfirst
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    75
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    76
%FIXME
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    77
\nocite{Rudnicki:1992:MizarOverview}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    78
\nocite{Harrison:1996:MizarHOL}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    79
\nocite{Rudnicki:1992:MizarOverview}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    80
\nocite{Trybulec:1993:MizarFeatures}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    81
\nocite{Syme:1997:DECLARE}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    82
\nocite{Syme:1998:thesis}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    83
\nocite{Syme:1999:TPHOL}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    84
\nocite{Wenzel:1999:TPHOL}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    85
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    86
\include{intro}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    87
\include{basics}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    88
\include{syntax}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    89
\include{pure}
7135
wenzelm
parents: 7134
diff changeset
    90
\include{generic}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    91
\include{hol}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    92
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    93
\begingroup
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    94
  \bibliographystyle{plain} \small\raggedright\frenchspacing
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    95
  \bibliography{../manual}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    96
\endgroup
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    97
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    98
\input{isar-ref.ind}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    99
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
   100
\end{document}