doc-src/Ref/classical.tex
changeset 5577 ddaa1c133c5a
parent 5576 dc6ee60d2be8
child 6170 9a59cf8ae9b5
equal deleted inserted replaced
5576:dc6ee60d2be8 5577:ddaa1c133c5a
     2 \chapter{The Classical Reasoner}\label{chap:classical}
     2 \chapter{The Classical Reasoner}\label{chap:classical}
     3 \index{classical reasoner|(}
     3 \index{classical reasoner|(}
     4 \newcommand\ainfer[2]{\begin{array}{r@{\,}l}#2\\ \hline#1\end{array}}
     4 \newcommand\ainfer[2]{\begin{array}{r@{\,}l}#2\\ \hline#1\end{array}}
     5 
     5 
     6 Although Isabelle is generic, many users will be working in some
     6 Although Isabelle is generic, many users will be working in some
     7 extension of classical first-order logic.  Isabelle's set theory~{\tt
     7 extension of classical first-order logic.  
     8   ZF} is built upon theory~\texttt{FOL}, while {\HOL}
     8 Isabelle's set theory~{\tt ZF} is built upon theory~\texttt{FOL}, 
     9 conceptually contains first-order logic as a fragment.
     9 while {\HOL} conceptually contains first-order logic as a fragment.
    10 Theorem-proving in predicate logic is undecidable, but many
    10 Theorem-proving in predicate logic is undecidable, but many
    11 researchers have developed strategies to assist in this task.
    11 researchers have developed strategies to assist in this task.
    12 
    12 
    13 Isabelle's classical reasoner is an \ML{} functor that accepts certain
    13 Isabelle's classical reasoner is an \ML{} functor that accepts certain
    14 information about a logic and delivers a suite of automatic tactics.  Each
    14 information about a logic and delivers a suite of automatic tactics.  Each
   528   B$ is left as a conjunction.  Proof by assumption, Modus Ponens, etc., may be
   528   B$ is left as a conjunction.  Proof by assumption, Modus Ponens, etc., may be
   529   performed provided they do not instantiate unknowns.  Assumptions of the
   529   performed provided they do not instantiate unknowns.  Assumptions of the
   530   form $x=t$ may be eliminated.  The user-supplied safe wrapper tactical is
   530   form $x=t$ may be eliminated.  The user-supplied safe wrapper tactical is
   531   applied.
   531   applied.
   532 \item[\ttindexbold{clarsimp_tac} $cs$ $i$] acts like \texttt{clarify_tac}, but
   532 \item[\ttindexbold{clarsimp_tac} $cs$ $i$] acts like \texttt{clarify_tac}, but
   533 also does simplification with the given simpset. Still note that if the simpset 
   533 also does simplification with the given simpset. note that if the simpset 
   534 includes a splitter for the premises, the subgoal may be split.
   534 includes a splitter for the premises, the subgoal may still be split.
   535 \end{ttdescription}
   535 \end{ttdescription}
   536 
   536 
   537 
   537 
   538 \subsection{Other classical tactics}
   538 \subsection{Other classical tactics}
   539 \begin{ttbox} 
   539 \begin{ttbox} 
   673 
   673 
   674 \subsection{Accessing the current claset}
   674 \subsection{Accessing the current claset}
   675 \label{sec:access-current-claset}
   675 \label{sec:access-current-claset}
   676 
   676 
   677 the functions to access the current claset are analogous to the functions 
   677 the functions to access the current claset are analogous to the functions 
   678 for the current simpset, so please see \label{sec:access-current-simpset}
   678 for the current simpset, so please see \ref{sec:access-current-simpset}
   679 for a description.
   679 for a description.
   680 \begin{ttbox}
   680 \begin{ttbox}
   681 claset        : unit   -> claset
   681 claset        : unit   -> claset
   682 claset_ref    : unit   -> claset ref
   682 claset_ref    : unit   -> claset ref
   683 claset_of     : theory -> claset
   683 claset_of     : theory -> claset
   684 claset_ref_of : theory -> claset ref
   684 claset_ref_of : theory -> claset ref
   685 print_claset  : theory -> unit
   685 print_claset  : theory -> unit
   686 CLASET        :(claset     ->       tactic) ->       tactic
   686 CLASET        :(claset     ->       tactic) ->       tactic
   687 CLASET'       :(claset     -> 'a -> tactic) -> 'a -> tactic
   687 CLASET'       :(claset     -> 'a -> tactic) -> 'a -> tactic
   688 
       
   689 CLASIMPSET    :(clasimpset ->       tactic) ->       tactic
   688 CLASIMPSET    :(clasimpset ->       tactic) ->       tactic
   690 CLASIMPSET'   :(clasimpset -> 'a -> tactic) -> 'a -> tactic
   689 CLASIMPSET'   :(clasimpset -> 'a -> tactic) -> 'a -> tactic
   691 \end{ttbox}
   690 \end{ttbox}
   692 
   691 
   693 
   692