equal
deleted
inserted
replaced
1862 substructure of the main theory structure. |
1862 substructure of the main theory structure. |
1863 |
1863 |
1864 This package is derived from the ZF one, described in a |
1864 This package is derived from the ZF one, described in a |
1865 separate paper,\footnote{It appeared in CADE~\cite{paulson-CADE} and a |
1865 separate paper,\footnote{It appeared in CADE~\cite{paulson-CADE} and a |
1866 longer version is distributed with Isabelle.} which you should refer to |
1866 longer version is distributed with Isabelle.} which you should refer to |
1867 in case of difficulties. The package is simpler than ZF's, thanks to HOL's |
1867 in case of difficulties. The package is simpler than ZF's thanks to HOL's |
1868 automatic type-checking. The type of the (co)inductive determines the |
1868 automatic type-checking. The type of the (co)inductive determines the |
1869 domain of the fixedpoint definition, and the package does not use inference |
1869 domain of the fixedpoint definition, and the package does not use inference |
1870 rules for type-checking. |
1870 rules for type-checking. |
1871 |
1871 |
1872 |
1872 |
1891 |
1891 |
1892 \item[\tt mk_cases] is a function to create simplified instances of {\tt |
1892 \item[\tt mk_cases] is a function to create simplified instances of {\tt |
1893 elim}, using freeness reasoning on some underlying datatype. |
1893 elim}, using freeness reasoning on some underlying datatype. |
1894 \end{description} |
1894 \end{description} |
1895 |
1895 |
1896 For an inductive definition, the result structure contains two induction rules, |
1896 For an inductive definition, the result structure contains two induction |
1897 {\tt induct} and \verb|mutual_induct|. For a coinductive definition, it |
1897 rules, {\tt induct} and \verb|mutual_induct|. (To save storage, the latter |
1898 contains the rule \verb|coinduct|. |
1898 rule is just {\tt True} unless more than one set is being defined.) For a |
|
1899 coinductive definition, it contains the rule \verb|coinduct|. |
1899 |
1900 |
1900 Figure~\ref{def-result-fig} summarizes the two result signatures, |
1901 Figure~\ref{def-result-fig} summarizes the two result signatures, |
1901 specifying the types of all these components. |
1902 specifying the types of all these components. |
1902 |
1903 |
1903 \begin{figure} |
1904 \begin{figure} |
2001 pred "pred a r: Pow(acc r) ==> a: acc r" |
2002 pred "pred a r: Pow(acc r) ==> a: acc r" |
2002 monos "[Pow_mono]" |
2003 monos "[Pow_mono]" |
2003 end |
2004 end |
2004 \end{ttbox} |
2005 \end{ttbox} |
2005 The HOL distribution contains many other inductive definitions, such as the |
2006 The HOL distribution contains many other inductive definitions, such as the |
2006 theory {\tt HOL/ex/PropLog.thy} and the directory {\tt HOL/IMP}. The |
2007 theory {\tt HOL/ex/PropLog.thy} and the subdirectories {\tt IMP}, {\tt Lambda} |
2007 theory {\tt HOL/ex/LList.thy} contains coinductive definitions. |
2008 and {\tt Auth}. The theory {\tt HOL/ex/LList.thy} contains coinductive |
|
2009 definitions. |
2008 |
2010 |
2009 \index{*coinductive|)} \index{*inductive|)} |
2011 \index{*coinductive|)} \index{*inductive|)} |
2010 |
2012 |
2011 |
2013 |
2012 \section{The examples directories} |
2014 \section{The examples directories} |
2021 Directory {\tt HOL/IMP} contains a formalization of various denotational, |
2023 Directory {\tt HOL/IMP} contains a formalization of various denotational, |
2022 operational and axiomatic semantics of a simple while-language, the necessary |
2024 operational and axiomatic semantics of a simple while-language, the necessary |
2023 equivalence proofs, soundness and completeness of the Hoare rules w.r.t.\ the |
2025 equivalence proofs, soundness and completeness of the Hoare rules w.r.t.\ the |
2024 denotational semantics, and soundness and completeness of a verification |
2026 denotational semantics, and soundness and completeness of a verification |
2025 condition generator. Much of development is taken from |
2027 condition generator. Much of development is taken from |
2026 Winskel~\cite{winskel93}. For details see~\cite{Nipkow-FSTTCS-96}. |
2028 Winskel~\cite{winskel93}. For details see~\cite{nipkow-IMP}. |
2027 |
2029 |
2028 Directory {\tt HOL/Hoare} contains a user friendly surface syntax for Hoare |
2030 Directory {\tt HOL/Hoare} contains a user friendly surface syntax for Hoare |
2029 logic, including a tactic for generating verification-conditions. |
2031 logic, including a tactic for generating verification-conditions. |
2030 |
2032 |
2031 Directory {\tt HOL/MiniML} contains a formalization of the type system of the |
2033 Directory {\tt HOL/MiniML} contains a formalization of the type system of the |