doc-src/IsarRef/Thy/Proof.thy
changeset 26901 d1694ef6e7a7
parent 26894 1120f6cc10b0
child 26922 c795d4b706b1
     1.1 --- a/doc-src/IsarRef/Thy/Proof.thy	Thu May 15 17:37:20 2008 +0200
     1.2 +++ b/doc-src/IsarRef/Thy/Proof.thy	Thu May 15 17:37:21 2008 +0200
     1.3 @@ -495,9 +495,9 @@
     1.4      @{method_def "this"} & : & \isarmeth \\
     1.5      @{method_def "rule"} & : & \isarmeth \\
     1.6      @{method_def "iprover"} & : & \isarmeth \\[0.5ex]
     1.7 -    @{attribute_def "intro"} & : & \isaratt \\
     1.8 -    @{attribute_def "elim"} & : & \isaratt \\
     1.9 -    @{attribute_def "dest"} & : & \isaratt \\
    1.10 +    @{attribute_def (Pure) "intro"} & : & \isaratt \\
    1.11 +    @{attribute_def (Pure) "elim"} & : & \isaratt \\
    1.12 +    @{attribute_def (Pure) "dest"} & : & \isaratt \\
    1.13      @{attribute_def "rule"} & : & \isaratt \\[0.5ex]
    1.14      @{attribute_def "OF"} & : & \isaratt \\
    1.15      @{attribute_def "of"} & : & \isaratt \\
    1.16 @@ -565,10 +565,10 @@
    1.17    
    1.18    When no arguments are given, the @{method rule} method tries to pick
    1.19    appropriate rules automatically, as declared in the current context
    1.20 -  using the @{attribute intro}, @{attribute elim}, @{attribute dest}
    1.21 -  attributes (see below).  This is the default behavior of @{command
    1.22 -  "proof"} and ``@{command ".."}'' (double-dot) steps (see
    1.23 -  \secref{sec:proof-steps}).
    1.24 +  using the @{attribute (Pure) intro}, @{attribute (Pure) elim},
    1.25 +  @{attribute (Pure) dest} attributes (see below).  This is the
    1.26 +  default behavior of @{command "proof"} and ``@{command ".."}'' 
    1.27 +  (double-dot) steps (see \secref{sec:proof-steps}).
    1.28    
    1.29    \item [@{method iprover}] performs intuitionistic proof search,
    1.30    depending on specifically declared rules from the context, or given
    1.31 @@ -576,24 +576,26 @@
    1.32    before commencing proof search; ``@{method iprover}@{text "!"}'' 
    1.33    means to include the current @{fact prems} as well.
    1.34    
    1.35 -  Rules need to be classified as @{attribute intro}, @{attribute
    1.36 -  elim}, or @{attribute dest}; here the ``@{text "!"}'' indicator
    1.37 -  refers to ``safe'' rules, which may be applied aggressively (without
    1.38 -  considering back-tracking later).  Rules declared with ``@{text
    1.39 -  "?"}'' are ignored in proof search (the single-step @{method rule}
    1.40 -  method still observes these).  An explicit weight annotation may be
    1.41 -  given as well; otherwise the number of rule premises will be taken
    1.42 -  into account here.
    1.43 +  Rules need to be classified as @{attribute (Pure) intro},
    1.44 +  @{attribute (Pure) elim}, or @{attribute (Pure) dest}; here the
    1.45 +  ``@{text "!"}'' indicator refers to ``safe'' rules, which may be
    1.46 +  applied aggressively (without considering back-tracking later).
    1.47 +  Rules declared with ``@{text "?"}'' are ignored in proof search (the
    1.48 +  single-step @{method rule} method still observes these).  An
    1.49 +  explicit weight annotation may be given as well; otherwise the
    1.50 +  number of rule premises will be taken into account here.
    1.51    
    1.52 -  \item [@{attribute intro}, @{attribute elim}, and @{attribute dest}]
    1.53 -  declare introduction, elimination, and destruct rules, to be used
    1.54 -  with the @{method rule} and @{method iprover} methods.  Note that
    1.55 -  the latter will ignore rules declared with ``@{text "?"}'', while
    1.56 -  ``@{text "!"}''  are used most aggressively.
    1.57 +  \item [@{attribute (Pure) intro}, @{attribute (Pure) elim}, and
    1.58 +  @{attribute (Pure) dest}] declare introduction, elimination, and
    1.59 +  destruct rules, to be used with the @{method rule} and @{method
    1.60 +  iprover} methods.  Note that the latter will ignore rules declared
    1.61 +  with ``@{text "?"}'', while ``@{text "!"}''  are used most
    1.62 +  aggressively.
    1.63    
    1.64    The classical reasoner (see \secref{sec:classical}) introduces its
    1.65    own variants of these attributes; use qualified names to access the
    1.66 -  present versions of Isabelle/Pure, i.e.\ @{attribute "Pure.intro"}.
    1.67 +  present versions of Isabelle/Pure, i.e.\ @{attribute (Pure)
    1.68 +  "Pure.intro"}.
    1.69    
    1.70    \item [@{attribute rule}~@{text del}] undeclares introduction,
    1.71    elimination, or destruct rules.