821 \subsection{Block structure} |
821 \subsection{Block structure} |
822 |
822 |
823 \indexisarcmd{next}\indexisarcmd{\{\{}\indexisarcmd{\}\}} |
823 \indexisarcmd{next}\indexisarcmd{\{\{}\indexisarcmd{\}\}} |
824 \begin{matharray}{rcl} |
824 \begin{matharray}{rcl} |
825 \isarcmd{next} & : & \isartrans{proof(state)}{proof(state)} \\ |
825 \isarcmd{next} & : & \isartrans{proof(state)}{proof(state)} \\ |
826 \isarcmd{\{\{} & : & \isartrans{proof(state)}{proof(state)} \\ |
826 \BG & : & \isartrans{proof(state)}{proof(state)} \\ |
827 \isarcmd{\}\}} & : & \isartrans{proof(state)}{proof(state)} \\ |
827 \EN & : & \isartrans{proof(state)}{proof(state)} \\ |
828 \end{matharray} |
828 \end{matharray} |
829 |
829 |
830 While Isar is inherently block-structured, opening and closing blocks is |
830 While Isar is inherently block-structured, opening and closing blocks is |
831 mostly handled rather casually, with little explicit user-intervention. Any |
831 mostly handled rather casually, with little explicit user-intervention. Any |
832 local goal statement automatically opens \emph{two} blocks, which are closed |
832 local goal statement automatically opens \emph{two} blocks, which are closed |
855 |
855 |
856 \section{Other commands} |
856 \section{Other commands} |
857 |
857 |
858 \subsection{Diagnostics} |
858 \subsection{Diagnostics} |
859 |
859 |
860 \indexisarcmd{typ}\indexisarcmd{term}\indexisarcmd{prop}\indexisarcmd{thm} |
860 \indexisarcmd{thm}\indexisarcmd{term}\indexisarcmd{prop}\indexisarcmd{typ} |
861 \begin{matharray}{rcl} |
861 \begin{matharray}{rcl} |
862 \isarcmd{typ} & : & \isarkeep{theory~|~proof} \\ |
862 \isarcmd{thm} & : & \isarkeep{theory~|~proof} \\ |
863 \isarcmd{term} & : & \isarkeep{theory~|~proof} \\ |
863 \isarcmd{term} & : & \isarkeep{theory~|~proof} \\ |
864 \isarcmd{prop} & : & \isarkeep{theory~|~proof} \\ |
864 \isarcmd{prop} & : & \isarkeep{theory~|~proof} \\ |
865 \isarcmd{thm} & : & \isarkeep{theory~|~proof} \\ |
865 \isarcmd{typ} & : & \isarkeep{theory~|~proof} \\ |
866 \end{matharray} |
866 \end{matharray} |
867 |
867 |
868 These commands are not part of the actual Isabelle/Isar syntax, but assist |
868 These commands are not part of the actual Isabelle/Isar syntax, but assist |
869 interactive development. Also note that $undo$ does not apply here, since the |
869 interactive development. Also note that $undo$ does not apply here, since the |
870 theory or proof configuration is not changed. |
870 theory or proof configuration is not changed. |
871 |
871 |
872 \begin{rail} |
872 \begin{rail} |
|
873 'thm' thmrefs |
|
874 ; |
|
875 'term' term |
|
876 ; |
|
877 'prop' prop |
|
878 ; |
873 'typ' type |
879 'typ' type |
874 ; |
880 ; |
875 'term' term |
881 \end{rail} |
876 ; |
882 |
877 'prop' prop |
883 \begin{descr} |
878 ; |
884 \item [$\isarkeyword{thm}~thms$] retrieves lists of theorems from the current |
879 'thm' thmrefs |
885 theory or proof context. Note that any attributes included in the theorem |
880 ; |
886 specifications are applied to a temporary context derived from the current |
881 \end{rail} |
887 theory or proof; the result is discarded, i.e.\ attributes involved in |
882 |
888 $thms$ do not have any permanent effect. |
883 \begin{descr} |
|
884 \item [$\isarkeyword{typ}~\tau$] reads and prints types of the meta-logic |
|
885 according to the current theory or proof context. |
|
886 \item [$\isarkeyword{term}~t$, $\isarkeyword{prop}~\phi$] read, type-checks |
889 \item [$\isarkeyword{term}~t$, $\isarkeyword{prop}~\phi$] read, type-checks |
887 and print terms or propositions according to the current theory or proof |
890 and print terms or propositions according to the current theory or proof |
888 context; the inferred type of $t$ is output as well. Note that these |
891 context; the inferred type of $t$ is output as well. Note that these |
889 commands are also useful in inspecting the current environment of term |
892 commands are also useful in inspecting the current environment of term |
890 abbreviations. |
893 abbreviations. |
891 \item [$\isarkeyword{thm}~thms$] retrieves lists of theorems from the current |
894 \item [$\isarkeyword{typ}~\tau$] reads and prints types of the meta-logic |
892 theory or proof context. Note that any attributes included in the theorem |
895 according to the current theory or proof context. |
893 specifications are applied to a temporary context derived from the current |
|
894 theory or proof; the result is discarded, i.e.\ attributes involved in |
|
895 $thms$ do not have any permanent effect. |
|
896 \end{descr} |
896 \end{descr} |
897 |
897 |
898 |
898 |
899 \subsection{System operations} |
899 \subsection{System operations} |
900 |
900 |