doc-src/IsarRef/generic.tex
changeset 11332 11ab8c8ce694
parent 11128 48c63b87566e
child 11333 d6b69fe04c1b
equal deleted inserted replaced
11331:6f747f6b8442 11332:11ab8c8ce694
    64   \isarcmd{print_trans_rules}^* & : & \isarkeep{theory~|~proof} \\
    64   \isarcmd{print_trans_rules}^* & : & \isarkeep{theory~|~proof} \\
    65   trans & : & \isaratt \\
    65   trans & : & \isaratt \\
    66 \end{matharray}
    66 \end{matharray}
    67 
    67 
    68 Calculational proof is forward reasoning with implicit application of
    68 Calculational proof is forward reasoning with implicit application of
    69 transitivity rules (such those of $=$, $\le$, $<$).  Isabelle/Isar maintains
    69 transitivity rules (such those of $=$, $\leq$, $<$).  Isabelle/Isar maintains
    70 an auxiliary register $calculation$\indexisarthm{calculation} for accumulating
    70 an auxiliary register $calculation$\indexisarthm{calculation} for accumulating
    71 results obtained by transitivity composed with the current result.  Command
    71 results obtained by transitivity composed with the current result.  Command
    72 $\ALSO$ updates $calculation$ involving $this$, while $\FINALLY$ exhibits the
    72 $\ALSO$ updates $calculation$ involving $this$, while $\FINALLY$ exhibits the
    73 final $calculation$ by forward chaining towards the next goal statement.  Both
    73 final $calculation$ by forward chaining towards the next goal statement.  Both
    74 commands require valid current facts, i.e.\ may occur only after commands that
    74 commands require valid current facts, i.e.\ may occur only after commands that
   828 \begin{descr}
   828 \begin{descr}
   829 \item [$print_claset$] prints the collection of rules declared to the
   829 \item [$print_claset$] prints the collection of rules declared to the
   830   Classical Reasoner, which is also known as ``simpset'' internally
   830   Classical Reasoner, which is also known as ``simpset'' internally
   831   \cite{isabelle-ref}.  This is a diagnostic command; $undo$ does not apply.
   831   \cite{isabelle-ref}.  This is a diagnostic command; $undo$ does not apply.
   832 \item [$intro$, $elim$, and $dest$] declare introduction, elimination, and
   832 \item [$intro$, $elim$, and $dest$] declare introduction, elimination, and
   833   destruct rules, respectively.  By default, rules are considered as
   833   destruction rules, respectively.  By default, rules are considered as
   834   \emph{unsafe} (i.e.\ not applied blindly without backtracking), while a
   834   \emph{unsafe} (i.e.\ not applied blindly without backtracking), while a
   835   single ``!'' classifies as \emph{safe}, and ``?'' as \emph{extra} (i.e.\ not
   835   single ``!'' classifies as \emph{safe}, and ``?'' as \emph{extra} (i.e.\ not
   836   applied in the search-oriented automated methods, but only in single-step
   836   applied in the search-oriented automated methods, but only in single-step
   837   methods such as $rule$).
   837   methods such as $rule$).
   838 \item [$rule~del$] deletes introduction, elimination, or destruct rules from
   838 \item [$rule~del$] deletes introduction, elimination, or destruction rules from
   839   the context.
   839   the context.
   840 \item [$iff$] declares equivalence rules to the context.  The default behavior
   840 \item [$iff$] declares a ``safe'' rule to the context in several ways. 
   841   is to declare a rewrite rule to the Simplifier, and the two corresponding
   841   The rule is declared as a rewrite rule to the Simplifier. Furthermore, it is 
   842   implications to the Classical Reasoner (as ``safe'' rules that are used
   842   declared in several ways (depending on its structure) to the Classical 
   843   aggressively, which would normally be indicated by ``!'').
   843   Reasoner for aggressive use, which would normally be indicated by ``!'').
       
   844   If the rule is an equivalence, the two corresponding implications are 
       
   845   declared as introduction and destruction rules. If it is an inequality, the
       
   846   corresponding elimination rule is declared. Otherwise, a warning is issued
       
   847   and the rule is delcared as an intruction.
   844   
   848   
   845   The ``?'' version of $iff$ declares ``extra'' Classical Reasoner rules only,
   849   The ``?'' version of $iff$ declares ``extra'' Classical Reasoner rules only,
   846   and omits the Simplifier declaration.  Thus the declaration does not have
   850   and omits the Simplifier declaration.  Thus the declaration does not have
   847   any effect on automated proof tools, but only on simple methods such as
   851   any effect on automated proof tools, but only on simple methods such as
   848   $rule$ (see \S\ref{sec:misc-methods}).
   852   $rule$ (see \S\ref{sec:misc-methods}).