ProgTutorial/Package/Ind_Extensions.thy
changeset 565 cecd7a941885
parent 562 daf404920ab9
--- a/ProgTutorial/Package/Ind_Extensions.thy	Tue May 14 16:59:53 2019 +0200
+++ b/ProgTutorial/Package/Ind_Extensions.thy	Tue May 14 17:10:47 2019 +0200
@@ -2,7 +2,7 @@
 imports Simple_Inductive_Package Ind_Intro
 begin
 
-section {* Extensions of the Package (TBD) *}
+section \<open>Extensions of the Package (TBD)\<close>
 
 (*
 text {*
@@ -29,7 +29,7 @@
 *}
 *)
 
-text {*
+text \<open>
   Things to include at the end:
 
   \begin{itemize}
@@ -39,7 +39,7 @@
   \item say something about the two interfaces for calling packages
   \end{itemize}
   
-*}
+\<close>
 
 (*
 simple_inductive
@@ -129,32 +129,32 @@
   accpartI: "(\<And>y. R y x \<Longrightarrow> accpart'' R y) \<Longrightarrow> accpart'' R x"
 *)
 
-text {*
+text \<open>
   \begin{exercise}
   In Section~\ref{sec:nutshell} we required that introduction rules must be of the
   form
 
   \begin{isabelle}
-  @{text "rule ::= \<And>xs. As \<Longrightarrow> (\<And>ys. Bs \<Longrightarrow> pred ss)\<^sup>* \<Longrightarrow> pred ts"}
+  \<open>rule ::= \<And>xs. As \<Longrightarrow> (\<And>ys. Bs \<Longrightarrow> pred ss)\<^sup>* \<Longrightarrow> pred ts\<close>
   \end{isabelle}
 
-  where the @{text "As"} and @{text "Bs"} can be any collection of formulae
-  not containing the @{text "preds"}. This requirement is important,
+  where the \<open>As\<close> and \<open>Bs\<close> can be any collection of formulae
+  not containing the \<open>preds\<close>. This requirement is important,
   because if violated, the theory behind the inductive package does not work
   and also the proofs break. Write code that tests whether the introduction
   rules given by the user fit into the scheme described above. Hint: It 
   is not important in which order the premises ar given; the
-  @{text "As"} and @{text "(\<And>ys. Bs \<Longrightarrow> pred ss)"} premises can occur
+  \<open>As\<close> and \<open>(\<And>ys. Bs \<Longrightarrow> pred ss)\<close> premises can occur
   in any order.
   \end{exercise}
-*}  
+\<close>  
 
-text_raw {*
+text_raw \<open>
   \begin{exercise}
-  If you define @{text even} and @{text odd} with the standard inductive
+  If you define \<open>even\<close> and \<open>odd\<close> with the standard inductive
   package
   \begin{isabelle}
-*}
+\<close>
 inductive 
   even_2 and odd_2
 where
@@ -162,11 +162,11 @@
 | evenS_2: "odd_2 m \<Longrightarrow> even_2 (Suc m)"
 | oddS_2:  "even_2 m \<Longrightarrow> odd_2 (Suc m)"
 
-text_raw{*
+text_raw\<open>
   \end{isabelle}
 
-  you will see that the generated induction principle for @{text "even'"} (namely
-  @{text "even_2_odd_2.inducts"} has the additional assumptions 
+  you will see that the generated induction principle for \<open>even'\<close> (namely
+  \<open>even_2_odd_2.inducts\<close> has the additional assumptions 
   @{prop "odd_2 m"} and @{prop "even_2 m"} in the recursive cases. These additional 
   assumptions can sometimes make ``life easier'' in proofs. Since 
   more assumptions can be made when proving properties, these induction principles 
@@ -186,29 +186,29 @@
   provides a richer reasoning infrastructure. The code of this package can be found in 
   @{ML_file "HOL/Tools/inductive.ML"}.
   \end{readmore}
-*}
+\<close>
 
-section {* Definitional Packages *}
+section \<open>Definitional Packages\<close>
 
-text {* Type declarations *}
+text \<open>Type declarations\<close>
 
 (*
 ML %grayML{*Typedef.add_typedef_global (@{binding test}, [], NoSyn)
   @{term "{1}::nat set"} NONE (simp_tac @{context} 1) @{theory} *}
 *)
 
-ML %grayML{*fun pat_completeness_auto ctxt =
+ML %grayML\<open>fun pat_completeness_auto ctxt =
   Pat_Completeness.pat_completeness_tac ctxt 1
-    THEN auto_tac ctxt*}
+    THEN auto_tac ctxt\<close>
 
-ML {*
+ML \<open>
   val conf = Function_Common.default_config
-*}
+\<close>
 
 datatype foo = Foo nat
 
-local_setup{*Function.add_function [(@{binding "baz"}, NONE, NoSyn)] 
+local_setup\<open>Function.add_function [(@{binding "baz"}, NONE, NoSyn)] 
     [((Binding.empty_atts,@{term "\<And>x. baz (Foo x) = x"}),[],[])]
-      conf pat_completeness_auto #> snd*}
+      conf pat_completeness_auto #> snd\<close>
 
 (*<*)end(*>*)