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 |