doc-src/IsarRef/generic.tex
changeset 7990 0a604b2fc2b1
parent 7987 d9aef93c0e32
child 8195 af2575a5c5ae
equal deleted inserted replaced
7989:50ca726466c6 7990:0a604b2fc2b1
    59 \section{Miscellaneous attributes}
    59 \section{Miscellaneous attributes}
    60 
    60 
    61 \indexisaratt{tag}\indexisaratt{untag}\indexisaratt{COMP}\indexisaratt{RS}
    61 \indexisaratt{tag}\indexisaratt{untag}\indexisaratt{COMP}\indexisaratt{RS}
    62 \indexisaratt{OF}\indexisaratt{where}\indexisaratt{of}\indexisaratt{standard}
    62 \indexisaratt{OF}\indexisaratt{where}\indexisaratt{of}\indexisaratt{standard}
    63 \indexisaratt{elimify}\indexisaratt{transfer}\indexisaratt{export}
    63 \indexisaratt{elimify}\indexisaratt{transfer}\indexisaratt{export}
       
    64 \indexisaratt{unfold}\indexisaratt{fold}
    64 \begin{matharray}{rcl}
    65 \begin{matharray}{rcl}
    65   tag & : & \isaratt \\
    66   tag & : & \isaratt \\
    66   untag & : & \isaratt \\[0.5ex]
    67   untag & : & \isaratt \\[0.5ex]
    67   OF & : & \isaratt \\
    68   OF & : & \isaratt \\
    68   RS & : & \isaratt \\
    69   RS & : & \isaratt \\
    69   COMP & : & \isaratt \\[0.5ex]
    70   COMP & : & \isaratt \\[0.5ex]
    70   of & : & \isaratt \\
    71   of & : & \isaratt \\
    71   where & : & \isaratt \\[0.5ex]
    72   where & : & \isaratt \\[0.5ex]
       
    73   unfold & : & \isaratt \\
       
    74   fold & : & \isaratt \\[0.5ex]
    72   standard & : & \isaratt \\
    75   standard & : & \isaratt \\
    73   elimify & : & \isaratt \\
    76   elimify & : & \isaratt \\
    74   export^* & : & \isaratt \\
    77   export^* & : & \isaratt \\
    75   transfer & : & \isaratt \\
    78   transfer & : & \isaratt \\[0.5ex]
    76 \end{matharray}
    79 \end{matharray}
    77 
    80 
    78 \begin{rail}
    81 \begin{rail}
    79   ('tag' | 'untag') (nameref+)
    82   ('tag' | 'untag') (nameref+)
    80   ;
    83   ;
    83   ('RS' | 'COMP') nat? thmref
    86   ('RS' | 'COMP') nat? thmref
    84   ;
    87   ;
    85   'of' (inst * ) ('concl' ':' (inst * ))?
    88   'of' (inst * ) ('concl' ':' (inst * ))?
    86   ;
    89   ;
    87   'where' (name '=' term * 'and')
    90   'where' (name '=' term * 'and')
       
    91   ;
       
    92   ('unfold' | 'fold') thmrefs
    88   ;
    93   ;
    89 
    94 
    90   inst: underscore | term
    95   inst: underscore | term
    91   ;
    96   ;
    92 \end{rail}
    97 \end{rail}
   106   \texttt{RS} and \texttt{COMP} in \cite[\S5]{isabelle-ref}).
   111   \texttt{RS} and \texttt{COMP} in \cite[\S5]{isabelle-ref}).
   107   
   112   
   108 \item [$of~\vec t$ and $where~\vec x = \vec t$] perform positional and named
   113 \item [$of~\vec t$ and $where~\vec x = \vec t$] perform positional and named
   109   instantiation, respectively.  The terms given in $of$ are substituted for
   114   instantiation, respectively.  The terms given in $of$ are substituted for
   110   any schematic variables occurring in a theorem from left to right;
   115   any schematic variables occurring in a theorem from left to right;
   111   ``\texttt{_}'' (underscore) indicates to skip a position.
   116   ``\texttt{_}'' (underscore) indicates to skip a position.  Arguments
       
   117   following a ``$concl\colon$'' specification refer to positions of the
       
   118   conclusion of a rule.
       
   119   
       
   120 \item [$unfold~thms$ and $fold~thms$] expand and fold back again the given
       
   121   meta-level definitions throughout a rule.
   112  
   122  
   113 \item [$standard$] puts a theorem into the standard form of object-rules, just
   123 \item [$standard$] puts a theorem into the standard form of object-rules, just
   114   as the ML function \texttt{standard} (see \cite[\S5]{isabelle-ref}).
   124   as the ML function \texttt{standard} (see \cite[\S5]{isabelle-ref}).
   115   
   125   
   116 \item [$elimify$] turns an destruction rule into an elimination, just as the
   126 \item [$elimify$] turns an destruction rule into an elimination, just as the
   445 
   455 
   446 \begin{descr}
   456 \begin{descr}
   447 \item [$intro$, $elim$, $dest$] add introduction, elimination, destruct rules,
   457 \item [$intro$, $elim$, $dest$] add introduction, elimination, destruct rules,
   448   respectively.  By default, rules are considered as \emph{safe}, while a
   458   respectively.  By default, rules are considered as \emph{safe}, while a
   449   single ``!'' classifies as \emph{unsafe}, and ``!!'' as \emph{extra} (i.e.\ 
   459   single ``!'' classifies as \emph{unsafe}, and ``!!'' as \emph{extra} (i.e.\ 
   450   not applied in the search-oriented automated methods, but only $rule$).
   460   not applied in the search-oriented automated methods, but only in
       
   461   single-step methods such as $rule$).
   451   
   462   
   452 \item [$iff$] declares equations both as rewrite rules for the simplifier and
   463 \item [$iff$] declares equations both as rewrite rules for the simplifier and
   453   classical reasoning rules.
   464   classical reasoning rules.
   454 
   465 
   455 \item [$delrule$] deletes introduction or elimination rules from the context.
   466 \item [$delrule$] deletes introduction or elimination rules from the context.