misc tuning;
authorwenzelm
Fri, 02 May 2008 22:49:53 +0200
changeset 26777134529bc72db
parent 26776 030db8c8b79d
child 26778 378bdbce68e6
misc tuning;
doc-src/IsarRef/Thy/pure.thy
doc-src/IsarRef/Thy/syntax.thy
     1.1 --- a/doc-src/IsarRef/Thy/pure.thy	Fri May 02 22:48:51 2008 +0200
     1.2 +++ b/doc-src/IsarRef/Thy/pure.thy	Fri May 02 22:49:53 2008 +0200
     1.3 @@ -144,8 +144,8 @@
     1.4    commands this is a plain macro with a single argument, e.g.\
     1.5    @{verbatim "\\isamarkupchapter{"}@{text "\<dots>"}@{verbatim "}"} for
     1.6    @{command "chapter"}.  The @{command "text"} markup results in a
     1.7 -  {\LaTeX} environment @{verbatim "\\begin{isamarkuptext}"}~@{text
     1.8 -  "\<dots>"}~@{verbatim "\\end{isamarkuptext}"}, while @{command "text_raw"}
     1.9 +  {\LaTeX} environment @{verbatim "\\begin{isamarkuptext}"} @{text
    1.10 +  "\<dots>"} @{verbatim "\\end{isamarkuptext}"}, while @{command "text_raw"}
    1.11    causes the text to be inserted directly into the {\LaTeX} source.
    1.12  
    1.13    \medskip Additional markup commands are available for proofs (see
    1.14 @@ -338,7 +338,7 @@
    1.15    \item [@{command "constdefs"}] provides a streamlined combination of
    1.16    constants declarations and definitions: type-inference takes care of
    1.17    the most general typing of the given specification (the optional
    1.18 -  type constraint may refer to type-inference dummies ``@{verbatim
    1.19 +  type constraint may refer to type-inference dummies ``@{text
    1.20    _}'' as usual).  The resulting type declaration needs to agree with
    1.21    that of the specification; overloading is \emph{not} supported here!
    1.22    
    1.23 @@ -652,8 +652,8 @@
    1.24    \end{matharray}
    1.25  
    1.26    The oracle interface promotes a given ML function @{ML_text
    1.27 -  "theory -> T -> term"} to @{ML_text "theory -> T -> thm"}, for some type
    1.28 -  @{ML_text T} given by the user.  This acts like an infinitary
    1.29 +  "theory -> T -> term"} to @{ML_text "theory -> T -> thm"}, for some
    1.30 +  type @{ML_text T} given by the user.  This acts like an infinitary
    1.31    specification of axioms -- there is no internal check of the
    1.32    correctness of the results!  The inference kernel records oracle
    1.33    invocations within the internal derivation object of theorems, and
    1.34 @@ -668,10 +668,11 @@
    1.35    \begin{descr}
    1.36  
    1.37    \item [@{command "oracle"}~@{text "name (type) = text"}] turns the
    1.38 -  given ML expression @{text "text"} of type @{ML_text "{theory
    1.39 -  ->"}~@{text "type"}~@{ML_text "-> term"} into an ML function
    1.40 -  @{ML_text name} of type @{ML_text "{theory ->"}~@{text
    1.41 -  "type"}~@{ML_text "-> thm"}.
    1.42 +  given ML expression @{text "text"} of type
    1.43 +  @{ML_text "theory ->"}~@{text "type"}~@{ML_text "-> term"} into an
    1.44 +  ML function of type
    1.45 +  @{ML_text "theory ->"}~@{text "type"}~@{ML_text "-> thm"}, which is
    1.46 +  bound to the global identifier @{ML_text name}.
    1.47  
    1.48    \end{descr}
    1.49  *}
    1.50 @@ -750,7 +751,7 @@
    1.51    assumptions.  The former closely correspond to Skolem constants, or
    1.52    meta-level universal quantification as provided by the Isabelle/Pure
    1.53    logical framework.  Introducing some \emph{arbitrary, but fixed}
    1.54 -  variable via ``@{command "fix"}~@{text x} results in a local value
    1.55 +  variable via ``@{command "fix"}~@{text x}'' results in a local value
    1.56    that may be used in the subsequent proof as any other variable or
    1.57    constant.  Furthermore, any result @{text "\<turnstile> \<phi>[x]"} exported from
    1.58    the context will be universally closed wrt.\ @{text x} at the
    1.59 @@ -1138,7 +1139,7 @@
    1.60    context.  Thus @{text "qed"} may fail for two reasons: either @{text
    1.61    "m\<^sub>2"} fails, or the resulting rule does not fit to any
    1.62    pending goal\footnote{This includes any additional ``strong''
    1.63 -  assumptions as introduced by @{text "assume"}.} of the enclosing
    1.64 +  assumptions as introduced by @{command "assume"}.} of the enclosing
    1.65    context.  Debugging such a situation might involve temporarily
    1.66    changing @{command "show"} into @{command "have"}, or weakening the
    1.67    local context by replacing occurrences of @{command "assume"} by
    1.68 @@ -1224,8 +1225,8 @@
    1.69  
    1.70    \begin{descr}
    1.71    
    1.72 -  \item [``@{method "-"}''] does nothing but insert the forward
    1.73 -  chaining facts as premises into the goal.  Note that command
    1.74 +  \item [``@{method "-"}'' (minus)] does nothing but insert the
    1.75 +  forward chaining facts as premises into the goal.  Note that command
    1.76    @{command_ref "proof"} without any method actually performs a single
    1.77    reduction step using the @{method_ref rule} method; thus a plain
    1.78    \emph{do-nothing} proof step would be ``@{command "proof"}~@{text
    1.79 @@ -1274,8 +1275,8 @@
    1.80    means to include the current @{fact prems} as well.
    1.81    
    1.82    Rules need to be classified as @{attribute intro}, @{attribute
    1.83 -  elim}, or @{attribute dest}; here the ``@{text "!"} indicator refers
    1.84 -  to ``safe'' rules, which may be applied aggressively (without
    1.85 +  elim}, or @{attribute dest}; here the ``@{text "!"}'' indicator
    1.86 +  refers to ``safe'' rules, which may be applied aggressively (without
    1.87    considering back-tracking later).  Rules declared with ``@{text
    1.88    "?"}'' are ignored in proof search (the single-step @{method rule}
    1.89    method still observes these).  An explicit weight annotation may be
    1.90 @@ -1299,24 +1300,24 @@
    1.91    theorem to all of the given rules @{text "a\<^sub>1, \<dots>, a\<^sub>n"}
    1.92    (in parallel).  This corresponds to the @{ML "op MRS"} operation in
    1.93    ML, but note the reversed order.  Positions may be effectively
    1.94 -  skipped by including ``@{verbatim _}'' (underscore) as argument.
    1.95 +  skipped by including ``@{text _}'' (underscore) as argument.
    1.96    
    1.97    \item [@{attribute of}~@{text "t\<^sub>1 \<dots> t\<^sub>n"}] performs
    1.98    positional instantiation of term variables.  The terms @{text
    1.99    "t\<^sub>1, \<dots>, t\<^sub>n"} are substituted for any schematic
   1.100 -  variables occurring in a theorem from left to right; ``@{verbatim
   1.101 +  variables occurring in a theorem from left to right; ``@{text
   1.102    _}'' (underscore) indicates to skip a position.  Arguments following
   1.103    a ``@{keyword "concl"}@{text ":"}'' specification refer to positions
   1.104    of the conclusion of a rule.
   1.105    
   1.106    \item [@{attribute "where"}~@{text "x\<^sub>1 = t\<^sub>1 \<AND> \<dots>
   1.107 -  \<AND> x\<^sub>n = t\<^sub>n"}] performs named instantiation of
   1.108 -  schematic type and term variables occurring in a theorem.  Schematic
   1.109 -  variables have to be specified on the left-hand side (e.g.\ @{text
   1.110 -  "?x1.3"}).  The question mark may be omitted if the variable name is
   1.111 -  a plain identifier without index.  As type instantiations are
   1.112 -  inferred from term instantiations, explicit type instantiations are
   1.113 -  seldom necessary.
   1.114 +  x\<^sub>n = t\<^sub>n"}] performs named instantiation of schematic
   1.115 +  type and term variables occurring in a theorem.  Schematic variables
   1.116 +  have to be specified on the left-hand side (e.g.\ @{text "?x1.3"}).
   1.117 +  The question mark may be omitted if the variable name is a plain
   1.118 +  identifier without index.  As type instantiations are inferred from
   1.119 +  term instantiations, explicit type instantiations are seldom
   1.120 +  necessary.
   1.121  
   1.122    \end{descr}
   1.123  *}
   1.124 @@ -1330,15 +1331,15 @@
   1.125      @{keyword_def "is"} & : & syntax \\
   1.126    \end{matharray}
   1.127  
   1.128 -  Abbreviations may be either bound by explicit @{command "let"}@{text
   1.129 -  "p \<equiv> t"} statements, or by annotating assumptions or goal statements
   1.130 -  with a list of patterns ``@{text "\<IS> p\<^sub>1 \<dots> p\<^sub>n"}''.
   1.131 -  In both cases, higher-order matching is invoked to bind
   1.132 -  extra-logical term variables, which may be either named schematic
   1.133 -  variables of the form @{text ?x}, or nameless dummies ``@{variable
   1.134 -  _}'' (underscore). Note that in the @{command "let"} form the
   1.135 -  patterns occur on the left-hand side, while the @{keyword "is"}
   1.136 -  patterns are in postfix position.
   1.137 +  Abbreviations may be either bound by explicit @{command
   1.138 +  "let"}~@{text "p \<equiv> t"} statements, or by annotating assumptions or
   1.139 +  goal statements with a list of patterns ``@{text "(\<IS> p\<^sub>1 \<dots>
   1.140 +  p\<^sub>n)"}''.  In both cases, higher-order matching is invoked to
   1.141 +  bind extra-logical term variables, which may be either named
   1.142 +  schematic variables of the form @{text ?x}, or nameless dummies
   1.143 +  ``@{variable _}'' (underscore). Note that in the @{command "let"}
   1.144 +  form the patterns occur on the left-hand side, while the @{keyword
   1.145 +  "is"} patterns are in postfix position.
   1.146  
   1.147    Polymorphism of term bindings is handled in Hindley-Milner style,
   1.148    similar to ML.  Type variables referring to local assumptions or
   1.149 @@ -1366,10 +1367,10 @@
   1.150  
   1.151    \begin{descr}
   1.152  
   1.153 -  \item [@{command "let"}~@{text "p\<^sub>1 = t\<^sub>1 \<AND>
   1.154 -  \<dots>p\<^sub>n = t\<^sub>n"}] binds any text variables in patterns
   1.155 -  @{text "p\<^sub>1, \<dots>, p\<^sub>n"} by simultaneous higher-order
   1.156 -  matching against terms @{text "t\<^sub>1, \<dots>, t\<^sub>n"}.
   1.157 +  \item [@{command "let"}~@{text "p\<^sub>1 = t\<^sub>1 \<AND> \<dots>
   1.158 +  p\<^sub>n = t\<^sub>n"}] binds any text variables in patterns @{text
   1.159 +  "p\<^sub>1, \<dots>, p\<^sub>n"} by simultaneous higher-order matching
   1.160 +  against terms @{text "t\<^sub>1, \<dots>, t\<^sub>n"}.
   1.161  
   1.162    \item [@{text "(\<IS> p\<^sub>1 \<dots> p\<^sub>n)"}] resembles @{command
   1.163    "let"}, but matches @{text "p\<^sub>1, \<dots>, p\<^sub>n"} against the
   1.164 @@ -1612,8 +1613,8 @@
   1.165  
   1.166    \item [@{command "full_prf"}] is like @{command "prf"}, but displays
   1.167    the full proof term, i.e.\ also displays information omitted in the
   1.168 -  compact proof term, which is denoted by ``@{verbatim _}''
   1.169 -  placeholders there.
   1.170 +  compact proof term, which is denoted by ``@{text _}'' placeholders
   1.171 +  there.
   1.172  
   1.173    \end{descr}
   1.174  
   1.175 @@ -1700,7 +1701,7 @@
   1.176    rules whose left-hand side matches the given term.  The criterion
   1.177    term @{text t} selects all theorems that contain the pattern @{text
   1.178    t} -- as usual, patterns may contain occurrences of the dummy
   1.179 -  ``@{verbatim _}'', schematic variables, and type constraints.
   1.180 +  ``@{text _}'', schematic variables, and type constraints.
   1.181    
   1.182    Criteria can be preceded by ``@{text "-"}'' to select theorems that
   1.183    do \emph{not} match. Note that giving the empty list of criteria
     2.1 --- a/doc-src/IsarRef/Thy/syntax.thy	Fri May 02 22:48:51 2008 +0200
     2.2 +++ b/doc-src/IsarRef/Thy/syntax.thy	Fri May 02 22:49:53 2008 +0200
     2.3 @@ -240,8 +240,8 @@
     2.4    \end{rail}
     2.5  
     2.6    Positional instantiations are indicated by giving a sequence of
     2.7 -  terms, or the placeholder ``@{verbatim _}'' (underscore), which
     2.8 -  means to skip a position.
     2.9 +  terms, or the placeholder ``@{text _}'' (underscore), which means to
    2.10 +  skip a position.
    2.11  
    2.12    \indexoutertoken{inst}\indexoutertoken{insts}
    2.13    \begin{rail}
    2.14 @@ -289,8 +289,8 @@
    2.15  
    2.16    Here the \railtok{string} specifications refer to the actual mixfix
    2.17    template (see also \cite{isabelle-ref}), which may include literal
    2.18 -  text, spacing, blocks, and arguments (denoted by ``@{verbatim _}'');
    2.19 -  the special symbol ``@{verbatim "\<index>"}'' (printed as ``@{text "\<index>"}'')
    2.20 +  text, spacing, blocks, and arguments (denoted by ``@{text _}''); the
    2.21 +  special symbol ``@{verbatim "\<index>"}'' (printed as ``@{text "\<index>"}'')
    2.22    represents an index argument that specifies an implicit structure
    2.23    reference (see also \secref{sec:locale}).  Infix and binder
    2.24    declarations provide common abbreviations for particular mixfix
    2.25 @@ -606,7 +606,7 @@
    2.26    \item [@{text "@{full_prf a\<^sub>1 \<dots> a\<^sub>n}"}] is like @{text
    2.27    "@{prf a\<^sub>1 \<dots> a\<^sub>n}"}, but displays the full proof terms,
    2.28    i.e.\ also displays information omitted in the compact proof term,
    2.29 -  which is denoted by ``@{verbatim _}'' placeholders there.
    2.30 +  which is denoted by ``@{text _}'' placeholders there.
    2.31    
    2.32    \item [@{text "@{ML s}"}, @{text "@{ML_type s}"}, and @{text
    2.33    "@{ML_struct s}"}] check text @{text s} as ML value, type, and