isabelle update_cartouches -c -t;
authorwenzelm
Wed Jan 13 23:07:06 2016 +0100 (2016-01-13)
changeset 621758ffc4d0e652d
parent 62174 fae6233c5f37
child 62176 1221f2a46945
isabelle update_cartouches -c -t;
src/HOL/HOLCF/Adm.thy
src/HOL/HOLCF/Algebraic.thy
src/HOL/HOLCF/Bifinite.thy
src/HOL/HOLCF/Cfun.thy
src/HOL/HOLCF/Compact_Basis.thy
src/HOL/HOLCF/Completion.thy
src/HOL/HOLCF/Cont.thy
src/HOL/HOLCF/ConvexPD.thy
src/HOL/HOLCF/Cpodef.thy
src/HOL/HOLCF/Cprod.thy
src/HOL/HOLCF/Deflation.thy
src/HOL/HOLCF/Discrete.thy
src/HOL/HOLCF/Domain.thy
src/HOL/HOLCF/Domain_Aux.thy
src/HOL/HOLCF/FOCUS/Buffer_adm.thy
src/HOL/HOLCF/FOCUS/FOCUS.thy
src/HOL/HOLCF/FOCUS/Fstream.thy
src/HOL/HOLCF/FOCUS/Stream_adm.thy
src/HOL/HOLCF/Fix.thy
src/HOL/HOLCF/Fixrec.thy
src/HOL/HOLCF/Fun_Cpo.thy
src/HOL/HOLCF/IMP/HoareEx.thy
src/HOL/HOLCF/Library/Bool_Discrete.thy
src/HOL/HOLCF/Library/Char_Discrete.thy
src/HOL/HOLCF/Library/Defl_Bifinite.thy
src/HOL/HOLCF/Library/HOL_Cpo.thy
src/HOL/HOLCF/Library/Int_Discrete.thy
src/HOL/HOLCF/Library/List_Cpo.thy
src/HOL/HOLCF/Library/List_Predomain.thy
src/HOL/HOLCF/Library/Nat_Discrete.thy
src/HOL/HOLCF/Library/Option_Cpo.thy
src/HOL/HOLCF/Library/Stream.thy
src/HOL/HOLCF/Library/Sum_Cpo.thy
src/HOL/HOLCF/Lift.thy
src/HOL/HOLCF/LowerPD.thy
src/HOL/HOLCF/Map_Functions.thy
src/HOL/HOLCF/One.thy
src/HOL/HOLCF/Pcpo.thy
src/HOL/HOLCF/Plain_HOLCF.thy
src/HOL/HOLCF/Porder.thy
src/HOL/HOLCF/Powerdomains.thy
src/HOL/HOLCF/Product_Cpo.thy
src/HOL/HOLCF/Representable.thy
src/HOL/HOLCF/Sfun.thy
src/HOL/HOLCF/Sprod.thy
src/HOL/HOLCF/Ssum.thy
src/HOL/HOLCF/Tr.thy
src/HOL/HOLCF/Tutorial/Domain_ex.thy
src/HOL/HOLCF/Tutorial/Fixrec_ex.thy
src/HOL/HOLCF/Tutorial/New_Domain.thy
src/HOL/HOLCF/Universal.thy
src/HOL/HOLCF/Up.thy
src/HOL/HOLCF/UpperPD.thy
src/HOL/HOLCF/ex/Concurrency_Monad.thy
src/HOL/HOLCF/ex/Dnat.thy
src/HOL/HOLCF/ex/Domain_Proofs.thy
src/HOL/HOLCF/ex/Focus_ex.thy
src/HOL/HOLCF/ex/Letrec.thy
src/HOL/HOLCF/ex/Loop.thy
src/HOL/HOLCF/ex/Pattern_Match.thy
src/HOL/HOLCF/ex/Powerdomain_ex.thy
src/HOL/Library/Poly_Deriv.thy
src/HOL/List.thy
src/HOL/Multivariate_Analysis/Cauchy_Integral_Thm.thy
src/HOL/Multivariate_Analysis/Uniform_Limit.thy
src/HOL/Multivariate_Analysis/ex/Approximations.thy
src/HOL/Topological_Spaces.thy
     1.1 --- a/src/HOL/HOLCF/Adm.thy	Wed Jan 13 23:02:28 2016 +0100
     1.2 +++ b/src/HOL/HOLCF/Adm.thy	Wed Jan 13 23:07:06 2016 +0100
     1.3 @@ -2,7 +2,7 @@
     1.4      Author:     Franz Regensburger and Brian Huffman
     1.5  *)
     1.6  
     1.7 -section {* Admissibility and compactness *}
     1.8 +section \<open>Admissibility and compactness\<close>
     1.9  
    1.10  theory Adm
    1.11  imports Cont
    1.12 @@ -10,7 +10,7 @@
    1.13  
    1.14  default_sort cpo
    1.15  
    1.16 -subsection {* Definitions *}
    1.17 +subsection \<open>Definitions\<close>
    1.18  
    1.19  definition
    1.20    adm :: "('a::cpo \<Rightarrow> bool) \<Rightarrow> bool" where
    1.21 @@ -29,14 +29,14 @@
    1.22  lemma triv_admI: "\<forall>x. P x \<Longrightarrow> adm P"
    1.23  by (rule admI, erule spec)
    1.24  
    1.25 -subsection {* Admissibility on chain-finite types *}
    1.26 +subsection \<open>Admissibility on chain-finite types\<close>
    1.27  
    1.28 -text {* For chain-finite (easy) types every formula is admissible. *}
    1.29 +text \<open>For chain-finite (easy) types every formula is admissible.\<close>
    1.30  
    1.31  lemma adm_chfin [simp]: "adm (P::'a::chfin \<Rightarrow> bool)"
    1.32  by (rule admI, frule chfin, auto simp add: maxinch_is_thelub)
    1.33  
    1.34 -subsection {* Admissibility of special formulae and propagation *}
    1.35 +subsection \<open>Admissibility of special formulae and propagation\<close>
    1.36  
    1.37  lemma adm_const [simp]: "adm (\<lambda>x. t)"
    1.38  by (rule admI, simp)
    1.39 @@ -53,7 +53,7 @@
    1.40    "(\<And>y. y \<in> A \<Longrightarrow> adm (\<lambda>x. P x y)) \<Longrightarrow> adm (\<lambda>x. \<forall>y\<in>A. P x y)"
    1.41  by (fast intro: admI elim: admD)
    1.42  
    1.43 -text {* Admissibility for disjunction is hard to prove. It requires 2 lemmas. *}
    1.44 +text \<open>Admissibility for disjunction is hard to prove. It requires 2 lemmas.\<close>
    1.45  
    1.46  lemma adm_disj_lemma1:
    1.47    assumes adm: "adm P"
    1.48 @@ -108,7 +108,7 @@
    1.49      \<Longrightarrow> adm (\<lambda>x. P x = Q x)"
    1.50  by (subst iff_conv_conj_imp, rule adm_conj)
    1.51  
    1.52 -text {* admissibility and continuity *}
    1.53 +text \<open>admissibility and continuity\<close>
    1.54  
    1.55  lemma adm_below [simp]:
    1.56    "\<lbrakk>cont (\<lambda>x. u x); cont (\<lambda>x. v x)\<rbrakk> \<Longrightarrow> adm (\<lambda>x. u x \<sqsubseteq> v x)"
    1.57 @@ -124,7 +124,7 @@
    1.58  lemma adm_not_below [simp]: "cont (\<lambda>x. t x) \<Longrightarrow> adm (\<lambda>x. t x \<notsqsubseteq> u)"
    1.59  by (rule admI, simp add: cont2contlubE ch2ch_cont lub_below_iff)
    1.60  
    1.61 -subsection {* Compactness *}
    1.62 +subsection \<open>Compactness\<close>
    1.63  
    1.64  definition
    1.65    compact :: "'a::cpo \<Rightarrow> bool" where
    1.66 @@ -161,7 +161,7 @@
    1.67  apply (erule (1) below_trans [OF is_ub_thelub])
    1.68  done
    1.69  
    1.70 -text {* admissibility and compactness *}
    1.71 +text \<open>admissibility and compactness\<close>
    1.72  
    1.73  lemma adm_compact_not_below [simp]:
    1.74    "\<lbrakk>compact k; cont (\<lambda>x. t x)\<rbrakk> \<Longrightarrow> adm (\<lambda>x. k \<notsqsubseteq> t x)"
    1.75 @@ -178,7 +178,7 @@
    1.76  lemma compact_bottom [simp, intro]: "compact \<bottom>"
    1.77  by (rule compactI, simp)
    1.78  
    1.79 -text {* Any upward-closed predicate is admissible. *}
    1.80 +text \<open>Any upward-closed predicate is admissible.\<close>
    1.81  
    1.82  lemma adm_upward:
    1.83    assumes P: "\<And>x y. \<lbrakk>P x; x \<sqsubseteq> y\<rbrakk> \<Longrightarrow> P y"
     2.1 --- a/src/HOL/HOLCF/Algebraic.thy	Wed Jan 13 23:02:28 2016 +0100
     2.2 +++ b/src/HOL/HOLCF/Algebraic.thy	Wed Jan 13 23:07:06 2016 +0100
     2.3 @@ -2,7 +2,7 @@
     2.4      Author:     Brian Huffman
     2.5  *)
     2.6  
     2.7 -section {* Algebraic deflations *}
     2.8 +section \<open>Algebraic deflations\<close>
     2.9  
    2.10  theory Algebraic
    2.11  imports Universal Map_Functions
    2.12 @@ -10,7 +10,7 @@
    2.13  
    2.14  default_sort bifinite
    2.15  
    2.16 -subsection {* Type constructor for finite deflations *}
    2.17 +subsection \<open>Type constructor for finite deflations\<close>
    2.18  
    2.19  typedef 'a fin_defl = "{d::'a \<rightarrow> 'a. finite_deflation d}"
    2.20  by (fast intro: finite_deflation_bottom)
    2.21 @@ -72,7 +72,7 @@
    2.22  using finite_deflation_Rep_fin_defl
    2.23  by (rule finite_deflation_imp_compact)
    2.24  
    2.25 -subsection {* Defining algebraic deflations by ideal completion *}
    2.26 +subsection \<open>Defining algebraic deflations by ideal completion\<close>
    2.27  
    2.28  typedef 'a defl = "{S::'a fin_defl set. below.ideal S}"
    2.29  by (rule below.ex_ideal)
    2.30 @@ -132,7 +132,7 @@
    2.31  using defl_principal_def fin_defl_countable
    2.32  by (rule below.typedef_ideal_completion)
    2.33  
    2.34 -text {* Algebraic deflations are pointed *}
    2.35 +text \<open>Algebraic deflations are pointed\<close>
    2.36  
    2.37  lemma defl_minimal: "defl_principal (Abs_fin_defl \<bottom>) \<sqsubseteq> x"
    2.38  apply (induct x rule: defl.principal_induct, simp)
    2.39 @@ -147,7 +147,7 @@
    2.40  lemma inst_defl_pcpo: "\<bottom> = defl_principal (Abs_fin_defl \<bottom>)"
    2.41  by (rule defl_minimal [THEN bottomI, symmetric])
    2.42  
    2.43 -subsection {* Applying algebraic deflations *}
    2.44 +subsection \<open>Applying algebraic deflations\<close>
    2.45  
    2.46  definition
    2.47    cast :: "'a defl \<rightarrow> 'a \<rightarrow> 'a"
    2.48 @@ -215,7 +215,7 @@
    2.49  lemma cast_strict2 [simp]: "cast\<cdot>A\<cdot>\<bottom> = \<bottom>"
    2.50  by (rule cast.below [THEN bottomI])
    2.51  
    2.52 -subsection {* Deflation combinators *}
    2.53 +subsection \<open>Deflation combinators\<close>
    2.54  
    2.55  definition
    2.56    "defl_fun1 e p f =
     3.1 --- a/src/HOL/HOLCF/Bifinite.thy	Wed Jan 13 23:02:28 2016 +0100
     3.2 +++ b/src/HOL/HOLCF/Bifinite.thy	Wed Jan 13 23:07:06 2016 +0100
     3.3 @@ -2,7 +2,7 @@
     3.4      Author:     Brian Huffman
     3.5  *)
     3.6  
     3.7 -section {* Profinite and bifinite cpos *}
     3.8 +section \<open>Profinite and bifinite cpos\<close>
     3.9  
    3.10  theory Bifinite
    3.11  imports Map_Functions "~~/src/HOL/Library/Countable"
    3.12 @@ -10,7 +10,7 @@
    3.13  
    3.14  default_sort cpo
    3.15  
    3.16 -subsection {* Chains of finite deflations *}
    3.17 +subsection \<open>Chains of finite deflations\<close>
    3.18  
    3.19  locale approx_chain =
    3.20    fixes approx :: "nat \<Rightarrow> 'a \<rightarrow> 'a"
    3.21 @@ -43,7 +43,7 @@
    3.22  
    3.23  end
    3.24  
    3.25 -subsection {* Omega-profinite and bifinite domains *}
    3.26 +subsection \<open>Omega-profinite and bifinite domains\<close>
    3.27  
    3.28  class bifinite = pcpo +
    3.29    assumes bifinite: "\<exists>(a::nat \<Rightarrow> 'a \<rightarrow> 'a). approx_chain a"
    3.30 @@ -51,7 +51,7 @@
    3.31  class profinite = cpo +
    3.32    assumes profinite: "\<exists>(a::nat \<Rightarrow> 'a\<^sub>\<bottom> \<rightarrow> 'a\<^sub>\<bottom>). approx_chain a"
    3.33  
    3.34 -subsection {* Building approx chains *}
    3.35 +subsection \<open>Building approx chains\<close>
    3.36  
    3.37  lemma approx_chain_iso:
    3.38    assumes a: "approx_chain a"
    3.39 @@ -102,7 +102,7 @@
    3.40    using assms unfolding approx_chain_def
    3.41    by (simp add: lub_APP prod_map_ID finite_deflation_prod_map)
    3.42  
    3.43 -text {* Approx chains for countable discrete types. *}
    3.44 +text \<open>Approx chains for countable discrete types.\<close>
    3.45  
    3.46  definition discr_approx :: "nat \<Rightarrow> 'a::countable discr u \<rightarrow> 'a discr u"
    3.47    where "discr_approx = (\<lambda>i. \<Lambda>(up\<cdot>x). if to_nat (undiscr x) < i then up\<cdot>x else \<bottom>)"
    3.48 @@ -152,7 +152,7 @@
    3.49  using chain_discr_approx lub_discr_approx finite_deflation_discr_approx
    3.50  by (rule approx_chain.intro)
    3.51  
    3.52 -subsection {* Class instance proofs *}
    3.53 +subsection \<open>Class instance proofs\<close>
    3.54  
    3.55  instance bifinite \<subseteq> profinite
    3.56  proof
    3.57 @@ -164,9 +164,9 @@
    3.58  instance u :: (profinite) bifinite
    3.59    by standard (rule profinite)
    3.60  
    3.61 -text {*
    3.62 +text \<open>
    3.63    Types @{typ "'a \<rightarrow> 'b"} and @{typ "'a u \<rightarrow>! 'b"} are isomorphic.
    3.64 -*}
    3.65 +\<close>
    3.66  
    3.67  definition "encode_cfun = (\<Lambda> f. sfun_abs\<cdot>(fup\<cdot>f))"
    3.68  
    3.69 @@ -194,9 +194,9 @@
    3.70      by - (rule exI)
    3.71  qed
    3.72  
    3.73 -text {*
    3.74 +text \<open>
    3.75    Types @{typ "('a * 'b) u"} and @{typ "'a u \<otimes> 'b u"} are isomorphic.
    3.76 -*}
    3.77 +\<close>
    3.78  
    3.79  definition "encode_prod_u = (\<Lambda>(up\<cdot>(x, y)). (:up\<cdot>x, up\<cdot>y:))"
    3.80  
     4.1 --- a/src/HOL/HOLCF/Cfun.thy	Wed Jan 13 23:02:28 2016 +0100
     4.2 +++ b/src/HOL/HOLCF/Cfun.thy	Wed Jan 13 23:07:06 2016 +0100
     4.3 @@ -3,7 +3,7 @@
     4.4      Author:     Brian Huffman
     4.5  *)
     4.6  
     4.7 -section {* The type of continuous functions *}
     4.8 +section \<open>The type of continuous functions\<close>
     4.9  
    4.10  theory Cfun
    4.11  imports Cpodef Fun_Cpo Product_Cpo
    4.12 @@ -11,7 +11,7 @@
    4.13  
    4.14  default_sort cpo
    4.15  
    4.16 -subsection {* Definition of continuous function type *}
    4.17 +subsection \<open>Definition of continuous function type\<close>
    4.18  
    4.19  definition "cfun = {f::'a => 'b. cont f}"
    4.20  
    4.21 @@ -28,22 +28,22 @@
    4.22    Rep_cfun  ("(_\<cdot>/_)" [999,1000] 999)
    4.23  
    4.24  
    4.25 -subsection {* Syntax for continuous lambda abstraction *}
    4.26 +subsection \<open>Syntax for continuous lambda abstraction\<close>
    4.27  
    4.28  syntax "_cabs" :: "[logic, logic] \<Rightarrow> logic"
    4.29  
    4.30 -parse_translation {*
    4.31 +parse_translation \<open>
    4.32  (* rewrite (_cabs x t) => (Abs_cfun (%x. t)) *)
    4.33    [Syntax_Trans.mk_binder_tr (@{syntax_const "_cabs"}, @{const_syntax Abs_cfun})];
    4.34 -*}
    4.35 +\<close>
    4.36  
    4.37 -print_translation {*
    4.38 +print_translation \<open>
    4.39    [(@{const_syntax Abs_cfun}, fn _ => fn [Abs abs] =>
    4.40        let val (x, t) = Syntax_Trans.atomic_abs_tr' abs
    4.41        in Syntax.const @{syntax_const "_cabs"} $ x $ t end)]
    4.42 -*}  -- {* To avoid eta-contraction of body *}
    4.43 +\<close>  \<comment> \<open>To avoid eta-contraction of body\<close>
    4.44  
    4.45 -text {* Syntax for nested abstractions *}
    4.46 +text \<open>Syntax for nested abstractions\<close>
    4.47  
    4.48  syntax (ASCII)
    4.49    "_Lambda" :: "[cargs, logic] \<Rightarrow> logic"  ("(3LAM _./ _)" [1000, 10] 10)
    4.50 @@ -51,7 +51,7 @@
    4.51  syntax
    4.52    "_Lambda" :: "[cargs, logic] \<Rightarrow> logic" ("(3\<Lambda> _./ _)" [1000, 10] 10)
    4.53  
    4.54 -parse_ast_translation {*
    4.55 +parse_ast_translation \<open>
    4.56  (* rewrite (LAM x y z. t) => (_cabs x (_cabs y (_cabs z t))) *)
    4.57  (* cf. Syntax.lambda_ast_tr from src/Pure/Syntax/syn_trans.ML *)
    4.58    let
    4.59 @@ -60,9 +60,9 @@
    4.60              (Ast.unfold_ast @{syntax_const "_cargs"} (Ast.strip_positions pats), body)
    4.61        | Lambda_ast_tr asts = raise Ast.AST ("Lambda_ast_tr", asts);
    4.62    in [(@{syntax_const "_Lambda"}, K Lambda_ast_tr)] end;
    4.63 -*}
    4.64 +\<close>
    4.65  
    4.66 -print_ast_translation {*
    4.67 +print_ast_translation \<open>
    4.68  (* rewrite (_cabs x (_cabs y (_cabs z t))) => (LAM x y z. t) *)
    4.69  (* cf. Syntax.abs_ast_tr' from src/Pure/Syntax/syn_trans.ML *)
    4.70    let
    4.71 @@ -74,13 +74,13 @@
    4.72            [Ast.Constant @{syntax_const "_Lambda"},
    4.73             Ast.fold_ast @{syntax_const "_cargs"} xs, body]);
    4.74    in [(@{syntax_const "_cabs"}, K cabs_ast_tr')] end
    4.75 -*}
    4.76 +\<close>
    4.77  
    4.78 -text {* Dummy patterns for continuous abstraction *}
    4.79 +text \<open>Dummy patterns for continuous abstraction\<close>
    4.80  translations
    4.81    "\<Lambda> _. t" => "CONST Abs_cfun (\<lambda> _. t)"
    4.82  
    4.83 -subsection {* Continuous function space is pointed *}
    4.84 +subsection \<open>Continuous function space is pointed\<close>
    4.85  
    4.86  lemma bottom_cfun: "\<bottom> \<in> cfun"
    4.87  by (simp add: cfun_def inst_fun_pcpo)
    4.88 @@ -97,7 +97,7 @@
    4.89  lemmas Abs_cfun_strict =
    4.90    typedef_Abs_strict [OF type_definition_cfun below_cfun_def bottom_cfun]
    4.91  
    4.92 -text {* function application is strict in its first argument *}
    4.93 +text \<open>function application is strict in its first argument\<close>
    4.94  
    4.95  lemma Rep_cfun_strict1 [simp]: "\<bottom>\<cdot>x = \<bottom>"
    4.96  by (simp add: Rep_cfun_strict)
    4.97 @@ -105,13 +105,13 @@
    4.98  lemma LAM_strict [simp]: "(\<Lambda> x. \<bottom>) = \<bottom>"
    4.99  by (simp add: inst_fun_pcpo [symmetric] Abs_cfun_strict)
   4.100  
   4.101 -text {* for compatibility with old HOLCF-Version *}
   4.102 +text \<open>for compatibility with old HOLCF-Version\<close>
   4.103  lemma inst_cfun_pcpo: "\<bottom> = (\<Lambda> x. \<bottom>)"
   4.104  by simp
   4.105  
   4.106 -subsection {* Basic properties of continuous functions *}
   4.107 +subsection \<open>Basic properties of continuous functions\<close>
   4.108  
   4.109 -text {* Beta-equality for continuous functions *}
   4.110 +text \<open>Beta-equality for continuous functions\<close>
   4.111  
   4.112  lemma Abs_cfun_inverse2: "cont f \<Longrightarrow> Rep_cfun (Abs_cfun f) = f"
   4.113  by (simp add: Abs_cfun_inverse cfun_def)
   4.114 @@ -119,25 +119,25 @@
   4.115  lemma beta_cfun: "cont f \<Longrightarrow> (\<Lambda> x. f x)\<cdot>u = f u"
   4.116  by (simp add: Abs_cfun_inverse2)
   4.117  
   4.118 -text {* Beta-reduction simproc *}
   4.119 +text \<open>Beta-reduction simproc\<close>
   4.120  
   4.121 -text {*
   4.122 +text \<open>
   4.123    Given the term @{term "(\<Lambda> x. f x)\<cdot>y"}, the procedure tries to
   4.124    construct the theorem @{term "(\<Lambda> x. f x)\<cdot>y == f y"}.  If this
   4.125    theorem cannot be completely solved by the cont2cont rules, then
   4.126 -  the procedure returns the ordinary conditional @{text beta_cfun}
   4.127 +  the procedure returns the ordinary conditional \<open>beta_cfun\<close>
   4.128    rule.
   4.129  
   4.130    The simproc does not solve any more goals that would be solved by
   4.131 -  using @{text beta_cfun} as a simp rule.  The advantage of the
   4.132 +  using \<open>beta_cfun\<close> as a simp rule.  The advantage of the
   4.133    simproc is that it can avoid deeply-nested calls to the simplifier
   4.134    that would otherwise be caused by large continuity side conditions.
   4.135  
   4.136 -  Update: The simproc now uses rule @{text Abs_cfun_inverse2} instead
   4.137 -  of @{text beta_cfun}, to avoid problems with eta-contraction.
   4.138 -*}
   4.139 +  Update: The simproc now uses rule \<open>Abs_cfun_inverse2\<close> instead
   4.140 +  of \<open>beta_cfun\<close>, to avoid problems with eta-contraction.
   4.141 +\<close>
   4.142  
   4.143 -simproc_setup beta_cfun_proc ("Rep_cfun (Abs_cfun f)") = {*
   4.144 +simproc_setup beta_cfun_proc ("Rep_cfun (Abs_cfun f)") = \<open>
   4.145    fn phi => fn ctxt => fn ct =>
   4.146      let
   4.147        val dest = Thm.dest_comb;
   4.148 @@ -148,14 +148,14 @@
   4.149        val rules = Named_Theorems.get ctxt @{named_theorems cont2cont};
   4.150        val tac = SOLVED' (REPEAT_ALL_NEW (match_tac ctxt (rev rules)));
   4.151      in SOME (perhaps (SINGLE (tac 1)) tr) end
   4.152 -*}
   4.153 +\<close>
   4.154  
   4.155 -text {* Eta-equality for continuous functions *}
   4.156 +text \<open>Eta-equality for continuous functions\<close>
   4.157  
   4.158  lemma eta_cfun: "(\<Lambda> x. f\<cdot>x) = f"
   4.159  by (rule Rep_cfun_inverse)
   4.160  
   4.161 -text {* Extensionality for continuous functions *}
   4.162 +text \<open>Extensionality for continuous functions\<close>
   4.163  
   4.164  lemma cfun_eq_iff: "f = g \<longleftrightarrow> (\<forall>x. f\<cdot>x = g\<cdot>x)"
   4.165  by (simp add: Rep_cfun_inject [symmetric] fun_eq_iff)
   4.166 @@ -163,7 +163,7 @@
   4.167  lemma cfun_eqI: "(\<And>x. f\<cdot>x = g\<cdot>x) \<Longrightarrow> f = g"
   4.168  by (simp add: cfun_eq_iff)
   4.169  
   4.170 -text {* Extensionality wrt. ordering for continuous functions *}
   4.171 +text \<open>Extensionality wrt. ordering for continuous functions\<close>
   4.172  
   4.173  lemma cfun_below_iff: "f \<sqsubseteq> g \<longleftrightarrow> (\<forall>x. f\<cdot>x \<sqsubseteq> g\<cdot>x)" 
   4.174  by (simp add: below_cfun_def fun_below_iff)
   4.175 @@ -171,7 +171,7 @@
   4.176  lemma cfun_belowI: "(\<And>x. f\<cdot>x \<sqsubseteq> g\<cdot>x) \<Longrightarrow> f \<sqsubseteq> g"
   4.177  by (simp add: cfun_below_iff)
   4.178  
   4.179 -text {* Congruence for continuous function application *}
   4.180 +text \<open>Congruence for continuous function application\<close>
   4.181  
   4.182  lemma cfun_cong: "\<lbrakk>f = g; x = y\<rbrakk> \<Longrightarrow> f\<cdot>x = g\<cdot>y"
   4.183  by simp
   4.184 @@ -182,7 +182,7 @@
   4.185  lemma cfun_arg_cong: "x = y \<Longrightarrow> f\<cdot>x = f\<cdot>y"
   4.186  by simp
   4.187  
   4.188 -subsection {* Continuity of application *}
   4.189 +subsection \<open>Continuity of application\<close>
   4.190  
   4.191  lemma cont_Rep_cfun1: "cont (\<lambda>f. f\<cdot>x)"
   4.192  by (rule cont_Rep_cfun [OF cont_id, THEN cont2cont_fun])
   4.193 @@ -197,7 +197,7 @@
   4.194  lemmas monofun_Rep_cfun1 = cont_Rep_cfun1 [THEN cont2mono]
   4.195  lemmas monofun_Rep_cfun2 = cont_Rep_cfun2 [THEN cont2mono]
   4.196  
   4.197 -text {* contlub, cont properties of @{term Rep_cfun} in each argument *}
   4.198 +text \<open>contlub, cont properties of @{term Rep_cfun} in each argument\<close>
   4.199  
   4.200  lemma contlub_cfun_arg: "chain Y \<Longrightarrow> f\<cdot>(\<Squnion>i. Y i) = (\<Squnion>i. f\<cdot>(Y i))"
   4.201  by (rule cont_Rep_cfun2 [THEN cont2contlubE])
   4.202 @@ -205,7 +205,7 @@
   4.203  lemma contlub_cfun_fun: "chain F \<Longrightarrow> (\<Squnion>i. F i)\<cdot>x = (\<Squnion>i. F i\<cdot>x)"
   4.204  by (rule cont_Rep_cfun1 [THEN cont2contlubE])
   4.205  
   4.206 -text {* monotonicity of application *}
   4.207 +text \<open>monotonicity of application\<close>
   4.208  
   4.209  lemma monofun_cfun_fun: "f \<sqsubseteq> g \<Longrightarrow> f\<cdot>x \<sqsubseteq> g\<cdot>x"
   4.210  by (simp add: cfun_below_iff)
   4.211 @@ -216,7 +216,7 @@
   4.212  lemma monofun_cfun: "\<lbrakk>f \<sqsubseteq> g; x \<sqsubseteq> y\<rbrakk> \<Longrightarrow> f\<cdot>x \<sqsubseteq> g\<cdot>y"
   4.213  by (rule below_trans [OF monofun_cfun_fun monofun_cfun_arg])
   4.214  
   4.215 -text {* ch2ch - rules for the type @{typ "'a -> 'b"} *}
   4.216 +text \<open>ch2ch - rules for the type @{typ "'a -> 'b"}\<close>
   4.217  
   4.218  lemma chain_monofun: "chain Y \<Longrightarrow> chain (\<lambda>i. f\<cdot>(Y i))"
   4.219  by (erule monofun_Rep_cfun2 [THEN ch2ch_monofun])
   4.220 @@ -235,7 +235,7 @@
   4.221    "\<lbrakk>\<And>x. chain (\<lambda>i. S i x); \<And>i. cont (\<lambda>x. S i x)\<rbrakk> \<Longrightarrow> chain (\<lambda>i. \<Lambda> x. S i x)"
   4.222  by (simp add: chain_def cfun_below_iff)
   4.223  
   4.224 -text {* contlub, cont properties of @{term Rep_cfun} in both arguments *}
   4.225 +text \<open>contlub, cont properties of @{term Rep_cfun} in both arguments\<close>
   4.226  
   4.227  lemma lub_APP:
   4.228    "\<lbrakk>chain F; chain Y\<rbrakk> \<Longrightarrow> (\<Squnion>i. F i\<cdot>(Y i)) = (\<Squnion>i. F i)\<cdot>(\<Squnion>i. Y i)"
   4.229 @@ -248,7 +248,7 @@
   4.230  
   4.231  lemmas lub_distribs = lub_APP lub_LAM
   4.232  
   4.233 -text {* strictness *}
   4.234 +text \<open>strictness\<close>
   4.235  
   4.236  lemma strictI: "f\<cdot>x = \<bottom> \<Longrightarrow> f\<cdot>\<bottom> = \<bottom>"
   4.237  apply (rule bottomI)
   4.238 @@ -256,14 +256,14 @@
   4.239  apply (rule minimal [THEN monofun_cfun_arg])
   4.240  done
   4.241  
   4.242 -text {* type @{typ "'a -> 'b"} is chain complete *}
   4.243 +text \<open>type @{typ "'a -> 'b"} is chain complete\<close>
   4.244  
   4.245  lemma lub_cfun: "chain F \<Longrightarrow> (\<Squnion>i. F i) = (\<Lambda> x. \<Squnion>i. F i\<cdot>x)"
   4.246  by (simp add: lub_cfun lub_fun ch2ch_lambda)
   4.247  
   4.248 -subsection {* Continuity simplification procedure *}
   4.249 +subsection \<open>Continuity simplification procedure\<close>
   4.250  
   4.251 -text {* cont2cont lemma for @{term Rep_cfun} *}
   4.252 +text \<open>cont2cont lemma for @{term Rep_cfun}\<close>
   4.253  
   4.254  lemma cont2cont_APP [simp, cont2cont]:
   4.255    assumes f: "cont (\<lambda>x. f x)"
   4.256 @@ -276,10 +276,10 @@
   4.257      using t cont_Rep_cfun2 1 by (rule cont_apply)
   4.258  qed
   4.259  
   4.260 -text {*
   4.261 +text \<open>
   4.262    Two specific lemmas for the combination of LCF and HOL terms.
   4.263    These lemmas are needed in theories that use types like @{typ "'a \<rightarrow> 'b \<Rightarrow> 'c"}.
   4.264 -*}
   4.265 +\<close>
   4.266  
   4.267  lemma cont_APP_app [simp]: "\<lbrakk>cont f; cont g\<rbrakk> \<Longrightarrow> cont (\<lambda>x. ((f x)\<cdot>(g x)) s)"
   4.268  by (rule cont2cont_APP [THEN cont2cont_fun])
   4.269 @@ -288,19 +288,19 @@
   4.270  by (rule cont_APP_app [THEN cont2cont_fun])
   4.271  
   4.272  
   4.273 -text {* cont2mono Lemma for @{term "%x. LAM y. c1(x)(y)"} *}
   4.274 +text \<open>cont2mono Lemma for @{term "%x. LAM y. c1(x)(y)"}\<close>
   4.275  
   4.276  lemma cont2mono_LAM:
   4.277    "\<lbrakk>\<And>x. cont (\<lambda>y. f x y); \<And>y. monofun (\<lambda>x. f x y)\<rbrakk>
   4.278      \<Longrightarrow> monofun (\<lambda>x. \<Lambda> y. f x y)"
   4.279    unfolding monofun_def cfun_below_iff by simp
   4.280  
   4.281 -text {* cont2cont Lemma for @{term "%x. LAM y. f x y"} *}
   4.282 +text \<open>cont2cont Lemma for @{term "%x. LAM y. f x y"}\<close>
   4.283  
   4.284 -text {*
   4.285 +text \<open>
   4.286    Not suitable as a cont2cont rule, because on nested lambdas
   4.287    it causes exponential blow-up in the number of subgoals.
   4.288 -*}
   4.289 +\<close>
   4.290  
   4.291  lemma cont2cont_LAM:
   4.292    assumes f1: "\<And>x. cont (\<lambda>y. f x y)"
   4.293 @@ -312,10 +312,10 @@
   4.294    from f2 show "cont f" by (rule cont2cont_lambda)
   4.295  qed
   4.296  
   4.297 -text {*
   4.298 +text \<open>
   4.299    This version does work as a cont2cont rule, since it
   4.300    has only a single subgoal.
   4.301 -*}
   4.302 +\<close>
   4.303  
   4.304  lemma cont2cont_LAM' [simp, cont2cont]:
   4.305    fixes f :: "'a::cpo \<Rightarrow> 'b::cpo \<Rightarrow> 'c::cpo"
   4.306 @@ -327,15 +327,15 @@
   4.307    "(\<And>y::'a::discrete_cpo. cont (\<lambda>x. f x y)) \<Longrightarrow> cont (\<lambda>x. \<Lambda> y. f x y)"
   4.308  by (simp add: cont2cont_LAM)
   4.309  
   4.310 -subsection {* Miscellaneous *}
   4.311 +subsection \<open>Miscellaneous\<close>
   4.312  
   4.313 -text {* Monotonicity of @{term Abs_cfun} *}
   4.314 +text \<open>Monotonicity of @{term Abs_cfun}\<close>
   4.315  
   4.316  lemma monofun_LAM:
   4.317    "\<lbrakk>cont f; cont g; \<And>x. f x \<sqsubseteq> g x\<rbrakk> \<Longrightarrow> (\<Lambda> x. f x) \<sqsubseteq> (\<Lambda> x. g x)"
   4.318  by (simp add: cfun_below_iff)
   4.319  
   4.320 -text {* some lemmata for functions with flat/chfin domain/range types *}
   4.321 +text \<open>some lemmata for functions with flat/chfin domain/range types\<close>
   4.322  
   4.323  lemma chfin_Rep_cfunR: "chain (Y::nat => 'a::cpo->'b::chfin)  
   4.324        ==> !s. ? n. (LUB i. Y i)$s = Y n$s"
   4.325 @@ -348,9 +348,9 @@
   4.326  lemma adm_chfindom: "adm (\<lambda>(u::'a::cpo \<rightarrow> 'b::chfin). P(u\<cdot>s))"
   4.327  by (rule adm_subst, simp, rule adm_chfin)
   4.328  
   4.329 -subsection {* Continuous injection-retraction pairs *}
   4.330 +subsection \<open>Continuous injection-retraction pairs\<close>
   4.331  
   4.332 -text {* Continuous retractions are strict. *}
   4.333 +text \<open>Continuous retractions are strict.\<close>
   4.334  
   4.335  lemma retraction_strict:
   4.336    "\<forall>x. f\<cdot>(g\<cdot>x) = x \<Longrightarrow> f\<cdot>\<bottom> = \<bottom>"
   4.337 @@ -387,7 +387,7 @@
   4.338    "\<lbrakk>\<forall>x. f\<cdot>(g\<cdot>x) = x; z \<noteq> \<bottom>\<rbrakk> \<Longrightarrow> g\<cdot>z \<noteq> \<bottom>"
   4.339  by (erule contrapos_nn, rule injection_defined_rev)
   4.340  
   4.341 -text {* a result about functions with flat codomain *}
   4.342 +text \<open>a result about functions with flat codomain\<close>
   4.343  
   4.344  lemma flat_eqI: "\<lbrakk>(x::'a::flat) \<sqsubseteq> y; x \<noteq> \<bottom>\<rbrakk> \<Longrightarrow> x = y"
   4.345  by (drule ax_flat, simp)
   4.346 @@ -405,7 +405,7 @@
   4.347  apply (erule minimal [THEN monofun_cfun_arg, THEN flat_eqI])
   4.348  done
   4.349  
   4.350 -subsection {* Identity and composition *}
   4.351 +subsection \<open>Identity and composition\<close>
   4.352  
   4.353  definition
   4.354    ID :: "'a \<rightarrow> 'a" where
   4.355 @@ -434,13 +434,13 @@
   4.356  lemma cfcomp_strict [simp]: "\<bottom> oo f = \<bottom>"
   4.357  by (simp add: cfun_eq_iff)
   4.358  
   4.359 -text {*
   4.360 -  Show that interpretation of (pcpo,@{text "_->_"}) is a category.
   4.361 +text \<open>
   4.362 +  Show that interpretation of (pcpo,\<open>_->_\<close>) is a category.
   4.363    The class of objects is interpretation of syntactical class pcpo.
   4.364    The class of arrows  between objects @{typ 'a} and @{typ 'b} is interpret. of @{typ "'a -> 'b"}.
   4.365    The identity arrow is interpretation of @{term ID}.
   4.366 -  The composition of f and g is interpretation of @{text "oo"}.
   4.367 -*}
   4.368 +  The composition of f and g is interpretation of \<open>oo\<close>.
   4.369 +\<close>
   4.370  
   4.371  lemma ID2 [simp]: "f oo ID = f"
   4.372  by (rule cfun_eqI, simp)
   4.373 @@ -451,7 +451,7 @@
   4.374  lemma assoc_oo: "f oo (g oo h) = (f oo g) oo h"
   4.375  by (rule cfun_eqI, simp)
   4.376  
   4.377 -subsection {* Strictified functions *}
   4.378 +subsection \<open>Strictified functions\<close>
   4.379  
   4.380  default_sort pcpo
   4.381  
   4.382 @@ -492,7 +492,7 @@
   4.383  lemma strictify2 [simp]: "x \<noteq> \<bottom> \<Longrightarrow> strictify\<cdot>f\<cdot>x = f\<cdot>x"
   4.384  by (simp add: strictify_conv_if)
   4.385  
   4.386 -subsection {* Continuity of let-bindings *}
   4.387 +subsection \<open>Continuity of let-bindings\<close>
   4.388  
   4.389  lemma cont2cont_Let:
   4.390    assumes f: "cont (\<lambda>x. f x)"
   4.391 @@ -514,8 +514,8 @@
   4.392      using g by (simp add: prod_cont_iff)
   4.393  qed
   4.394  
   4.395 -text {* The simple version (suggested by Joachim Breitner) is needed if
   4.396 -  the type of the defined term is not a cpo. *}
   4.397 +text \<open>The simple version (suggested by Joachim Breitner) is needed if
   4.398 +  the type of the defined term is not a cpo.\<close>
   4.399  
   4.400  lemma cont2cont_Let_simple [simp, cont2cont]:
   4.401    assumes "\<And>y. cont (\<lambda>x. g x y)"
     5.1 --- a/src/HOL/HOLCF/Compact_Basis.thy	Wed Jan 13 23:02:28 2016 +0100
     5.2 +++ b/src/HOL/HOLCF/Compact_Basis.thy	Wed Jan 13 23:07:06 2016 +0100
     5.3 @@ -2,7 +2,7 @@
     5.4      Author:     Brian Huffman
     5.5  *)
     5.6  
     5.7 -section {* A compact basis for powerdomains *}
     5.8 +section \<open>A compact basis for powerdomains\<close>
     5.9  
    5.10  theory Compact_Basis
    5.11  imports Universal
    5.12 @@ -10,7 +10,7 @@
    5.13  
    5.14  default_sort bifinite
    5.15  
    5.16 -subsection {* A compact basis for powerdomains *}
    5.17 +subsection \<open>A compact basis for powerdomains\<close>
    5.18  
    5.19  definition "pd_basis = {S::'a compact_basis set. finite S \<and> S \<noteq> {}}"
    5.20  
    5.21 @@ -26,7 +26,7 @@
    5.22  lemma Rep_pd_basis_nonempty [simp]: "Rep_pd_basis u \<noteq> {}"
    5.23  by (insert Rep_pd_basis [of u, unfolded pd_basis_def]) simp
    5.24  
    5.25 -text {* The powerdomain basis type is countable. *}
    5.26 +text \<open>The powerdomain basis type is countable.\<close>
    5.27  
    5.28  lemma pd_basis_countable: "\<exists>f::'a pd_basis \<Rightarrow> nat. inj f"
    5.29  proof -
    5.30 @@ -40,7 +40,7 @@
    5.31    (* FIXME: why doesn't ".." or "by (rule exI)" work? *)
    5.32  qed
    5.33  
    5.34 -subsection {* Unit and plus constructors *}
    5.35 +subsection \<open>Unit and plus constructors\<close>
    5.36  
    5.37  definition
    5.38    PDUnit :: "'a compact_basis \<Rightarrow> 'a pd_basis" where
    5.39 @@ -91,7 +91,7 @@
    5.40  apply (rule PDUnit, erule PDPlus [OF PDUnit])
    5.41  done
    5.42  
    5.43 -subsection {* Fold operator *}
    5.44 +subsection \<open>Fold operator\<close>
    5.45  
    5.46  definition
    5.47    fold_pd ::
     6.1 --- a/src/HOL/HOLCF/Completion.thy	Wed Jan 13 23:02:28 2016 +0100
     6.2 +++ b/src/HOL/HOLCF/Completion.thy	Wed Jan 13 23:07:06 2016 +0100
     6.3 @@ -2,13 +2,13 @@
     6.4      Author:     Brian Huffman
     6.5  *)
     6.6  
     6.7 -section {* Defining algebraic domains by ideal completion *}
     6.8 +section \<open>Defining algebraic domains by ideal completion\<close>
     6.9  
    6.10  theory Completion
    6.11  imports Plain_HOLCF
    6.12  begin
    6.13  
    6.14 -subsection {* Ideals over a preorder *}
    6.15 +subsection \<open>Ideals over a preorder\<close>
    6.16  
    6.17  locale preorder =
    6.18    fixes r :: "'a::type \<Rightarrow> 'a \<Rightarrow> bool" (infix "\<preceq>" 50)
    6.19 @@ -52,7 +52,7 @@
    6.20  lemma ex_ideal: "\<exists>A. A \<in> {A. ideal A}"
    6.21  by (fast intro: ideal_principal)
    6.22  
    6.23 -text {* The set of ideals is a cpo *}
    6.24 +text \<open>The set of ideals is a cpo\<close>
    6.25  
    6.26  lemma ideal_UN:
    6.27    fixes A :: "nat \<Rightarrow> 'a set"
    6.28 @@ -126,7 +126,7 @@
    6.29  apply (erule (1) below_trans)
    6.30  done
    6.31  
    6.32 -subsection {* Lemmas about least upper bounds *}
    6.33 +subsection \<open>Lemmas about least upper bounds\<close>
    6.34  
    6.35  lemma is_ub_thelub_ex: "\<lbrakk>\<exists>u. S <<| u; x \<in> S\<rbrakk> \<Longrightarrow> x \<sqsubseteq> lub S"
    6.36  apply (erule exE, drule is_lub_lub)
    6.37 @@ -137,7 +137,7 @@
    6.38  lemma is_lub_thelub_ex: "\<lbrakk>\<exists>u. S <<| u; S <| x\<rbrakk> \<Longrightarrow> lub S \<sqsubseteq> x"
    6.39  by (erule exE, drule is_lub_lub, erule is_lubD2)
    6.40  
    6.41 -subsection {* Locale for ideal completion *}
    6.42 +subsection \<open>Locale for ideal completion\<close>
    6.43  
    6.44  locale ideal_completion = preorder +
    6.45    fixes principal :: "'a::type \<Rightarrow> 'b::cpo"
    6.46 @@ -179,12 +179,12 @@
    6.47    "\<forall>i. Y i \<preceq> Y (Suc i) \<Longrightarrow> chain (\<lambda>i. principal (Y i))"
    6.48  by (simp add: chainI principal_mono)
    6.49  
    6.50 -subsubsection {* Principal ideals approximate all elements *}
    6.51 +subsubsection \<open>Principal ideals approximate all elements\<close>
    6.52  
    6.53  lemma compact_principal [simp]: "compact (principal a)"
    6.54  by (rule compactI2, simp add: principal_below_iff_mem_rep rep_lub)
    6.55  
    6.56 -text {* Construct a chain whose lub is the same as a given ideal *}
    6.57 +text \<open>Construct a chain whose lub is the same as a given ideal\<close>
    6.58  
    6.59  lemma obtain_principal_chain:
    6.60    obtains Y where "\<forall>i. Y i \<preceq> Y (Suc i)" and "x = (\<Squnion>i. principal (Y i))"
    6.61 @@ -278,7 +278,7 @@
    6.62  apply (drule (2) admD2, fast, simp)
    6.63  done
    6.64  
    6.65 -subsection {* Defining functions in terms of basis elements *}
    6.66 +subsection \<open>Defining functions in terms of basis elements\<close>
    6.67  
    6.68  definition
    6.69    extension :: "('a::type \<Rightarrow> 'c::cpo) \<Rightarrow> 'b \<rightarrow> 'c" where
     7.1 --- a/src/HOL/HOLCF/Cont.thy	Wed Jan 13 23:02:28 2016 +0100
     7.2 +++ b/src/HOL/HOLCF/Cont.thy	Wed Jan 13 23:07:06 2016 +0100
     7.3 @@ -3,23 +3,23 @@
     7.4      Author:     Brian Huffman
     7.5  *)
     7.6  
     7.7 -section {* Continuity and monotonicity *}
     7.8 +section \<open>Continuity and monotonicity\<close>
     7.9  
    7.10  theory Cont
    7.11  imports Pcpo
    7.12  begin
    7.13  
    7.14 -text {*
    7.15 +text \<open>
    7.16     Now we change the default class! Form now on all untyped type variables are
    7.17     of default class po
    7.18 -*}
    7.19 +\<close>
    7.20  
    7.21  default_sort po
    7.22  
    7.23 -subsection {* Definitions *}
    7.24 +subsection \<open>Definitions\<close>
    7.25  
    7.26  definition
    7.27 -  monofun :: "('a \<Rightarrow> 'b) \<Rightarrow> bool"  -- "monotonicity"  where
    7.28 +  monofun :: "('a \<Rightarrow> 'b) \<Rightarrow> bool"  \<comment> "monotonicity"  where
    7.29    "monofun f = (\<forall>x y. x \<sqsubseteq> y \<longrightarrow> f x \<sqsubseteq> f y)"
    7.30  
    7.31  definition
    7.32 @@ -44,9 +44,9 @@
    7.33  by (simp add: monofun_def)
    7.34  
    7.35  
    7.36 -subsection {* Equivalence of alternate definition *}
    7.37 +subsection \<open>Equivalence of alternate definition\<close>
    7.38  
    7.39 -text {* monotone functions map chains to chains *}
    7.40 +text \<open>monotone functions map chains to chains\<close>
    7.41  
    7.42  lemma ch2ch_monofun: "\<lbrakk>monofun f; chain Y\<rbrakk> \<Longrightarrow> chain (\<lambda>i. f (Y i))"
    7.43  apply (rule chainI)
    7.44 @@ -54,7 +54,7 @@
    7.45  apply (erule chainE)
    7.46  done
    7.47  
    7.48 -text {* monotone functions map upper bound to upper bounds *}
    7.49 +text \<open>monotone functions map upper bound to upper bounds\<close>
    7.50  
    7.51  lemma ub2ub_monofun: 
    7.52    "\<lbrakk>monofun f; range Y <| u\<rbrakk> \<Longrightarrow> range (\<lambda>i. f (Y i)) <| f u"
    7.53 @@ -63,7 +63,7 @@
    7.54  apply (erule ub_rangeD)
    7.55  done
    7.56  
    7.57 -text {* a lemma about binary chains *}
    7.58 +text \<open>a lemma about binary chains\<close>
    7.59  
    7.60  lemma binchain_cont:
    7.61    "\<lbrakk>cont f; x \<sqsubseteq> y\<rbrakk> \<Longrightarrow> range (\<lambda>i::nat. f (if i = 0 then x else y)) <<| f y"
    7.62 @@ -75,7 +75,7 @@
    7.63  apply (erule is_lub_bin_chain [THEN lub_eqI])
    7.64  done
    7.65  
    7.66 -text {* continuity implies monotonicity *}
    7.67 +text \<open>continuity implies monotonicity\<close>
    7.68  
    7.69  lemma cont2mono: "cont f \<Longrightarrow> monofun f"
    7.70  apply (rule monofunI)
    7.71 @@ -88,7 +88,7 @@
    7.72  
    7.73  lemmas ch2ch_cont = cont2mono [THEN ch2ch_monofun]
    7.74  
    7.75 -text {* continuity implies preservation of lubs *}
    7.76 +text \<open>continuity implies preservation of lubs\<close>
    7.77  
    7.78  lemma cont2contlubE:
    7.79    "\<lbrakk>cont f; chain Y\<rbrakk> \<Longrightarrow> f (\<Squnion>i. Y i) = (\<Squnion>i. f (Y i))"
    7.80 @@ -118,26 +118,26 @@
    7.81      by (rule thelubE)
    7.82  qed
    7.83  
    7.84 -subsection {* Collection of continuity rules *}
    7.85 +subsection \<open>Collection of continuity rules\<close>
    7.86  
    7.87  named_theorems cont2cont "continuity intro rule"
    7.88  
    7.89  
    7.90 -subsection {* Continuity of basic functions *}
    7.91 +subsection \<open>Continuity of basic functions\<close>
    7.92  
    7.93 -text {* The identity function is continuous *}
    7.94 +text \<open>The identity function is continuous\<close>
    7.95  
    7.96  lemma cont_id [simp, cont2cont]: "cont (\<lambda>x. x)"
    7.97  apply (rule contI)
    7.98  apply (erule cpo_lubI)
    7.99  done
   7.100  
   7.101 -text {* constant functions are continuous *}
   7.102 +text \<open>constant functions are continuous\<close>
   7.103  
   7.104  lemma cont_const [simp, cont2cont]: "cont (\<lambda>x. c)"
   7.105    using is_lub_const by (rule contI)
   7.106  
   7.107 -text {* application of functions is continuous *}
   7.108 +text \<open>application of functions is continuous\<close>
   7.109  
   7.110  lemma cont_apply:
   7.111    fixes f :: "'a::cpo \<Rightarrow> 'b::cpo \<Rightarrow> 'c::cpo" and t :: "'a \<Rightarrow> 'b"
   7.112 @@ -165,7 +165,7 @@
   7.113    "\<lbrakk>cont c; cont (\<lambda>x. f x)\<rbrakk> \<Longrightarrow> cont (\<lambda>x. c (f x))"
   7.114  by (rule cont_apply [OF _ _ cont_const])
   7.115  
   7.116 -text {* Least upper bounds preserve continuity *}
   7.117 +text \<open>Least upper bounds preserve continuity\<close>
   7.118  
   7.119  lemma cont2cont_lub [simp]:
   7.120    assumes chain: "\<And>x. chain (\<lambda>i. F i x)" and cont: "\<And>i. cont (\<lambda>x. F i x)"
   7.121 @@ -176,15 +176,15 @@
   7.122  apply (simp add: diag_lub ch2ch_cont [OF cont] chain)
   7.123  done
   7.124  
   7.125 -text {* if-then-else is continuous *}
   7.126 +text \<open>if-then-else is continuous\<close>
   7.127  
   7.128  lemma cont_if [simp, cont2cont]:
   7.129    "\<lbrakk>cont f; cont g\<rbrakk> \<Longrightarrow> cont (\<lambda>x. if b then f x else g x)"
   7.130  by (induct b) simp_all
   7.131  
   7.132 -subsection {* Finite chains and flat pcpos *}
   7.133 +subsection \<open>Finite chains and flat pcpos\<close>
   7.134  
   7.135 -text {* Monotone functions map finite chains to finite chains. *}
   7.136 +text \<open>Monotone functions map finite chains to finite chains.\<close>
   7.137  
   7.138  lemma monofun_finch2finch:
   7.139    "\<lbrakk>monofun f; finite_chain Y\<rbrakk> \<Longrightarrow> finite_chain (\<lambda>n. f (Y n))"
   7.140 @@ -193,13 +193,13 @@
   7.141  apply (force simp add: max_in_chain_def)
   7.142  done
   7.143  
   7.144 -text {* The same holds for continuous functions. *}
   7.145 +text \<open>The same holds for continuous functions.\<close>
   7.146  
   7.147  lemma cont_finch2finch:
   7.148    "\<lbrakk>cont f; finite_chain Y\<rbrakk> \<Longrightarrow> finite_chain (\<lambda>n. f (Y n))"
   7.149  by (rule cont2mono [THEN monofun_finch2finch])
   7.150  
   7.151 -text {* All monotone functions with chain-finite domain are continuous. *}
   7.152 +text \<open>All monotone functions with chain-finite domain are continuous.\<close>
   7.153  
   7.154  lemma chfindom_monofun2cont: "monofun f \<Longrightarrow> cont (f::'a::chfin \<Rightarrow> 'b::cpo)"
   7.155  apply (erule contI2)
   7.156 @@ -210,7 +210,7 @@
   7.157  apply (force simp add: max_in_chain_def)
   7.158  done
   7.159  
   7.160 -text {* All strict functions with flat domain are continuous. *}
   7.161 +text \<open>All strict functions with flat domain are continuous.\<close>
   7.162  
   7.163  lemma flatdom_strict2mono: "f \<bottom> = \<bottom> \<Longrightarrow> monofun (f::'a::flat \<Rightarrow> 'b::pcpo)"
   7.164  apply (rule monofunI)
   7.165 @@ -221,7 +221,7 @@
   7.166  lemma flatdom_strict2cont: "f \<bottom> = \<bottom> \<Longrightarrow> cont (f::'a::flat \<Rightarrow> 'b::pcpo)"
   7.167  by (rule flatdom_strict2mono [THEN chfindom_monofun2cont])
   7.168  
   7.169 -text {* All functions with discrete domain are continuous. *}
   7.170 +text \<open>All functions with discrete domain are continuous.\<close>
   7.171  
   7.172  lemma cont_discrete_cpo [simp, cont2cont]: "cont (f::'a::discrete_cpo \<Rightarrow> 'b::cpo)"
   7.173  apply (rule contI)
     8.1 --- a/src/HOL/HOLCF/ConvexPD.thy	Wed Jan 13 23:02:28 2016 +0100
     8.2 +++ b/src/HOL/HOLCF/ConvexPD.thy	Wed Jan 13 23:07:06 2016 +0100
     8.3 @@ -2,13 +2,13 @@
     8.4      Author:     Brian Huffman
     8.5  *)
     8.6  
     8.7 -section {* Convex powerdomain *}
     8.8 +section \<open>Convex powerdomain\<close>
     8.9  
    8.10  theory ConvexPD
    8.11  imports UpperPD LowerPD
    8.12  begin
    8.13  
    8.14 -subsection {* Basis preorder *}
    8.15 +subsection \<open>Basis preorder\<close>
    8.16  
    8.17  definition
    8.18    convex_le :: "'a pd_basis \<Rightarrow> 'a pd_basis \<Rightarrow> bool" (infix "\<le>\<natural>" 50) where
    8.19 @@ -117,7 +117,7 @@
    8.20  done
    8.21  
    8.22  
    8.23 -subsection {* Type definition *}
    8.24 +subsection \<open>Type definition\<close>
    8.25  
    8.26  typedef 'a convex_pd  ("('(_')\<natural>)") =
    8.27    "{S::'a pd_basis set. convex_le.ideal S}"
    8.28 @@ -150,7 +150,7 @@
    8.29  using convex_principal_def pd_basis_countable
    8.30  by (rule convex_le.typedef_ideal_completion)
    8.31  
    8.32 -text {* Convex powerdomain is pointed *}
    8.33 +text \<open>Convex powerdomain is pointed\<close>
    8.34  
    8.35  lemma convex_pd_minimal: "convex_principal (PDUnit compact_bot) \<sqsubseteq> ys"
    8.36  by (induct ys rule: convex_pd.principal_induct, simp, simp)
    8.37 @@ -162,7 +162,7 @@
    8.38  by (rule convex_pd_minimal [THEN bottomI, symmetric])
    8.39  
    8.40  
    8.41 -subsection {* Monadic unit and plus *}
    8.42 +subsection \<open>Monadic unit and plus\<close>
    8.43  
    8.44  definition
    8.45    convex_unit :: "'a \<rightarrow> 'a convex_pd" where
    8.46 @@ -221,11 +221,11 @@
    8.47  lemmas convex_plus_left_commute = convex_add.left_commute
    8.48  lemmas convex_plus_left_absorb = convex_add.left_idem
    8.49  
    8.50 -text {* Useful for @{text "simp add: convex_plus_ac"} *}
    8.51 +text \<open>Useful for \<open>simp add: convex_plus_ac\<close>\<close>
    8.52  lemmas convex_plus_ac =
    8.53    convex_plus_assoc convex_plus_commute convex_plus_left_commute
    8.54  
    8.55 -text {* Useful for @{text "simp only: convex_plus_aci"} *}
    8.56 +text \<open>Useful for \<open>simp only: convex_plus_aci\<close>\<close>
    8.57  lemmas convex_plus_aci =
    8.58    convex_plus_ac convex_plus_absorb convex_plus_left_absorb
    8.59  
    8.60 @@ -275,7 +275,7 @@
    8.61  by (auto dest!: convex_pd.compact_imp_principal)
    8.62  
    8.63  
    8.64 -subsection {* Induction rules *}
    8.65 +subsection \<open>Induction rules\<close>
    8.66  
    8.67  lemma convex_pd_induct1:
    8.68    assumes P: "adm P"
    8.69 @@ -304,7 +304,7 @@
    8.70  done
    8.71  
    8.72  
    8.73 -subsection {* Monadic bind *}
    8.74 +subsection \<open>Monadic bind\<close>
    8.75  
    8.76  definition
    8.77    convex_bind_basis ::
    8.78 @@ -376,7 +376,7 @@
    8.79  by (induct xs, simp_all)
    8.80  
    8.81  
    8.82 -subsection {* Map *}
    8.83 +subsection \<open>Map\<close>
    8.84  
    8.85  definition
    8.86    convex_map :: "('a \<rightarrow> 'b) \<rightarrow> 'a convex_pd \<rightarrow> 'b convex_pd" where
    8.87 @@ -467,7 +467,7 @@
    8.88      by (rule finite_range_imp_finite_fixes)
    8.89  qed
    8.90  
    8.91 -subsection {* Convex powerdomain is bifinite *}
    8.92 +subsection \<open>Convex powerdomain is bifinite\<close>
    8.93  
    8.94  lemma approx_chain_convex_map:
    8.95    assumes "approx_chain a"
    8.96 @@ -482,7 +482,7 @@
    8.97      by (fast intro!: approx_chain_convex_map)
    8.98  qed
    8.99  
   8.100 -subsection {* Join *}
   8.101 +subsection \<open>Join\<close>
   8.102  
   8.103  definition
   8.104    convex_join :: "'a convex_pd convex_pd \<rightarrow> 'a convex_pd" where
   8.105 @@ -513,9 +513,9 @@
   8.106  by (induct xss rule: convex_pd_induct, simp_all)
   8.107  
   8.108  
   8.109 -subsection {* Conversions to other powerdomains *}
   8.110 +subsection \<open>Conversions to other powerdomains\<close>
   8.111  
   8.112 -text {* Convex to upper *}
   8.113 +text \<open>Convex to upper\<close>
   8.114  
   8.115  lemma convex_le_imp_upper_le: "t \<le>\<natural> u \<Longrightarrow> t \<le>\<sharp> u"
   8.116  unfolding convex_le_def by simp
   8.117 @@ -555,7 +555,7 @@
   8.118      upper_bind\<cdot>(convex_to_upper\<cdot>xss)\<cdot>convex_to_upper"
   8.119  by (simp add: convex_join_def upper_join_def cfcomp_LAM eta_cfun)
   8.120  
   8.121 -text {* Convex to lower *}
   8.122 +text \<open>Convex to lower\<close>
   8.123  
   8.124  lemma convex_le_imp_lower_le: "t \<le>\<natural> u \<Longrightarrow> t \<le>\<flat> u"
   8.125  unfolding convex_le_def by simp
   8.126 @@ -595,7 +595,7 @@
   8.127      lower_bind\<cdot>(convex_to_lower\<cdot>xss)\<cdot>convex_to_lower"
   8.128  by (simp add: convex_join_def lower_join_def cfcomp_LAM eta_cfun)
   8.129  
   8.130 -text {* Ordering property *}
   8.131 +text \<open>Ordering property\<close>
   8.132  
   8.133  lemma convex_pd_below_iff:
   8.134    "(xs \<sqsubseteq> ys) =
     9.1 --- a/src/HOL/HOLCF/Cpodef.thy	Wed Jan 13 23:02:28 2016 +0100
     9.2 +++ b/src/HOL/HOLCF/Cpodef.thy	Wed Jan 13 23:07:06 2016 +0100
     9.3 @@ -2,21 +2,21 @@
     9.4      Author:     Brian Huffman
     9.5  *)
     9.6  
     9.7 -section {* Subtypes of pcpos *}
     9.8 +section \<open>Subtypes of pcpos\<close>
     9.9  
    9.10  theory Cpodef
    9.11  imports Adm
    9.12  keywords "pcpodef" "cpodef" :: thy_goal
    9.13  begin
    9.14  
    9.15 -subsection {* Proving a subtype is a partial order *}
    9.16 +subsection \<open>Proving a subtype is a partial order\<close>
    9.17  
    9.18 -text {*
    9.19 +text \<open>
    9.20    A subtype of a partial order is itself a partial order,
    9.21    if the ordering is defined in the standard way.
    9.22 -*}
    9.23 +\<close>
    9.24  
    9.25 -setup {* Sign.add_const_constraint (@{const_name Porder.below}, NONE) *}
    9.26 +setup \<open>Sign.add_const_constraint (@{const_name Porder.below}, NONE)\<close>
    9.27  
    9.28  theorem typedef_po:
    9.29    fixes Abs :: "'a::po \<Rightarrow> 'b::type"
    9.30 @@ -30,10 +30,10 @@
    9.31   apply (erule (1) below_antisym)
    9.32  done
    9.33  
    9.34 -setup {* Sign.add_const_constraint (@{const_name Porder.below},
    9.35 -  SOME @{typ "'a::below \<Rightarrow> 'a::below \<Rightarrow> bool"}) *}
    9.36 +setup \<open>Sign.add_const_constraint (@{const_name Porder.below},
    9.37 +  SOME @{typ "'a::below \<Rightarrow> 'a::below \<Rightarrow> bool"})\<close>
    9.38  
    9.39 -subsection {* Proving a subtype is finite *}
    9.40 +subsection \<open>Proving a subtype is finite\<close>
    9.41  
    9.42  lemma typedef_finite_UNIV:
    9.43    fixes Abs :: "'a::type \<Rightarrow> 'b::type"
    9.44 @@ -46,7 +46,7 @@
    9.45      by (simp only: type_definition.Abs_image [OF type])
    9.46  qed
    9.47  
    9.48 -subsection {* Proving a subtype is chain-finite *}
    9.49 +subsection \<open>Proving a subtype is chain-finite\<close>
    9.50  
    9.51  lemma ch2ch_Rep:
    9.52    assumes below: "op \<sqsubseteq> \<equiv> \<lambda>x y. Rep x \<sqsubseteq> Rep y"
    9.53 @@ -65,15 +65,15 @@
    9.54   apply (simp add: type_definition.Rep_inject [OF type])
    9.55  done
    9.56  
    9.57 -subsection {* Proving a subtype is complete *}
    9.58 +subsection \<open>Proving a subtype is complete\<close>
    9.59  
    9.60 -text {*
    9.61 +text \<open>
    9.62    A subtype of a cpo is itself a cpo if the ordering is
    9.63    defined in the standard way, and the defining subset
    9.64    is closed with respect to limits of chains.  A set is
    9.65    closed if and only if membership in the set is an
    9.66    admissible predicate.
    9.67 -*}
    9.68 +\<close>
    9.69  
    9.70  lemma typedef_is_lubI:
    9.71    assumes below: "op \<sqsubseteq> \<equiv> \<lambda>x y. Rep x \<sqsubseteq> Rep y"
    9.72 @@ -122,9 +122,9 @@
    9.73    thus "\<exists>x. range S <<| x" ..
    9.74  qed
    9.75  
    9.76 -subsubsection {* Continuity of \emph{Rep} and \emph{Abs} *}
    9.77 +subsubsection \<open>Continuity of \emph{Rep} and \emph{Abs}\<close>
    9.78  
    9.79 -text {* For any sub-cpo, the @{term Rep} function is continuous. *}
    9.80 +text \<open>For any sub-cpo, the @{term Rep} function is continuous.\<close>
    9.81  
    9.82  theorem typedef_cont_Rep:
    9.83    fixes Abs :: "'a::cpo \<Rightarrow> 'b::cpo"
    9.84 @@ -140,11 +140,11 @@
    9.85   apply (erule ch2ch_Rep [OF below])
    9.86  done
    9.87  
    9.88 -text {*
    9.89 +text \<open>
    9.90    For a sub-cpo, we can make the @{term Abs} function continuous
    9.91    only if we restrict its domain to the defining subset by
    9.92    composing it with another continuous function.
    9.93 -*}
    9.94 +\<close>
    9.95  
    9.96  theorem typedef_cont_Abs:
    9.97    fixes Abs :: "'a::cpo \<Rightarrow> 'b::cpo"
    9.98 @@ -157,7 +157,7 @@
    9.99  unfolding cont_def is_lub_def is_ub_def ball_simps below
   9.100  by (simp add: type_definition.Abs_inverse [OF type f_in_A])
   9.101  
   9.102 -subsection {* Proving subtype elements are compact *}
   9.103 +subsection \<open>Proving subtype elements are compact\<close>
   9.104  
   9.105  theorem typedef_compact:
   9.106    fixes Abs :: "'a::cpo \<Rightarrow> 'b::cpo"
   9.107 @@ -173,12 +173,12 @@
   9.108    thus "adm (\<lambda>x. k \<notsqsubseteq> x)" by (unfold below)
   9.109  qed
   9.110  
   9.111 -subsection {* Proving a subtype is pointed *}
   9.112 +subsection \<open>Proving a subtype is pointed\<close>
   9.113  
   9.114 -text {*
   9.115 +text \<open>
   9.116    A subtype of a cpo has a least element if and only if
   9.117    the defining subset has a least element.
   9.118 -*}
   9.119 +\<close>
   9.120  
   9.121  theorem typedef_pcpo_generic:
   9.122    fixes Abs :: "'a::cpo \<Rightarrow> 'b::cpo"
   9.123 @@ -194,10 +194,10 @@
   9.124   apply (rule z_least [OF type_definition.Rep [OF type]])
   9.125  done
   9.126  
   9.127 -text {*
   9.128 +text \<open>
   9.129    As a special case, a subtype of a pcpo has a least element
   9.130    if the defining subset contains @{term \<bottom>}.
   9.131 -*}
   9.132 +\<close>
   9.133  
   9.134  theorem typedef_pcpo:
   9.135    fixes Abs :: "'a::pcpo \<Rightarrow> 'b::cpo"
   9.136 @@ -207,12 +207,12 @@
   9.137    shows "OFCLASS('b, pcpo_class)"
   9.138  by (rule typedef_pcpo_generic [OF type below bottom_in_A], rule minimal)
   9.139  
   9.140 -subsubsection {* Strictness of \emph{Rep} and \emph{Abs} *}
   9.141 +subsubsection \<open>Strictness of \emph{Rep} and \emph{Abs}\<close>
   9.142  
   9.143 -text {*
   9.144 +text \<open>
   9.145    For a sub-pcpo where @{term \<bottom>} is a member of the defining
   9.146    subset, @{term Rep} and @{term Abs} are both strict.
   9.147 -*}
   9.148 +\<close>
   9.149  
   9.150  theorem typedef_Abs_strict:
   9.151    assumes type: "type_definition Rep Abs A"
   9.152 @@ -250,7 +250,7 @@
   9.153   apply (simp add: type_definition.Rep_inject [OF type])
   9.154  done
   9.155  
   9.156 -subsection {* Proving a subtype is flat *}
   9.157 +subsection \<open>Proving a subtype is flat\<close>
   9.158  
   9.159  theorem typedef_flat:
   9.160    fixes Abs :: "'a::flat \<Rightarrow> 'b::pcpo"
   9.161 @@ -265,7 +265,7 @@
   9.162   apply (simp add: ax_flat)
   9.163  done
   9.164  
   9.165 -subsection {* HOLCF type definition package *}
   9.166 +subsection \<open>HOLCF type definition package\<close>
   9.167  
   9.168  ML_file "Tools/cpodef.ML"
   9.169  
    10.1 --- a/src/HOL/HOLCF/Cprod.thy	Wed Jan 13 23:02:28 2016 +0100
    10.2 +++ b/src/HOL/HOLCF/Cprod.thy	Wed Jan 13 23:07:06 2016 +0100
    10.3 @@ -2,7 +2,7 @@
    10.4      Author:     Franz Regensburger
    10.5  *)
    10.6  
    10.7 -section {* The cpo of cartesian products *}
    10.8 +section \<open>The cpo of cartesian products\<close>
    10.9  
   10.10  theory Cprod
   10.11  imports Cfun
   10.12 @@ -10,7 +10,7 @@
   10.13  
   10.14  default_sort cpo
   10.15  
   10.16 -subsection {* Continuous case function for unit type *}
   10.17 +subsection \<open>Continuous case function for unit type\<close>
   10.18  
   10.19  definition
   10.20    unit_when :: "'a \<rightarrow> unit \<rightarrow> 'a" where
   10.21 @@ -22,7 +22,7 @@
   10.22  lemma unit_when [simp]: "unit_when\<cdot>a\<cdot>u = a"
   10.23  by (simp add: unit_when_def)
   10.24  
   10.25 -subsection {* Continuous version of split function *}
   10.26 +subsection \<open>Continuous version of split function\<close>
   10.27  
   10.28  definition
   10.29    csplit :: "('a \<rightarrow> 'b \<rightarrow> 'c) \<rightarrow> ('a * 'b) \<rightarrow> 'c" where
   10.30 @@ -39,7 +39,7 @@
   10.31    csnd :: "'a \<times> 'b \<rightarrow> 'b" where
   10.32    "csnd \<equiv> Abs_cfun snd"
   10.33  
   10.34 -subsection {* Convert all lemmas to the continuous versions *}
   10.35 +subsection \<open>Convert all lemmas to the continuous versions\<close>
   10.36  
   10.37  lemma csplit1 [simp]: "csplit\<cdot>f\<cdot>\<bottom> = f\<cdot>\<bottom>\<cdot>\<bottom>"
   10.38  by (simp add: csplit_def)
    11.1 --- a/src/HOL/HOLCF/Deflation.thy	Wed Jan 13 23:02:28 2016 +0100
    11.2 +++ b/src/HOL/HOLCF/Deflation.thy	Wed Jan 13 23:07:06 2016 +0100
    11.3 @@ -2,7 +2,7 @@
    11.4      Author:     Brian Huffman
    11.5  *)
    11.6  
    11.7 -section {* Continuous deflations and ep-pairs *}
    11.8 +section \<open>Continuous deflations and ep-pairs\<close>
    11.9  
   11.10  theory Deflation
   11.11  imports Plain_HOLCF
   11.12 @@ -10,7 +10,7 @@
   11.13  
   11.14  default_sort cpo
   11.15  
   11.16 -subsection {* Continuous deflations *}
   11.17 +subsection \<open>Continuous deflations\<close>
   11.18  
   11.19  locale deflation =
   11.20    fixes d :: "'a \<rightarrow> 'a"
   11.21 @@ -21,7 +21,7 @@
   11.22  lemma below_ID: "d \<sqsubseteq> ID"
   11.23  by (rule cfun_belowI, simp add: below)
   11.24  
   11.25 -text {* The set of fixed points is the same as the range. *}
   11.26 +text \<open>The set of fixed points is the same as the range.\<close>
   11.27  
   11.28  lemma fixes_eq_range: "{x. d\<cdot>x = x} = range (\<lambda>x. d\<cdot>x)"
   11.29  by (auto simp add: eq_sym_conv idem)
   11.30 @@ -29,10 +29,10 @@
   11.31  lemma range_eq_fixes: "range (\<lambda>x. d\<cdot>x) = {x. d\<cdot>x = x}"
   11.32  by (auto simp add: eq_sym_conv idem)
   11.33  
   11.34 -text {*
   11.35 +text \<open>
   11.36    The pointwise ordering on deflation functions coincides with
   11.37    the subset ordering of their sets of fixed-points.
   11.38 -*}
   11.39 +\<close>
   11.40  
   11.41  lemma belowI:
   11.42    assumes f: "\<And>x. d\<cdot>x = x \<Longrightarrow> f\<cdot>x = x" shows "d \<sqsubseteq> f"
   11.43 @@ -74,10 +74,10 @@
   11.44   apply (simp add: deflation.belowI)
   11.45  done
   11.46  
   11.47 -text {*
   11.48 +text \<open>
   11.49    The composition of two deflations is equal to
   11.50    the lesser of the two (if they are comparable).
   11.51 -*}
   11.52 +\<close>
   11.53  
   11.54  lemma deflation_below_comp1:
   11.55    assumes "deflation f"
   11.56 @@ -99,7 +99,7 @@
   11.57  by (simp only: deflation.belowD deflation.idem)
   11.58  
   11.59  
   11.60 -subsection {* Deflations with finite range *}
   11.61 +subsection \<open>Deflations with finite range\<close>
   11.62  
   11.63  lemma finite_range_imp_finite_fixes:
   11.64    "finite (range f) \<Longrightarrow> finite {x. f x = x}"
   11.65 @@ -164,7 +164,7 @@
   11.66  by standard simp_all
   11.67  
   11.68  
   11.69 -subsection {* Continuous embedding-projection pairs *}
   11.70 +subsection \<open>Continuous embedding-projection pairs\<close>
   11.71  
   11.72  locale ep_pair =
   11.73    fixes e :: "'a \<rightarrow> 'b" and p :: "'b \<rightarrow> 'a"
   11.74 @@ -224,7 +224,7 @@
   11.75  lemma compact_e_iff: "compact (e\<cdot>x) \<longleftrightarrow> compact x"
   11.76  by (rule iffI [OF compact_e_rev compact_e])
   11.77  
   11.78 -text {* Deflations from ep-pairs *}
   11.79 +text \<open>Deflations from ep-pairs\<close>
   11.80  
   11.81  lemma deflation_e_p: "deflation (e oo p)"
   11.82  by (simp add: deflation.intro e_p_below)
   11.83 @@ -321,7 +321,7 @@
   11.84  
   11.85  end
   11.86  
   11.87 -subsection {* Uniqueness of ep-pairs *}
   11.88 +subsection \<open>Uniqueness of ep-pairs\<close>
   11.89  
   11.90  lemma ep_pair_unique_e_lemma:
   11.91    assumes 1: "ep_pair e1 p" and 2: "ep_pair e2 p"
   11.92 @@ -355,7 +355,7 @@
   11.93    "\<lbrakk>ep_pair e p1; ep_pair e p2\<rbrakk> \<Longrightarrow> p1 = p2"
   11.94  by (fast intro: below_antisym elim: ep_pair_unique_p_lemma)
   11.95  
   11.96 -subsection {* Composing ep-pairs *}
   11.97 +subsection \<open>Composing ep-pairs\<close>
   11.98  
   11.99  lemma ep_pair_ID_ID: "ep_pair ID ID"
  11.100  by standard simp_all
    12.1 --- a/src/HOL/HOLCF/Discrete.thy	Wed Jan 13 23:02:28 2016 +0100
    12.2 +++ b/src/HOL/HOLCF/Discrete.thy	Wed Jan 13 23:07:06 2016 +0100
    12.3 @@ -2,7 +2,7 @@
    12.4      Author:     Tobias Nipkow
    12.5  *)
    12.6  
    12.7 -section {* Discrete cpo types *}
    12.8 +section \<open>Discrete cpo types\<close>
    12.9  
   12.10  theory Discrete
   12.11  imports Cont
   12.12 @@ -10,7 +10,7 @@
   12.13  
   12.14  datatype 'a discr = Discr "'a :: type"
   12.15  
   12.16 -subsection {* Discrete cpo class instance *}
   12.17 +subsection \<open>Discrete cpo class instance\<close>
   12.18  
   12.19  instantiation discr :: (type) discrete_cpo
   12.20  begin
   12.21 @@ -23,7 +23,7 @@
   12.22  
   12.23  end
   12.24  
   12.25 -subsection {* \emph{undiscr} *}
   12.26 +subsection \<open>\emph{undiscr}\<close>
   12.27  
   12.28  definition
   12.29    undiscr :: "('a::type)discr => 'a" where
    13.1 --- a/src/HOL/HOLCF/Domain.thy	Wed Jan 13 23:02:28 2016 +0100
    13.2 +++ b/src/HOL/HOLCF/Domain.thy	Wed Jan 13 23:07:06 2016 +0100
    13.3 @@ -2,7 +2,7 @@
    13.4      Author:     Brian Huffman
    13.5  *)
    13.6  
    13.7 -section {* Domain package *}
    13.8 +section \<open>Domain package\<close>
    13.9  
   13.10  theory Domain
   13.11  imports Representable Domain_Aux
   13.12 @@ -13,7 +13,7 @@
   13.13  
   13.14  default_sort "domain"
   13.15  
   13.16 -subsection {* Representations of types *}
   13.17 +subsection \<open>Representations of types\<close>
   13.18  
   13.19  lemma emb_prj: "emb\<cdot>((prj\<cdot>x)::'a) = cast\<cdot>DEFL('a)\<cdot>x"
   13.20  by (simp add: cast_DEFL)
   13.21 @@ -39,7 +39,7 @@
   13.22   apply (rule monofun_cfun_arg [OF assms])
   13.23  done
   13.24  
   13.25 -text {* Isomorphism lemmas used internally by the domain package: *}
   13.26 +text \<open>Isomorphism lemmas used internally by the domain package:\<close>
   13.27  
   13.28  lemma domain_abs_iso:
   13.29    fixes abs and rep
   13.30 @@ -59,7 +59,7 @@
   13.31  unfolding abs_def rep_def
   13.32  by (simp add: emb_prj_emb DEFL)
   13.33  
   13.34 -subsection {* Deflations as sets *}
   13.35 +subsection \<open>Deflations as sets\<close>
   13.36  
   13.37  definition defl_set :: "'a::bifinite defl \<Rightarrow> 'a set"
   13.38  where "defl_set A = {x. cast\<cdot>A\<cdot>x = x}"
   13.39 @@ -78,11 +78,11 @@
   13.40  apply (auto simp add: cast.belowI cast.belowD)
   13.41  done
   13.42  
   13.43 -subsection {* Proving a subtype is representable *}
   13.44 +subsection \<open>Proving a subtype is representable\<close>
   13.45  
   13.46 -text {* Temporarily relax type constraints. *}
   13.47 +text \<open>Temporarily relax type constraints.\<close>
   13.48  
   13.49 -setup {*
   13.50 +setup \<open>
   13.51    fold Sign.add_const_constraint
   13.52    [ (@{const_name defl}, SOME @{typ "'a::pcpo itself \<Rightarrow> udom defl"})
   13.53    , (@{const_name emb}, SOME @{typ "'a::pcpo \<rightarrow> udom"})
   13.54 @@ -90,7 +90,7 @@
   13.55    , (@{const_name liftdefl}, SOME @{typ "'a::pcpo itself \<Rightarrow> udom u defl"})
   13.56    , (@{const_name liftemb}, SOME @{typ "'a::pcpo u \<rightarrow> udom u"})
   13.57    , (@{const_name liftprj}, SOME @{typ "udom u \<rightarrow> 'a::pcpo u"}) ]
   13.58 -*}
   13.59 +\<close>
   13.60  
   13.61  lemma typedef_domain_class:
   13.62    fixes Rep :: "'a::pcpo \<Rightarrow> udom"
   13.63 @@ -138,9 +138,9 @@
   13.64    shows "DEFL('a::pcpo) = t"
   13.65  unfolding assms ..
   13.66  
   13.67 -text {* Restore original typing constraints. *}
   13.68 +text \<open>Restore original typing constraints.\<close>
   13.69  
   13.70 -setup {*
   13.71 +setup \<open>
   13.72    fold Sign.add_const_constraint
   13.73     [(@{const_name defl}, SOME @{typ "'a::domain itself \<Rightarrow> udom defl"}),
   13.74      (@{const_name emb}, SOME @{typ "'a::domain \<rightarrow> udom"}),
   13.75 @@ -148,11 +148,11 @@
   13.76      (@{const_name liftdefl}, SOME @{typ "'a::predomain itself \<Rightarrow> udom u defl"}),
   13.77      (@{const_name liftemb}, SOME @{typ "'a::predomain u \<rightarrow> udom u"}),
   13.78      (@{const_name liftprj}, SOME @{typ "udom u \<rightarrow> 'a::predomain u"})]
   13.79 -*}
   13.80 +\<close>
   13.81  
   13.82  ML_file "Tools/domaindef.ML"
   13.83  
   13.84 -subsection {* Isomorphic deflations *}
   13.85 +subsection \<open>Isomorphic deflations\<close>
   13.86  
   13.87  definition isodefl :: "('a \<rightarrow> 'a) \<Rightarrow> udom defl \<Rightarrow> bool"
   13.88    where "isodefl d t \<longleftrightarrow> cast\<cdot>t = emb oo d oo prj"
   13.89 @@ -314,7 +314,7 @@
   13.90  using isodefl_sfun [OF assms] unfolding isodefl_def
   13.91  by (simp add: emb_cfun_def prj_cfun_def cfcomp1 encode_cfun_map)
   13.92  
   13.93 -subsection {* Setting up the domain package *}
   13.94 +subsection \<open>Setting up the domain package\<close>
   13.95  
   13.96  named_theorems domain_defl_simps "theorems like DEFL('a t) = t_defl$DEFL('a)"
   13.97    and domain_isodefl "theorems like isodefl d t ==> isodefl (foo_map$d) (foo_defl$t)"
   13.98 @@ -339,7 +339,7 @@
   13.99    deflation_cfun_map deflation_sfun_map deflation_ssum_map
  13.100    deflation_sprod_map deflation_prod_map deflation_u_map
  13.101  
  13.102 -setup {*
  13.103 +setup \<open>
  13.104    fold Domain_Take_Proofs.add_rec_type
  13.105      [(@{type_name cfun}, [true, true]),
  13.106       (@{type_name "sfun"}, [true, true]),
  13.107 @@ -347,6 +347,6 @@
  13.108       (@{type_name sprod}, [true, true]),
  13.109       (@{type_name prod}, [true, true]),
  13.110       (@{type_name "u"}, [true])]
  13.111 -*}
  13.112 +\<close>
  13.113  
  13.114  end
    14.1 --- a/src/HOL/HOLCF/Domain_Aux.thy	Wed Jan 13 23:02:28 2016 +0100
    14.2 +++ b/src/HOL/HOLCF/Domain_Aux.thy	Wed Jan 13 23:07:06 2016 +0100
    14.3 @@ -2,15 +2,15 @@
    14.4      Author:     Brian Huffman
    14.5  *)
    14.6  
    14.7 -section {* Domain package support *}
    14.8 +section \<open>Domain package support\<close>
    14.9  
   14.10  theory Domain_Aux
   14.11  imports Map_Functions Fixrec
   14.12  begin
   14.13  
   14.14 -subsection {* Continuous isomorphisms *}
   14.15 +subsection \<open>Continuous isomorphisms\<close>
   14.16  
   14.17 -text {* A locale for continuous isomorphisms *}
   14.18 +text \<open>A locale for continuous isomorphisms\<close>
   14.19  
   14.20  locale iso =
   14.21    fixes abs :: "'a \<rightarrow> 'b"
   14.22 @@ -108,13 +108,13 @@
   14.23  
   14.24  end
   14.25  
   14.26 -subsection {* Proofs about take functions *}
   14.27 +subsection \<open>Proofs about take functions\<close>
   14.28  
   14.29 -text {*
   14.30 +text \<open>
   14.31    This section contains lemmas that are used in a module that supports
   14.32    the domain isomorphism package; the module contains proofs related
   14.33    to take functions and the finiteness predicate.
   14.34 -*}
   14.35 +\<close>
   14.36  
   14.37  lemma deflation_abs_rep:
   14.38    fixes abs and rep and d
   14.39 @@ -132,14 +132,14 @@
   14.40    with chain have "d m \<sqsubseteq> d n" by (rule chain_mono)
   14.41    then have "d m\<cdot>(d n\<cdot>x) = d m\<cdot>x"
   14.42      by (rule deflation_below_comp1 [OF defl defl])
   14.43 -  moreover from `m \<le> n` have "min m n = m" by simp
   14.44 +  moreover from \<open>m \<le> n\<close> have "min m n = m" by simp
   14.45    ultimately show ?thesis by simp
   14.46  next
   14.47    assume "n \<le> m"
   14.48    with chain have "d n \<sqsubseteq> d m" by (rule chain_mono)
   14.49    then have "d m\<cdot>(d n\<cdot>x) = d n\<cdot>x"
   14.50      by (rule deflation_below_comp2 [OF defl defl])
   14.51 -  moreover from `n \<le> m` have "min m n = n" by simp
   14.52 +  moreover from \<open>n \<le> m\<close> have "min m n = n" by simp
   14.53    ultimately show ?thesis by simp
   14.54  qed
   14.55  
   14.56 @@ -164,18 +164,18 @@
   14.57    assumes "chain t" and "(\<Squnion>n. t n) = ID"
   14.58    assumes "adm P" and "\<And>n. P (t n\<cdot>x)" shows "P x"
   14.59  proof -
   14.60 -  from `chain t` have "chain (\<lambda>n. t n\<cdot>x)" by simp
   14.61 -  from `adm P` this `\<And>n. P (t n\<cdot>x)` have "P (\<Squnion>n. t n\<cdot>x)" by (rule admD)
   14.62 -  with `chain t` `(\<Squnion>n. t n) = ID` show "P x" by (simp add: lub_distribs)
   14.63 +  from \<open>chain t\<close> have "chain (\<lambda>n. t n\<cdot>x)" by simp
   14.64 +  from \<open>adm P\<close> this \<open>\<And>n. P (t n\<cdot>x)\<close> have "P (\<Squnion>n. t n\<cdot>x)" by (rule admD)
   14.65 +  with \<open>chain t\<close> \<open>(\<Squnion>n. t n) = ID\<close> show "P x" by (simp add: lub_distribs)
   14.66  qed
   14.67  
   14.68 -subsection {* Finiteness *}
   14.69 +subsection \<open>Finiteness\<close>
   14.70  
   14.71 -text {*
   14.72 +text \<open>
   14.73    Let a ``decisive'' function be a deflation that maps every input to
   14.74    either itself or bottom.  Then if a domain's take functions are all
   14.75    decisive, then all values in the domain are finite.
   14.76 -*}
   14.77 +\<close>
   14.78  
   14.79  definition
   14.80    decisive :: "('a::pcpo \<rightarrow> 'a) \<Rightarrow> bool"
   14.81 @@ -252,9 +252,9 @@
   14.82    shows "(\<And>n. P (d n\<cdot>x)) \<Longrightarrow> P x"
   14.83  using lub_ID_finite [OF assms] by metis
   14.84  
   14.85 -subsection {* Proofs about constructor functions *}
   14.86 +subsection \<open>Proofs about constructor functions\<close>
   14.87  
   14.88 -text {* Lemmas for proving nchotomy rule: *}
   14.89 +text \<open>Lemmas for proving nchotomy rule:\<close>
   14.90  
   14.91  lemma ex_one_bottom_iff:
   14.92    "(\<exists>x. P x \<and> x \<noteq> \<bottom>) = P ONE"
   14.93 @@ -290,7 +290,7 @@
   14.94     ex_up_bottom_iff
   14.95     ex_one_bottom_iff
   14.96  
   14.97 -text {* Rules for turning nchotomy into exhaust: *}
   14.98 +text \<open>Rules for turning nchotomy into exhaust:\<close>
   14.99  
  14.100  lemma exh_casedist0: "\<lbrakk>R; R \<Longrightarrow> P\<rbrakk> \<Longrightarrow> P" (* like make_elim *)
  14.101    by auto
  14.102 @@ -306,7 +306,7 @@
  14.103  
  14.104  lemmas exh_casedists = exh_casedist1 exh_casedist2 exh_casedist3
  14.105  
  14.106 -text {* Rules for proving constructor properties *}
  14.107 +text \<open>Rules for proving constructor properties\<close>
  14.108  
  14.109  lemmas con_strict_rules =
  14.110    sinl_strict sinr_strict spair_strict1 spair_strict2
  14.111 @@ -342,7 +342,7 @@
  14.112    ssum_map_sinl' ssum_map_sinr' sprod_map_spair' u_map_up
  14.113    deflation_strict deflation_ID ID1 cfcomp2
  14.114  
  14.115 -subsection {* ML setup *}
  14.116 +subsection \<open>ML setup\<close>
  14.117  
  14.118  named_theorems domain_deflation "theorems like deflation a ==> deflation (foo_map$a)"
  14.119    and domain_map_ID "theorems like foo_map$ID = ID"
    15.1 --- a/src/HOL/HOLCF/FOCUS/Buffer_adm.thy	Wed Jan 13 23:02:28 2016 +0100
    15.2 +++ b/src/HOL/HOLCF/FOCUS/Buffer_adm.thy	Wed Jan 13 23:07:06 2016 +0100
    15.3 @@ -2,7 +2,7 @@
    15.4      Author:     David von Oheimb, TU Muenchen
    15.5  *)
    15.6  
    15.7 -section {* One-element buffer, proof of Buf_Eq_imp_AC by induction + admissibility *}
    15.8 +section \<open>One-element buffer, proof of Buf_Eq_imp_AC by induction + admissibility\<close>
    15.9  
   15.10  theory Buffer_adm
   15.11  imports Buffer Stream_adm
    16.1 --- a/src/HOL/HOLCF/FOCUS/FOCUS.thy	Wed Jan 13 23:02:28 2016 +0100
    16.2 +++ b/src/HOL/HOLCF/FOCUS/FOCUS.thy	Wed Jan 13 23:07:06 2016 +0100
    16.3 @@ -2,7 +2,7 @@
    16.4      Author:     David von Oheimb, TU Muenchen
    16.5  *)
    16.6  
    16.7 -section {* Top level of FOCUS *}
    16.8 +section \<open>Top level of FOCUS\<close>
    16.9  
   16.10  theory FOCUS
   16.11  imports Fstream
    17.1 --- a/src/HOL/HOLCF/FOCUS/Fstream.thy	Wed Jan 13 23:02:28 2016 +0100
    17.2 +++ b/src/HOL/HOLCF/FOCUS/Fstream.thy	Wed Jan 13 23:07:06 2016 +0100
    17.3 @@ -6,7 +6,7 @@
    17.4  TODO: integrate Fstreams.thy
    17.5  *)
    17.6  
    17.7 -section {* FOCUS flat streams *}
    17.8 +section \<open>FOCUS flat streams\<close>
    17.9  
   17.10  theory Fstream
   17.11  imports "~~/src/HOL/HOLCF/Library/Stream"
   17.12 @@ -152,12 +152,12 @@
   17.13  lemma slen_fscons_eq_rev:
   17.14          "(#x < enat (Suc (Suc n))) = (!a y. x ~= a~> y | #y < enat (Suc n))"
   17.15  apply (simp add: fscons_def2 slen_scons_eq_rev)
   17.16 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.17 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.18 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.19 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.20 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.21 -apply (tactic {* step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1 *})
   17.22 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.23 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.24 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.25 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.26 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.27 +apply (tactic \<open>step_tac (put_claset HOL_cs @{context} addSEs @{thms DefE}) 1\<close>)
   17.28  apply (erule contrapos_np)
   17.29  apply (fast dest: not_Undef_is_Def [THEN iffD1] elim: DefE)
   17.30  done
    18.1 --- a/src/HOL/HOLCF/FOCUS/Stream_adm.thy	Wed Jan 13 23:02:28 2016 +0100
    18.2 +++ b/src/HOL/HOLCF/FOCUS/Stream_adm.thy	Wed Jan 13 23:07:06 2016 +0100
    18.3 @@ -2,7 +2,7 @@
    18.4      Author:     David von Oheimb, TU Muenchen
    18.5  *)
    18.6  
    18.7 -section {* Admissibility for streams *}
    18.8 +section \<open>Admissibility for streams\<close>
    18.9  
   18.10  theory Stream_adm
   18.11  imports "~~/src/HOL/HOLCF/Library/Stream" "~~/src/HOL/Library/Order_Continuity"
    19.1 --- a/src/HOL/HOLCF/Fix.thy	Wed Jan 13 23:02:28 2016 +0100
    19.2 +++ b/src/HOL/HOLCF/Fix.thy	Wed Jan 13 23:07:06 2016 +0100
    19.3 @@ -3,7 +3,7 @@
    19.4      Author:     Brian Huffman
    19.5  *)
    19.6  
    19.7 -section {* Fixed point operator and admissibility *}
    19.8 +section \<open>Fixed point operator and admissibility\<close>
    19.9  
   19.10  theory Fix
   19.11  imports Cfun
   19.12 @@ -11,13 +11,13 @@
   19.13  
   19.14  default_sort pcpo
   19.15  
   19.16 -subsection {* Iteration *}
   19.17 +subsection \<open>Iteration\<close>
   19.18  
   19.19  primrec iterate :: "nat \<Rightarrow> ('a::cpo \<rightarrow> 'a) \<rightarrow> ('a \<rightarrow> 'a)" where
   19.20      "iterate 0 = (\<Lambda> F x. x)"
   19.21    | "iterate (Suc n) = (\<Lambda> F x. F\<cdot>(iterate n\<cdot>F\<cdot>x))"
   19.22  
   19.23 -text {* Derive inductive properties of iterate from primitive recursion *}
   19.24 +text \<open>Derive inductive properties of iterate from primitive recursion\<close>
   19.25  
   19.26  lemma iterate_0 [simp]: "iterate 0\<cdot>F\<cdot>x = x"
   19.27  by simp
   19.28 @@ -34,19 +34,19 @@
   19.29    "iterate m\<cdot>F\<cdot>(iterate n\<cdot>F\<cdot>x) = iterate (m + n)\<cdot>F\<cdot>x"
   19.30  by (induct m) simp_all
   19.31  
   19.32 -text {* The sequence of function iterations is a chain. *}
   19.33 +text \<open>The sequence of function iterations is a chain.\<close>
   19.34  
   19.35  lemma chain_iterate [simp]: "chain (\<lambda>i. iterate i\<cdot>F\<cdot>\<bottom>)"
   19.36  by (rule chainI, unfold iterate_Suc2, rule monofun_cfun_arg, rule minimal)
   19.37  
   19.38  
   19.39 -subsection {* Least fixed point operator *}
   19.40 +subsection \<open>Least fixed point operator\<close>
   19.41  
   19.42  definition
   19.43    "fix" :: "('a \<rightarrow> 'a) \<rightarrow> 'a" where
   19.44    "fix = (\<Lambda> F. \<Squnion>i. iterate i\<cdot>F\<cdot>\<bottom>)"
   19.45  
   19.46 -text {* Binder syntax for @{term fix} *}
   19.47 +text \<open>Binder syntax for @{term fix}\<close>
   19.48  
   19.49  abbreviation
   19.50    fix_syn :: "('a \<Rightarrow> 'a) \<Rightarrow> 'a"  (binder "\<mu> " 10) where
   19.51 @@ -55,9 +55,9 @@
   19.52  notation (ASCII)
   19.53    fix_syn  (binder "FIX " 10)
   19.54  
   19.55 -text {* Properties of @{term fix} *}
   19.56 +text \<open>Properties of @{term fix}\<close>
   19.57  
   19.58 -text {* direct connection between @{term fix} and iteration *}
   19.59 +text \<open>direct connection between @{term fix} and iteration\<close>
   19.60  
   19.61  lemma fix_def2: "fix\<cdot>F = (\<Squnion>i. iterate i\<cdot>F\<cdot>\<bottom>)"
   19.62  unfolding fix_def by simp
   19.63 @@ -66,10 +66,10 @@
   19.64    unfolding fix_def2
   19.65    using chain_iterate by (rule is_ub_thelub)
   19.66  
   19.67 -text {*
   19.68 +text \<open>
   19.69    Kleene's fixed point theorems for continuous functions in pointed
   19.70    omega cpo's
   19.71 -*}
   19.72 +\<close>
   19.73  
   19.74  lemma fix_eq: "fix\<cdot>F = F\<cdot>(fix\<cdot>F)"
   19.75  apply (simp add: fix_def2)
   19.76 @@ -116,7 +116,7 @@
   19.77  lemma fix_eq5: "f = fix\<cdot>F \<Longrightarrow> f\<cdot>x = F\<cdot>f\<cdot>x"
   19.78  by (erule fix_eq4 [THEN cfun_fun_cong])
   19.79  
   19.80 -text {* strictness of @{term fix} *}
   19.81 +text \<open>strictness of @{term fix}\<close>
   19.82  
   19.83  lemma fix_bottom_iff: "(fix\<cdot>F = \<bottom>) = (F\<cdot>\<bottom> = \<bottom>)"
   19.84  apply (rule iffI)
   19.85 @@ -131,7 +131,7 @@
   19.86  lemma fix_defined: "F\<cdot>\<bottom> \<noteq> \<bottom> \<Longrightarrow> fix\<cdot>F \<noteq> \<bottom>"
   19.87  by (simp add: fix_bottom_iff)
   19.88  
   19.89 -text {* @{term fix} applied to identity and constant functions *}
   19.90 +text \<open>@{term fix} applied to identity and constant functions\<close>
   19.91  
   19.92  lemma fix_id: "(\<mu> x. x) = \<bottom>"
   19.93  by (simp add: fix_strict)
   19.94 @@ -139,7 +139,7 @@
   19.95  lemma fix_const: "(\<mu> x. c) = c"
   19.96  by (subst fix_eq, simp)
   19.97  
   19.98 -subsection {* Fixed point induction *}
   19.99 +subsection \<open>Fixed point induction\<close>
  19.100  
  19.101  lemma fix_ind: "\<lbrakk>adm P; P \<bottom>; \<And>x. P x \<Longrightarrow> P (F\<cdot>x)\<rbrakk> \<Longrightarrow> P (fix\<cdot>F)"
  19.102  unfolding fix_def2
  19.103 @@ -202,12 +202,12 @@
  19.104    shows "P (fix\<cdot>(Abs_cfun F)) (fix\<cdot>(Abs_cfun G))"
  19.105  by (rule parallel_fix_ind, simp_all add: assms)
  19.106  
  19.107 -subsection {* Fixed-points on product types *}
  19.108 +subsection \<open>Fixed-points on product types\<close>
  19.109  
  19.110 -text {*
  19.111 +text \<open>
  19.112    Bekic's Theorem: Simultaneous fixed points over pairs
  19.113    can be written in terms of separate fixed points.
  19.114 -*}
  19.115 +\<close>
  19.116  
  19.117  lemma fix_cprod:
  19.118    "fix\<cdot>(F::'a \<times> 'b \<rightarrow> 'a \<times> 'b) =
    20.1 --- a/src/HOL/HOLCF/Fixrec.thy	Wed Jan 13 23:02:28 2016 +0100
    20.2 +++ b/src/HOL/HOLCF/Fixrec.thy	Wed Jan 13 23:07:06 2016 +0100
    20.3 @@ -9,7 +9,7 @@
    20.4  keywords "fixrec" :: thy_decl
    20.5  begin
    20.6  
    20.7 -subsection {* Pattern-match monad *}
    20.8 +subsection \<open>Pattern-match monad\<close>
    20.9  
   20.10  default_sort cpo
   20.11  
   20.12 @@ -46,13 +46,13 @@
   20.13    "succeed\<cdot>x \<noteq> fail" "fail \<noteq> succeed\<cdot>x"
   20.14  by (simp_all add: succeed_def fail_def cont_Abs_match Abs_match_inject)
   20.15  
   20.16 -subsubsection {* Run operator *}
   20.17 +subsubsection \<open>Run operator\<close>
   20.18  
   20.19  definition
   20.20    run :: "'a match \<rightarrow> 'a::pcpo" where
   20.21    "run = (\<Lambda> m. sscase\<cdot>\<bottom>\<cdot>(fup\<cdot>ID)\<cdot>(Rep_match m))"
   20.22  
   20.23 -text {* rewrite rules for run *}
   20.24 +text \<open>rewrite rules for run\<close>
   20.25  
   20.26  lemma run_strict [simp]: "run\<cdot>\<bottom> = \<bottom>"
   20.27  unfolding run_def
   20.28 @@ -66,7 +66,7 @@
   20.29  unfolding run_def succeed_def
   20.30  by (simp add: cont_Rep_match cont_Abs_match Abs_match_inverse)
   20.31  
   20.32 -subsubsection {* Monad plus operator *}
   20.33 +subsubsection \<open>Monad plus operator\<close>
   20.34  
   20.35  definition
   20.36    mplus :: "'a match \<rightarrow> 'a match \<rightarrow> 'a match" where
   20.37 @@ -76,7 +76,7 @@
   20.38    mplus_syn :: "['a match, 'a match] \<Rightarrow> 'a match"  (infixr "+++" 65)  where
   20.39    "m1 +++ m2 == mplus\<cdot>m1\<cdot>m2"
   20.40  
   20.41 -text {* rewrite rules for mplus *}
   20.42 +text \<open>rewrite rules for mplus\<close>
   20.43  
   20.44  lemma mplus_strict [simp]: "\<bottom> +++ m = \<bottom>"
   20.45  unfolding mplus_def
   20.46 @@ -96,7 +96,7 @@
   20.47  lemma mplus_assoc: "(x +++ y) +++ z = x +++ (y +++ z)"
   20.48  by (cases x, simp_all)
   20.49  
   20.50 -subsection {* Match functions for built-in types *}
   20.51 +subsection \<open>Match functions for built-in types\<close>
   20.52  
   20.53  default_sort pcpo
   20.54  
   20.55 @@ -192,12 +192,12 @@
   20.56    "match_FF\<cdot>\<bottom>\<cdot>k = \<bottom>"
   20.57  by (simp_all add: match_FF_def)
   20.58  
   20.59 -subsection {* Mutual recursion *}
   20.60 +subsection \<open>Mutual recursion\<close>
   20.61  
   20.62 -text {*
   20.63 +text \<open>
   20.64    The following rules are used to prove unfolding theorems from
   20.65    fixed-point definitions of mutually recursive functions.
   20.66 -*}
   20.67 +\<close>
   20.68  
   20.69  lemma Pair_equalI: "\<lbrakk>x \<equiv> fst p; y \<equiv> snd p\<rbrakk> \<Longrightarrow> (x, y) \<equiv> p"
   20.70  by simp
   20.71 @@ -216,22 +216,22 @@
   20.72    "\<lbrakk>f \<equiv> fix\<cdot>(Abs_cfun F); cont F; adm P; P \<bottom>; \<And>x. P x \<Longrightarrow> P (F x)\<rbrakk> \<Longrightarrow> P f"
   20.73  by (simp add: fix_ind)
   20.74  
   20.75 -text {* lemma for proving rewrite rules *}
   20.76 +text \<open>lemma for proving rewrite rules\<close>
   20.77  
   20.78  lemma ssubst_lhs: "\<lbrakk>t = s; P s = Q\<rbrakk> \<Longrightarrow> P t = Q"
   20.79  by simp
   20.80  
   20.81  
   20.82 -subsection {* Initializing the fixrec package *}
   20.83 +subsection \<open>Initializing the fixrec package\<close>
   20.84  
   20.85  ML_file "Tools/holcf_library.ML"
   20.86  ML_file "Tools/fixrec.ML"
   20.87  
   20.88 -method_setup fixrec_simp = {*
   20.89 +method_setup fixrec_simp = \<open>
   20.90    Scan.succeed (SIMPLE_METHOD' o Fixrec.fixrec_simp_tac)
   20.91 -*} "pattern prover for fixrec constants"
   20.92 +\<close> "pattern prover for fixrec constants"
   20.93  
   20.94 -setup {*
   20.95 +setup \<open>
   20.96    Fixrec.add_matchers
   20.97      [ (@{const_name up}, @{const_name match_up}),
   20.98        (@{const_name sinl}, @{const_name match_sinl}),
   20.99 @@ -242,7 +242,7 @@
  20.100        (@{const_name TT}, @{const_name match_TT}),
  20.101        (@{const_name FF}, @{const_name match_FF}),
  20.102        (@{const_name bottom}, @{const_name match_bottom}) ]
  20.103 -*}
  20.104 +\<close>
  20.105  
  20.106  hide_const (open) succeed fail run
  20.107  
    21.1 --- a/src/HOL/HOLCF/Fun_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    21.2 +++ b/src/HOL/HOLCF/Fun_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    21.3 @@ -3,13 +3,13 @@
    21.4      Author:     Brian Huffman
    21.5  *)
    21.6  
    21.7 -section {* Class instances for the full function space *}
    21.8 +section \<open>Class instances for the full function space\<close>
    21.9  
   21.10  theory Fun_Cpo
   21.11  imports Adm
   21.12  begin
   21.13  
   21.14 -subsection {* Full function space is a partial order *}
   21.15 +subsection \<open>Full function space is a partial order\<close>
   21.16  
   21.17  instantiation "fun"  :: (type, below) below
   21.18  begin
   21.19 @@ -44,9 +44,9 @@
   21.20  lemma fun_belowD: "f \<sqsubseteq> g \<Longrightarrow> f x \<sqsubseteq> g x"
   21.21  by (simp add: below_fun_def)
   21.22  
   21.23 -subsection {* Full function space is chain complete *}
   21.24 +subsection \<open>Full function space is chain complete\<close>
   21.25  
   21.26 -text {* Properties of chains of functions. *}
   21.27 +text \<open>Properties of chains of functions.\<close>
   21.28  
   21.29  lemma fun_chain_iff: "chain S \<longleftrightarrow> (\<forall>x. chain (\<lambda>i. S i x))"
   21.30  unfolding chain_def fun_below_iff by auto
   21.31 @@ -57,7 +57,7 @@
   21.32  lemma ch2ch_lambda: "(\<And>x. chain (\<lambda>i. S i x)) \<Longrightarrow> chain S"
   21.33  by (simp add: chain_def below_fun_def)
   21.34  
   21.35 -text {* Type @{typ "'a::type => 'b::cpo"} is chain complete *}
   21.36 +text \<open>Type @{typ "'a::type => 'b::cpo"} is chain complete\<close>
   21.37  
   21.38  lemma is_lub_lambda:
   21.39    "(\<And>x. range (\<lambda>i. Y i x) <<| f x) \<Longrightarrow> range Y <<| f"
   21.40 @@ -87,7 +87,7 @@
   21.41      by simp
   21.42  qed
   21.43  
   21.44 -subsection {* Full function space is pointed *}
   21.45 +subsection \<open>Full function space is pointed\<close>
   21.46  
   21.47  lemma minimal_fun: "(\<lambda>x. \<bottom>) \<sqsubseteq> f"
   21.48  by (simp add: below_fun_def)
   21.49 @@ -104,19 +104,19 @@
   21.50  lemma lambda_strict: "(\<lambda>x. \<bottom>) = \<bottom>"
   21.51  by (rule bottomI, rule minimal_fun)
   21.52  
   21.53 -subsection {* Propagation of monotonicity and continuity *}
   21.54 +subsection \<open>Propagation of monotonicity and continuity\<close>
   21.55  
   21.56 -text {* The lub of a chain of monotone functions is monotone. *}
   21.57 +text \<open>The lub of a chain of monotone functions is monotone.\<close>
   21.58  
   21.59  lemma adm_monofun: "adm monofun"
   21.60  by (rule admI, simp add: lub_fun fun_chain_iff monofun_def lub_mono)
   21.61  
   21.62 -text {* The lub of a chain of continuous functions is continuous. *}
   21.63 +text \<open>The lub of a chain of continuous functions is continuous.\<close>
   21.64  
   21.65  lemma adm_cont: "adm cont"
   21.66  by (rule admI, simp add: lub_fun fun_chain_iff)
   21.67  
   21.68 -text {* Function application preserves monotonicity and continuity. *}
   21.69 +text \<open>Function application preserves monotonicity and continuity.\<close>
   21.70  
   21.71  lemma mono2mono_fun: "monofun f \<Longrightarrow> monofun (\<lambda>x. f x y)"
   21.72  by (simp add: monofun_def fun_below_iff)
   21.73 @@ -130,10 +130,10 @@
   21.74  lemma cont_fun: "cont (\<lambda>f. f x)"
   21.75  using cont_id by (rule cont2cont_fun)
   21.76  
   21.77 -text {*
   21.78 +text \<open>
   21.79    Lambda abstraction preserves monotonicity and continuity.
   21.80 -  (Note @{text "(\<lambda>x. \<lambda>y. f x y) = f"}.)
   21.81 -*}
   21.82 +  (Note \<open>(\<lambda>x. \<lambda>y. f x y) = f\<close>.)
   21.83 +\<close>
   21.84  
   21.85  lemma mono2mono_lambda:
   21.86    assumes f: "\<And>y. monofun (\<lambda>x. f x y)" shows "monofun f"
   21.87 @@ -143,7 +143,7 @@
   21.88    assumes f: "\<And>y. cont (\<lambda>x. f x y)" shows "cont f"
   21.89  by (rule contI, rule is_lub_lambda, rule contE [OF f])
   21.90  
   21.91 -text {* What D.A.Schmidt calls continuity of abstraction; never used here *}
   21.92 +text \<open>What D.A.Schmidt calls continuity of abstraction; never used here\<close>
   21.93  
   21.94  lemma contlub_lambda:
   21.95    "(\<And>x::'a::type. chain (\<lambda>i. S i x::'b::cpo))
    22.1 --- a/src/HOL/HOLCF/IMP/HoareEx.thy	Wed Jan 13 23:02:28 2016 +0100
    22.2 +++ b/src/HOL/HOLCF/IMP/HoareEx.thy	Wed Jan 13 23:07:06 2016 +0100
    22.3 @@ -7,11 +7,11 @@
    22.4  
    22.5  theory HoareEx imports Denotational begin
    22.6  
    22.7 -text {*
    22.8 +text \<open>
    22.9    An example from the HOLCF paper by Mueller, Nipkow, Oheimb, Slotosch
   22.10    @{cite MuellerNvOS99}.  It demonstrates fixpoint reasoning by showing
   22.11    the correctness of the Hoare rule for while-loops.
   22.12 -*}
   22.13 +\<close>
   22.14  
   22.15  type_synonym assn = "state => bool"
   22.16  
   22.17 @@ -24,7 +24,7 @@
   22.18    apply (unfold hoare_valid_def)
   22.19    apply (simp (no_asm))
   22.20    apply (rule fix_ind)
   22.21 -    apply (simp (no_asm)) -- "simplifier with enhanced @{text adm}-tactic"
   22.22 +    apply (simp (no_asm)) \<comment> "simplifier with enhanced \<open>adm\<close>-tactic"
   22.23     apply (simp (no_asm))
   22.24    apply (simp (no_asm))
   22.25    apply blast
    23.1 --- a/src/HOL/HOLCF/Library/Bool_Discrete.thy	Wed Jan 13 23:02:28 2016 +0100
    23.2 +++ b/src/HOL/HOLCF/Library/Bool_Discrete.thy	Wed Jan 13 23:07:06 2016 +0100
    23.3 @@ -2,13 +2,13 @@
    23.4      Author:     Brian Huffman
    23.5  *)
    23.6  
    23.7 -section {* Discrete cpo instance for booleans *}
    23.8 +section \<open>Discrete cpo instance for booleans\<close>
    23.9  
   23.10  theory Bool_Discrete
   23.11  imports HOLCF
   23.12  begin
   23.13  
   23.14 -text {* Discrete cpo instance for @{typ bool}. *}
   23.15 +text \<open>Discrete cpo instance for @{typ bool}.\<close>
   23.16  
   23.17  instantiation bool :: discrete_cpo
   23.18  begin
   23.19 @@ -21,9 +21,9 @@
   23.20  
   23.21  end
   23.22  
   23.23 -text {*
   23.24 +text \<open>
   23.25    TODO: implement a command to automate discrete predomain instances.
   23.26 -*}
   23.27 +\<close>
   23.28  
   23.29  instantiation bool :: predomain
   23.30  begin
    24.1 --- a/src/HOL/HOLCF/Library/Char_Discrete.thy	Wed Jan 13 23:02:28 2016 +0100
    24.2 +++ b/src/HOL/HOLCF/Library/Char_Discrete.thy	Wed Jan 13 23:07:06 2016 +0100
    24.3 @@ -2,13 +2,13 @@
    24.4      Author:     Brian Huffman
    24.5  *)
    24.6  
    24.7 -section {* Discrete cpo instance for 8-bit char type *}
    24.8 +section \<open>Discrete cpo instance for 8-bit char type\<close>
    24.9  
   24.10  theory Char_Discrete
   24.11  imports HOLCF
   24.12  begin
   24.13  
   24.14 -subsection {* Discrete cpo instance for @{typ nibble}. *}
   24.15 +subsection \<open>Discrete cpo instance for @{typ nibble}.\<close>
   24.16  
   24.17  instantiation nibble :: discrete_cpo
   24.18  begin
   24.19 @@ -21,9 +21,9 @@
   24.20  
   24.21  end
   24.22  
   24.23 -text {*
   24.24 +text \<open>
   24.25    TODO: implement a command to automate discrete predomain instances.
   24.26 -*}
   24.27 +\<close>
   24.28  
   24.29  instantiation nibble :: predomain
   24.30  begin
   24.31 @@ -54,7 +54,7 @@
   24.32  
   24.33  end
   24.34  
   24.35 -subsection {* Discrete cpo instance for @{typ char}. *}
   24.36 +subsection \<open>Discrete cpo instance for @{typ char}.\<close>
   24.37  
   24.38  instantiation char :: discrete_cpo
   24.39  begin
   24.40 @@ -67,9 +67,9 @@
   24.41  
   24.42  end
   24.43  
   24.44 -text {*
   24.45 +text \<open>
   24.46    TODO: implement a command to automate discrete predomain instances.
   24.47 -*}
   24.48 +\<close>
   24.49  
   24.50  instantiation char :: predomain
   24.51  begin
   24.52 @@ -100,7 +100,7 @@
   24.53  
   24.54  end
   24.55  
   24.56 -subsection {* Using chars with Fixrec *}
   24.57 +subsection \<open>Using chars with Fixrec\<close>
   24.58  
   24.59  definition match_Char :: "char \<rightarrow> (nibble \<rightarrow> nibble \<rightarrow> 'a match) \<rightarrow> 'a match"
   24.60    where "match_Char = (\<Lambda> c k. case c of Char a b \<Rightarrow> k\<cdot>a\<cdot>b)"
   24.61 @@ -221,7 +221,7 @@
   24.62    "match_NibbleF\<cdot>c\<cdot>k = (if c = NibbleF then k else Fixrec.fail)"
   24.63  by (simp add: match_NibbleF_def)
   24.64  
   24.65 -setup {*
   24.66 +setup \<open>
   24.67    Fixrec.add_matchers
   24.68      [ (@{const_name Char}, @{const_name match_Char}),
   24.69        (@{const_name Nibble0}, @{const_name match_Nibble0}),
   24.70 @@ -240,6 +240,6 @@
   24.71        (@{const_name NibbleD}, @{const_name match_NibbleD}),
   24.72        (@{const_name NibbleE}, @{const_name match_NibbleE}),
   24.73        (@{const_name NibbleF}, @{const_name match_NibbleF}) ]
   24.74 -*}
   24.75 +\<close>
   24.76  
   24.77  end
    25.1 --- a/src/HOL/HOLCF/Library/Defl_Bifinite.thy	Wed Jan 13 23:02:28 2016 +0100
    25.2 +++ b/src/HOL/HOLCF/Library/Defl_Bifinite.thy	Wed Jan 13 23:07:06 2016 +0100
    25.3 @@ -2,17 +2,17 @@
    25.4      Author:     Brian Huffman
    25.5  *)
    25.6  
    25.7 -section {* Algebraic deflations are a bifinite domain *}
    25.8 +section \<open>Algebraic deflations are a bifinite domain\<close>
    25.9  
   25.10  theory Defl_Bifinite
   25.11  imports HOLCF "~~/src/HOL/Library/Infinite_Set"
   25.12  begin
   25.13  
   25.14 -subsection {* Lemmas about MOST *}
   25.15 +subsection \<open>Lemmas about MOST\<close>
   25.16  
   25.17  default_sort type
   25.18  
   25.19 -subsection {* Eventually constant sequences *}
   25.20 +subsection \<open>Eventually constant sequences\<close>
   25.21  
   25.22  definition
   25.23    eventually_constant :: "(nat \<Rightarrow> 'a) \<Rightarrow> bool"
   25.24 @@ -48,7 +48,7 @@
   25.25    "eventually_constant (\<lambda>i. S (Suc i)) \<Longrightarrow> eventually_constant (\<lambda>i. S i)"
   25.26  by (rule eventually_constant_Suc_iff [THEN iffD1])
   25.27  
   25.28 -subsection {* Limits of eventually constant sequences *}
   25.29 +subsection \<open>Limits of eventually constant sequences\<close>
   25.30  
   25.31  definition
   25.32    eventual :: "(nat \<Rightarrow> 'a) \<Rightarrow> 'a" where
   25.33 @@ -120,7 +120,7 @@
   25.34  apply simp
   25.35  done
   25.36  
   25.37 -subsection {* Constructing finite deflations by iteration *}
   25.38 +subsection \<open>Constructing finite deflations by iteration\<close>
   25.39  
   25.40  default_sort cpo
   25.41  
   25.42 @@ -144,7 +144,7 @@
   25.43  where
   25.44    "eventual_iterate f = eventual (\<lambda>n. iterate n\<cdot>f)"
   25.45  
   25.46 -text {* A pre-deflation is like a deflation, but not idempotent. *}
   25.47 +text \<open>A pre-deflation is like a deflation, but not idempotent.\<close>
   25.48  
   25.49  locale pre_deflation =
   25.50    fixes f :: "'a \<rightarrow> 'a::cpo"
   25.51 @@ -301,7 +301,7 @@
   25.52    interpret d: finite_deflation d by fact
   25.53    let ?e = "d oo f"
   25.54    interpret e: pre_deflation "d oo f"
   25.55 -    using `finite_deflation d` f
   25.56 +    using \<open>finite_deflation d\<close> f
   25.57      by (rule pre_deflation_oo)
   25.58    let ?g = "eventual (\<lambda>n. iterate n\<cdot>?e)"
   25.59    show ?thesis
   25.60 @@ -338,7 +338,7 @@
   25.61  apply (rule eventual_mono)
   25.62  apply (rule pre_deflation.eventually_constant_iterate [OF f])
   25.63  apply (rule pre_deflation.eventually_constant_iterate [OF g])
   25.64 -apply (rule monofun_cfun_arg [OF `f \<sqsubseteq> g`])
   25.65 +apply (rule monofun_cfun_arg [OF \<open>f \<sqsubseteq> g\<close>])
   25.66  done
   25.67  
   25.68  lemma cont2cont_eventual_iterate_oo:
   25.69 @@ -380,15 +380,15 @@
   25.70      have "compact (d\<cdot>x)"
   25.71        using d by (rule finite_deflation.compact)
   25.72      then have "compact x"
   25.73 -      using `d\<cdot>x = x` by simp
   25.74 +      using \<open>d\<cdot>x = x\<close> by simp
   25.75      then have "compact (\<Squnion>i. f (Y i)\<cdot>x)"
   25.76 -      using `(\<Squnion>i. f (Y i)\<cdot>x) = x` by simp
   25.77 +      using \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> by simp
   25.78      then have "\<exists>n. max_in_chain n (\<lambda>i. f (Y i)\<cdot>x)"
   25.79        by - (rule compact_imp_max_in_chain, simp add: fY, assumption)
   25.80      then obtain n where n: "max_in_chain n (\<lambda>i. f (Y i)\<cdot>x)" ..
   25.81      then have "f (Y n)\<cdot>x = x"
   25.82 -      using `(\<Squnion>i. f (Y i)\<cdot>x) = x` fY by (simp add: maxinch_is_thelub)
   25.83 -    with `d\<cdot>x = x` have "?e (Y n)\<cdot>x = x"
   25.84 +      using \<open>(\<Squnion>i. f (Y i)\<cdot>x) = x\<close> fY by (simp add: maxinch_is_thelub)
   25.85 +    with \<open>d\<cdot>x = x\<close> have "?e (Y n)\<cdot>x = x"
   25.86        by (simp add: eventual_iterate_oo_fixed_iff [OF d below])
   25.87      moreover have "?e (Y n)\<cdot>x \<sqsubseteq> (\<Squnion>i. ?e (Y i)\<cdot>x)"
   25.88        by (rule is_ub_thelub, simp add: eY)
   25.89 @@ -404,7 +404,7 @@
   25.90    qed
   25.91  qed
   25.92  
   25.93 -subsection {* Intersection of algebraic deflations *}
   25.94 +subsection \<open>Intersection of algebraic deflations\<close>
   25.95  
   25.96  default_sort bifinite
   25.97  
   25.98 @@ -545,7 +545,7 @@
   25.99  lemma compact_meet_defl2: "compact b \<Longrightarrow> compact (meet_defl\<cdot>a\<cdot>b)"
  25.100  by (subst meet_defl.commute, rule compact_meet_defl1)
  25.101  
  25.102 -subsection {* Chain of approx functions on algebraic deflations *}
  25.103 +subsection \<open>Chain of approx functions on algebraic deflations\<close>
  25.104  
  25.105  context bifinite_approx_chain
  25.106  begin
  25.107 @@ -587,7 +587,7 @@
  25.108  
  25.109  end
  25.110  
  25.111 -subsection {* Algebraic deflations are a bifinite domain *}
  25.112 +subsection \<open>Algebraic deflations are a bifinite domain\<close>
  25.113  
  25.114  instance defl :: (bifinite) bifinite
  25.115  proof
  25.116 @@ -599,7 +599,7 @@
  25.117      by (fast intro: bifinite_approx_chain.defl_approx)
  25.118  qed
  25.119  
  25.120 -subsection {* Algebraic deflations are representable *}
  25.121 +subsection \<open>Algebraic deflations are representable\<close>
  25.122  
  25.123  default_sort "domain"
  25.124  
    26.1 --- a/src/HOL/HOLCF/Library/HOL_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    26.2 +++ b/src/HOL/HOLCF/Library/HOL_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    26.3 @@ -2,7 +2,7 @@
    26.4      Author:     Brian Huffman
    26.5  *)
    26.6  
    26.7 -section {* Cpo class instances for all HOL types *}
    26.8 +section \<open>Cpo class instances for all HOL types\<close>
    26.9  
   26.10  theory HOL_Cpo
   26.11  imports
    27.1 --- a/src/HOL/HOLCF/Library/Int_Discrete.thy	Wed Jan 13 23:02:28 2016 +0100
    27.2 +++ b/src/HOL/HOLCF/Library/Int_Discrete.thy	Wed Jan 13 23:07:06 2016 +0100
    27.3 @@ -2,13 +2,13 @@
    27.4      Author:     Brian Huffman
    27.5  *)
    27.6  
    27.7 -section {* Discrete cpo instance for integers *}
    27.8 +section \<open>Discrete cpo instance for integers\<close>
    27.9  
   27.10  theory Int_Discrete
   27.11  imports HOLCF
   27.12  begin
   27.13  
   27.14 -text {* Discrete cpo instance for @{typ int}. *}
   27.15 +text \<open>Discrete cpo instance for @{typ int}.\<close>
   27.16  
   27.17  instantiation int :: discrete_cpo
   27.18  begin
   27.19 @@ -21,9 +21,9 @@
   27.20  
   27.21  end
   27.22  
   27.23 -text {*
   27.24 +text \<open>
   27.25    TODO: implement a command to automate discrete predomain instances.
   27.26 -*}
   27.27 +\<close>
   27.28  
   27.29  instantiation int :: predomain
   27.30  begin
    28.1 --- a/src/HOL/HOLCF/Library/List_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    28.2 +++ b/src/HOL/HOLCF/Library/List_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    28.3 @@ -2,13 +2,13 @@
    28.4      Author:     Brian Huffman
    28.5  *)
    28.6  
    28.7 -section {* Lists as a complete partial order *}
    28.8 +section \<open>Lists as a complete partial order\<close>
    28.9  
   28.10  theory List_Cpo
   28.11  imports HOLCF
   28.12  begin
   28.13  
   28.14 -subsection {* Lists are a partial order *}
   28.15 +subsection \<open>Lists are a partial order\<close>
   28.16  
   28.17  instantiation list :: (po) po
   28.18  begin
   28.19 @@ -55,7 +55,7 @@
   28.20    assumes 1: "P [] []"
   28.21    assumes 2: "\<And>x y xs ys. \<lbrakk>x \<sqsubseteq> y; xs \<sqsubseteq> ys; P xs ys\<rbrakk> \<Longrightarrow> P (x # xs) (y # ys)"
   28.22    shows "P xs ys"
   28.23 -using `xs \<sqsubseteq> ys`
   28.24 +using \<open>xs \<sqsubseteq> ys\<close>
   28.25  proof (induct xs arbitrary: ys)
   28.26    case Nil thus ?case by (simp add: 1)
   28.27  next
   28.28 @@ -100,20 +100,20 @@
   28.29    assumes 1: "P (\<lambda>i. [])"
   28.30    assumes 2: "\<And>A B. chain A \<Longrightarrow> chain B \<Longrightarrow> P B \<Longrightarrow> P (\<lambda>i. A i # B i)"
   28.31    shows "P S"
   28.32 -using `chain S`
   28.33 +using \<open>chain S\<close>
   28.34  proof (induct "S 0" arbitrary: S)
   28.35    case Nil
   28.36 -  have "\<forall>i. S 0 \<sqsubseteq> S i" by (simp add: chain_mono [OF `chain S`])
   28.37 +  have "\<forall>i. S 0 \<sqsubseteq> S i" by (simp add: chain_mono [OF \<open>chain S\<close>])
   28.38    with Nil have "\<forall>i. S i = []" by simp
   28.39    thus ?case by (simp add: 1)
   28.40  next
   28.41    case (Cons x xs)
   28.42 -  have "\<forall>i. S 0 \<sqsubseteq> S i" by (simp add: chain_mono [OF `chain S`])
   28.43 +  have "\<forall>i. S 0 \<sqsubseteq> S i" by (simp add: chain_mono [OF \<open>chain S\<close>])
   28.44    hence *: "\<forall>i. S i \<noteq> []" by (rule all_forward, insert Cons) auto
   28.45    have "chain (\<lambda>i. hd (S i))" and "chain (\<lambda>i. tl (S i))"
   28.46 -    using `chain S` by simp_all
   28.47 +    using \<open>chain S\<close> by simp_all
   28.48    moreover have "P (\<lambda>i. tl (S i))"
   28.49 -    using `chain S` and `x # xs = S 0` [symmetric]
   28.50 +    using \<open>chain S\<close> and \<open>x # xs = S 0\<close> [symmetric]
   28.51      by (simp add: Cons(1))
   28.52    ultimately have "P (\<lambda>i. hd (S i) # tl (S i))"
   28.53      by (rule 2)
   28.54 @@ -126,7 +126,7 @@
   28.55      A B where "chain A" and "chain B" and "S = (\<lambda>i. A i # B i)"
   28.56  using S by (induct rule: list_chain_induct) simp_all
   28.57  
   28.58 -subsection {* Lists are a complete partial order *}
   28.59 +subsection \<open>Lists are a complete partial order\<close>
   28.60  
   28.61  lemma is_lub_Cons:
   28.62    assumes A: "range A <<| x"
   28.63 @@ -147,7 +147,7 @@
   28.64    qed
   28.65  qed
   28.66  
   28.67 -subsection {* Continuity of list operations *}
   28.68 +subsection \<open>Continuity of list operations\<close>
   28.69  
   28.70  lemma cont2cont_Cons [simp, cont2cont]:
   28.71    assumes f: "cont (\<lambda>x. f x)"
   28.72 @@ -193,8 +193,8 @@
   28.73    shows "cont (\<lambda>x. case f x of [] \<Rightarrow> g x | y # ys \<Rightarrow> h x y ys)"
   28.74  using assms by (simp add: cont2cont_case_list prod_cont_iff)
   28.75  
   28.76 -text {* The simple version (due to Joachim Breitner) is needed if the
   28.77 -  element type of the list is not a cpo. *}
   28.78 +text \<open>The simple version (due to Joachim Breitner) is needed if the
   28.79 +  element type of the list is not a cpo.\<close>
   28.80  
   28.81  lemma cont2cont_case_list_simple [simp, cont2cont]:
   28.82    assumes "cont (\<lambda>x. f1 x)"
   28.83 @@ -202,7 +202,7 @@
   28.84    shows "cont (\<lambda>x. case l of [] \<Rightarrow> f1 x | y # ys \<Rightarrow> f2 x y ys)"
   28.85  using assms by (cases l) auto
   28.86  
   28.87 -text {* Lemma for proving continuity of recursive list functions: *}
   28.88 +text \<open>Lemma for proving continuity of recursive list functions:\<close>
   28.89  
   28.90  lemma list_contI:
   28.91    fixes f :: "'a::cpo list \<Rightarrow> 'b::cpo"
   28.92 @@ -233,7 +233,7 @@
   28.93      done
   28.94  qed
   28.95  
   28.96 -text {* Continuity rule for map *}
   28.97 +text \<open>Continuity rule for map\<close>
   28.98  
   28.99  lemma cont2cont_map [simp, cont2cont]:
  28.100    assumes f: "cont (\<lambda>(x, y). f x y)"
  28.101 @@ -246,11 +246,11 @@
  28.102  apply (induct_tac y, simp, simp)
  28.103  done
  28.104  
  28.105 -text {* There are probably lots of other list operations that also
  28.106 +text \<open>There are probably lots of other list operations that also
  28.107  deserve to have continuity lemmas.  I'll add more as they are
  28.108 -needed. *}
  28.109 +needed.\<close>
  28.110  
  28.111 -subsection {* Lists are a discrete cpo *}
  28.112 +subsection \<open>Lists are a discrete cpo\<close>
  28.113  
  28.114  instance list :: (discrete_cpo) discrete_cpo
  28.115  proof
  28.116 @@ -259,7 +259,7 @@
  28.117      by (induct xs arbitrary: ys, case_tac [!] ys, simp_all)
  28.118  qed
  28.119  
  28.120 -subsection {* Compactness and chain-finiteness *}
  28.121 +subsection \<open>Compactness and chain-finiteness\<close>
  28.122  
  28.123  lemma compact_Nil [simp]: "compact []"
  28.124  apply (rule compactI2)
  28.125 @@ -298,7 +298,7 @@
  28.126      by (rule compact_imp_max_in_chain)
  28.127  qed
  28.128  
  28.129 -subsection {* Using lists with fixrec *}
  28.130 +subsection \<open>Using lists with fixrec\<close>
  28.131  
  28.132  definition
  28.133    match_Nil :: "'a::cpo list \<rightarrow> 'b match \<rightarrow> 'b match"
  28.134 @@ -320,10 +320,10 @@
  28.135    "match_Cons\<cdot>(x # xs)\<cdot>k = k\<cdot>x\<cdot>xs"
  28.136  unfolding match_Cons_def by simp_all
  28.137  
  28.138 -setup {*
  28.139 +setup \<open>
  28.140    Fixrec.add_matchers
  28.141      [ (@{const_name Nil}, @{const_name match_Nil}),
  28.142        (@{const_name Cons}, @{const_name match_Cons}) ]
  28.143 -*}
  28.144 +\<close>
  28.145  
  28.146  end
    29.1 --- a/src/HOL/HOLCF/Library/List_Predomain.thy	Wed Jan 13 23:02:28 2016 +0100
    29.2 +++ b/src/HOL/HOLCF/Library/List_Predomain.thy	Wed Jan 13 23:07:06 2016 +0100
    29.3 @@ -2,19 +2,19 @@
    29.4      Author:     Brian Huffman
    29.5  *)
    29.6  
    29.7 -section {* Predomain class instance for HOL list type *}
    29.8 +section \<open>Predomain class instance for HOL list type\<close>
    29.9  
   29.10  theory List_Predomain
   29.11  imports List_Cpo Sum_Cpo
   29.12  begin
   29.13  
   29.14 -subsection {* Strict list type *}
   29.15 +subsection \<open>Strict list type\<close>
   29.16  
   29.17  domain 'a slist = SNil | SCons "'a" "'a slist"
   29.18  
   29.19 -text {* Polymorphic map function for strict lists. *}
   29.20 +text \<open>Polymorphic map function for strict lists.\<close>
   29.21  
   29.22 -text {* FIXME: The domain package should generate this! *}
   29.23 +text \<open>FIXME: The domain package should generate this!\<close>
   29.24  
   29.25  fixrec slist_map' :: "('a \<rightarrow> 'b) \<rightarrow> 'a slist \<rightarrow> 'b slist"
   29.26    where "slist_map'\<cdot>f\<cdot>SNil = SNil"
   29.27 @@ -60,9 +60,9 @@
   29.28  apply (simp add: cfun_below_iff ep_pair.e_p_below)
   29.29  done
   29.30  
   29.31 -text {*
   29.32 +text \<open>
   29.33    Types @{typ "'a list u"}. and @{typ "'a u slist"} are isomorphic.
   29.34 -*}
   29.35 +\<close>
   29.36  
   29.37  fixrec encode_list_u where
   29.38    "encode_list_u\<cdot>(up\<cdot>[]) = SNil" |
   29.39 @@ -94,7 +94,7 @@
   29.40  apply (case_tac "decode_list_u\<cdot>y", simp, simp)
   29.41  done
   29.42  
   29.43 -subsection {* Lists are a predomain *}
   29.44 +subsection \<open>Lists are a predomain\<close>
   29.45  
   29.46  definition list_liftdefl :: "udom u defl \<rightarrow> udom u defl"
   29.47    where "list_liftdefl = (\<Lambda> a. udefl\<cdot>(slist_defl\<cdot>(u_liftdefl\<cdot>a)))"
   29.48 @@ -129,7 +129,7 @@
   29.49  
   29.50  end
   29.51  
   29.52 -subsection {* Configuring domain package to work with list type *}
   29.53 +subsection \<open>Configuring domain package to work with list type\<close>
   29.54  
   29.55  lemma liftdefl_list [domain_defl_simps]:
   29.56    "LIFTDEFL('a::predomain list) = list_liftdefl\<cdot>LIFTDEFL('a)"
   29.57 @@ -167,8 +167,8 @@
   29.58  apply (simp add: slist_map'_slist_map' u_emb_bottom)
   29.59  done
   29.60  
   29.61 -setup {*
   29.62 +setup \<open>
   29.63    Domain_Take_Proofs.add_rec_type (@{type_name "list"}, [true])
   29.64 -*}
   29.65 +\<close>
   29.66  
   29.67  end
    30.1 --- a/src/HOL/HOLCF/Library/Nat_Discrete.thy	Wed Jan 13 23:02:28 2016 +0100
    30.2 +++ b/src/HOL/HOLCF/Library/Nat_Discrete.thy	Wed Jan 13 23:07:06 2016 +0100
    30.3 @@ -2,13 +2,13 @@
    30.4      Author:     Brian Huffman
    30.5  *)
    30.6  
    30.7 -section {* Discrete cpo instance for naturals *}
    30.8 +section \<open>Discrete cpo instance for naturals\<close>
    30.9  
   30.10  theory Nat_Discrete
   30.11  imports HOLCF
   30.12  begin
   30.13  
   30.14 -text {* Discrete cpo instance for @{typ nat}. *}
   30.15 +text \<open>Discrete cpo instance for @{typ nat}.\<close>
   30.16  
   30.17  instantiation nat :: discrete_cpo
   30.18  begin
   30.19 @@ -21,9 +21,9 @@
   30.20  
   30.21  end
   30.22  
   30.23 -text {*
   30.24 +text \<open>
   30.25    TODO: implement a command to automate discrete predomain instances.
   30.26 -*}
   30.27 +\<close>
   30.28  
   30.29  instantiation nat :: predomain
   30.30  begin
    31.1 --- a/src/HOL/HOLCF/Library/Option_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    31.2 +++ b/src/HOL/HOLCF/Library/Option_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    31.3 @@ -2,13 +2,13 @@
    31.4      Author:     Brian Huffman
    31.5  *)
    31.6  
    31.7 -section {* Cpo class instance for HOL option type *}
    31.8 +section \<open>Cpo class instance for HOL option type\<close>
    31.9  
   31.10  theory Option_Cpo
   31.11  imports HOLCF Sum_Cpo
   31.12  begin
   31.13  
   31.14 -subsection {* Ordering on option type *}
   31.15 +subsection \<open>Ordering on option type\<close>
   31.16  
   31.17  instantiation option :: (below) below
   31.18  begin
   31.19 @@ -49,7 +49,7 @@
   31.20  using assms unfolding below_option_def
   31.21  by (simp split: option.split_asm)
   31.22  
   31.23 -subsection {* Option type is a complete partial order *}
   31.24 +subsection \<open>Option type is a complete partial order\<close>
   31.25  
   31.26  instance option :: (po) po
   31.27  proof
   31.28 @@ -106,7 +106,7 @@
   31.29   apply (erule cpo_lubI)
   31.30  done
   31.31  
   31.32 -subsection {* Continuity of Some and case function *}
   31.33 +subsection \<open>Continuity of Some and case function\<close>
   31.34  
   31.35  lemma cont_Some: "cont Some"
   31.36  by (intro contI is_lub_Some cpo_lubI)
   31.37 @@ -141,7 +141,7 @@
   31.38    shows "cont (\<lambda>x. case f x of None \<Rightarrow> g x | Some a \<Rightarrow> h x a)"
   31.39  using assms by (simp add: cont2cont_case_option prod_cont_iff)
   31.40  
   31.41 -text {* Simple version for when the element type is not a cpo. *}
   31.42 +text \<open>Simple version for when the element type is not a cpo.\<close>
   31.43  
   31.44  lemma cont2cont_case_option_simple [simp, cont2cont]:
   31.45    assumes "cont (\<lambda>x. f x)"
   31.46 @@ -149,7 +149,7 @@
   31.47    shows "cont (\<lambda>x. case z of None \<Rightarrow> f x | Some a \<Rightarrow> g x a)"
   31.48  using assms by (cases z) auto
   31.49  
   31.50 -text {* Continuity rule for map. *}
   31.51 +text \<open>Continuity rule for map.\<close>
   31.52  
   31.53  lemma cont2cont_map_option [simp, cont2cont]:
   31.54    assumes f: "cont (\<lambda>(x, y). f x y)"
   31.55 @@ -157,7 +157,7 @@
   31.56    shows "cont (\<lambda>x. map_option (\<lambda>y. f x y) (g x))"
   31.57  using assms by (simp add: prod_cont_iff map_option_case)
   31.58  
   31.59 -subsection {* Compactness and chain-finiteness *}
   31.60 +subsection \<open>Compactness and chain-finiteness\<close>
   31.61  
   31.62  lemma compact_None [simp]: "compact None"
   31.63  apply (rule compactI2)
   31.64 @@ -190,7 +190,7 @@
   31.65  instance option :: (discrete_cpo) discrete_cpo
   31.66  by intro_classes (simp add: below_option_def split: option.split)
   31.67  
   31.68 -subsection {* Using option types with Fixrec *}
   31.69 +subsection \<open>Using option types with Fixrec\<close>
   31.70  
   31.71  definition
   31.72    "match_None = (\<Lambda> x k. case x of None \<Rightarrow> k | Some a \<Rightarrow> Fixrec.fail)"
   31.73 @@ -208,13 +208,13 @@
   31.74    "match_Some\<cdot>(Some a)\<cdot>k = k\<cdot>a"
   31.75  unfolding match_Some_def by simp_all
   31.76  
   31.77 -setup {*
   31.78 +setup \<open>
   31.79    Fixrec.add_matchers
   31.80      [ (@{const_name None}, @{const_name match_None}),
   31.81        (@{const_name Some}, @{const_name match_Some}) ]
   31.82 -*}
   31.83 +\<close>
   31.84  
   31.85 -subsection {* Option type is a predomain *}
   31.86 +subsection \<open>Option type is a predomain\<close>
   31.87  
   31.88  definition
   31.89    "encode_option = (\<Lambda> x. case x of None \<Rightarrow> Inl () | Some a \<Rightarrow> Inr a)"
   31.90 @@ -255,7 +255,7 @@
   31.91  
   31.92  end
   31.93  
   31.94 -subsection {* Configuring domain package to work with option type *}
   31.95 +subsection \<open>Configuring domain package to work with option type\<close>
   31.96  
   31.97  lemma liftdefl_option [domain_defl_simps]:
   31.98    "LIFTDEFL('a::predomain option) = LIFTDEFL(unit + 'a)"
   31.99 @@ -285,8 +285,8 @@
  31.100  unfolding isodefl'_def liftemb_option_def liftprj_option_def liftdefl_eq
  31.101  by (simp add: cfcomp1 u_map_map encode_option_option_map)
  31.102  
  31.103 -setup {*
  31.104 +setup \<open>
  31.105    Domain_Take_Proofs.add_rec_type (@{type_name "option"}, [true])
  31.106 -*}
  31.107 +\<close>
  31.108  
  31.109  end
    32.1 --- a/src/HOL/HOLCF/Library/Stream.thy	Wed Jan 13 23:02:28 2016 +0100
    32.2 +++ b/src/HOL/HOLCF/Library/Stream.thy	Wed Jan 13 23:07:06 2016 +0100
    32.3 @@ -2,7 +2,7 @@
    32.4      Author:     Franz Regensburger, David von Oheimb, Borislav Gajanovic
    32.5  *)
    32.6  
    32.7 -section {* General Stream domain *}
    32.8 +section \<open>General Stream domain\<close>
    32.9  
   32.10  theory Stream
   32.11  imports "../HOLCF" "~~/src/HOL/Library/Extended_Nat"
    33.1 --- a/src/HOL/HOLCF/Library/Sum_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    33.2 +++ b/src/HOL/HOLCF/Library/Sum_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    33.3 @@ -2,13 +2,13 @@
    33.4      Author:     Brian Huffman
    33.5  *)
    33.6  
    33.7 -section {* The cpo of disjoint sums *}
    33.8 +section \<open>The cpo of disjoint sums\<close>
    33.9  
   33.10  theory Sum_Cpo
   33.11  imports HOLCF
   33.12  begin
   33.13  
   33.14 -subsection {* Ordering on sum type *}
   33.15 +subsection \<open>Ordering on sum type\<close>
   33.16  
   33.17  instantiation sum :: (below, below) below
   33.18  begin
   33.19 @@ -54,7 +54,7 @@
   33.20        \<Longrightarrow> R"
   33.21  by (cases x, safe elim!: sum_below_elims, auto)
   33.22  
   33.23 -subsection {* Sum type is a complete partial order *}
   33.24 +subsection \<open>Sum type is a complete partial order\<close>
   33.25  
   33.26  instance sum :: (po, po) po
   33.27  proof
   33.28 @@ -128,7 +128,7 @@
   33.29   apply (erule cpo_lubI)
   33.30  done
   33.31  
   33.32 -subsection {* Continuity of \emph{Inl}, \emph{Inr}, and case function *}
   33.33 +subsection \<open>Continuity of \emph{Inl}, \emph{Inr}, and case function\<close>
   33.34  
   33.35  lemma cont_Inl: "cont Inl"
   33.36  by (intro contI is_lub_Inl cpo_lubI)
   33.37 @@ -175,7 +175,7 @@
   33.38    shows "cont (\<lambda>x. case h x of Inl a \<Rightarrow> f x a | Inr b \<Rightarrow> g x b)"
   33.39  using assms by (simp add: cont2cont_case_sum prod_cont_iff)
   33.40  
   33.41 -text {* Continuity of map function. *}
   33.42 +text \<open>Continuity of map function.\<close>
   33.43  
   33.44  lemma map_sum_eq: "map_sum f g = case_sum (\<lambda>a. Inl (f a)) (\<lambda>b. Inr (g b))"
   33.45  by (rule ext, case_tac x, simp_all)
   33.46 @@ -187,7 +187,7 @@
   33.47    shows "cont (\<lambda>x. map_sum (\<lambda>y. f x y) (\<lambda>y. g x y) (h x))"
   33.48  using assms by (simp add: map_sum_eq prod_cont_iff)
   33.49  
   33.50 -subsection {* Compactness and chain-finiteness *}
   33.51 +subsection \<open>Compactness and chain-finiteness\<close>
   33.52  
   33.53  lemma compact_Inl: "compact a \<Longrightarrow> compact (Inl a)"
   33.54  apply (rule compactI2)
   33.55 @@ -228,7 +228,7 @@
   33.56  instance sum :: (discrete_cpo, discrete_cpo) discrete_cpo
   33.57  by intro_classes (simp add: below_sum_def split: sum.split)
   33.58  
   33.59 -subsection {* Using sum types with fixrec *}
   33.60 +subsection \<open>Using sum types with fixrec\<close>
   33.61  
   33.62  definition
   33.63    "match_Inl = (\<Lambda> x k. case x of Inl a \<Rightarrow> k\<cdot>a | Inr b \<Rightarrow> Fixrec.fail)"
   33.64 @@ -246,13 +246,13 @@
   33.65    "match_Inr\<cdot>(Inr b)\<cdot>k = k\<cdot>b"
   33.66  unfolding match_Inr_def by simp_all
   33.67  
   33.68 -setup {*
   33.69 +setup \<open>
   33.70    Fixrec.add_matchers
   33.71      [ (@{const_name Inl}, @{const_name match_Inl}),
   33.72        (@{const_name Inr}, @{const_name match_Inr}) ]
   33.73 -*}
   33.74 +\<close>
   33.75  
   33.76 -subsection {* Disjoint sum is a predomain *}
   33.77 +subsection \<open>Disjoint sum is a predomain\<close>
   33.78  
   33.79  definition
   33.80    "encode_sum_u =
   33.81 @@ -272,7 +272,7 @@
   33.82  apply (rename_tac b, case_tac b, simp, simp)
   33.83  done
   33.84  
   33.85 -text {* A deflation combinator for making unpointed types *}
   33.86 +text \<open>A deflation combinator for making unpointed types\<close>
   33.87  
   33.88  definition udefl :: "udom defl \<rightarrow> udom u defl"
   33.89    where "udefl = defl_fun1 (strictify\<cdot>up) (fup\<cdot>ID) ID"
   33.90 @@ -327,7 +327,7 @@
   33.91  
   33.92  end
   33.93  
   33.94 -subsection {* Configuring domain package to work with sum type *}
   33.95 +subsection \<open>Configuring domain package to work with sum type\<close>
   33.96  
   33.97  lemma liftdefl_sum [domain_defl_simps]:
   33.98    "LIFTDEFL('a::predomain + 'b::predomain) =
   33.99 @@ -365,8 +365,8 @@
  33.100  apply (simp add: ssum_map_map u_emb_bottom)
  33.101  done
  33.102  
  33.103 -setup {*
  33.104 +setup \<open>
  33.105    Domain_Take_Proofs.add_rec_type (@{type_name "sum"}, [true, true])
  33.106 -*}
  33.107 +\<close>
  33.108  
  33.109  end
    34.1 --- a/src/HOL/HOLCF/Lift.thy	Wed Jan 13 23:02:28 2016 +0100
    34.2 +++ b/src/HOL/HOLCF/Lift.thy	Wed Jan 13 23:07:06 2016 +0100
    34.3 @@ -2,7 +2,7 @@
    34.4      Author:     Olaf Mueller
    34.5  *)
    34.6  
    34.7 -section {* Lifting types of class type to flat pcpo's *}
    34.8 +section \<open>Lifting types of class type to flat pcpo's\<close>
    34.9  
   34.10  theory Lift
   34.11  imports Discrete Up
   34.12 @@ -19,7 +19,7 @@
   34.13    Def :: "'a \<Rightarrow> 'a lift" where
   34.14    "Def x = Abs_lift (up\<cdot>(Discr x))"
   34.15  
   34.16 -subsection {* Lift as a datatype *}
   34.17 +subsection \<open>Lift as a datatype\<close>
   34.18  
   34.19  lemma lift_induct: "\<lbrakk>P \<bottom>; \<And>x. P (Def x)\<rbrakk> \<Longrightarrow> P y"
   34.20  apply (induct y)
   34.21 @@ -32,7 +32,7 @@
   34.22  old_rep_datatype "\<bottom>::'a lift" Def
   34.23    by (erule lift_induct) (simp_all add: Def_def Abs_lift_inject inst_lift_pcpo)
   34.24  
   34.25 -text {* @{term bottom} and @{term Def} *}
   34.26 +text \<open>@{term bottom} and @{term Def}\<close>
   34.27  
   34.28  lemma not_Undef_is_Def: "(x \<noteq> \<bottom>) = (\<exists>y. x = Def y)"
   34.29    by (cases x) simp_all
   34.30 @@ -40,14 +40,13 @@
   34.31  lemma lift_definedE: "\<lbrakk>x \<noteq> \<bottom>; \<And>a. x = Def a \<Longrightarrow> R\<rbrakk> \<Longrightarrow> R"
   34.32    by (cases x) simp_all
   34.33  
   34.34 -text {*
   34.35 -  For @{term "x ~= \<bottom>"} in assumptions @{text defined} replaces @{text
   34.36 -  x} by @{text "Def a"} in conclusion. *}
   34.37 +text \<open>
   34.38 +  For @{term "x ~= \<bottom>"} in assumptions \<open>defined\<close> replaces \<open>x\<close> by \<open>Def a\<close> in conclusion.\<close>
   34.39  
   34.40 -method_setup defined = {*
   34.41 +method_setup defined = \<open>
   34.42    Scan.succeed (fn ctxt => SIMPLE_METHOD'
   34.43      (eresolve_tac ctxt @{thms lift_definedE} THEN' asm_simp_tac ctxt))
   34.44 -*}
   34.45 +\<close>
   34.46  
   34.47  lemma DefE: "Def x = \<bottom> \<Longrightarrow> R"
   34.48    by simp
   34.49 @@ -62,7 +61,7 @@
   34.50  by (induct y, simp, simp add: Def_below_Def)
   34.51  
   34.52  
   34.53 -subsection {* Lift is flat *}
   34.54 +subsection \<open>Lift is flat\<close>
   34.55  
   34.56  instance lift :: (type) flat
   34.57  proof
   34.58 @@ -71,7 +70,7 @@
   34.59      by (induct x) auto
   34.60  qed
   34.61  
   34.62 -subsection {* Continuity of @{const case_lift} *}
   34.63 +subsection \<open>Continuity of @{const case_lift}\<close>
   34.64  
   34.65  lemma case_lift_eq: "case_lift \<bottom> f x = fup\<cdot>(\<Lambda> y. f (undiscr y))\<cdot>(Rep_lift x)"
   34.66  apply (induct x, unfold lift.case)
   34.67 @@ -83,7 +82,7 @@
   34.68    "\<lbrakk>\<And>y. cont (\<lambda>x. f x y); cont g\<rbrakk> \<Longrightarrow> cont (\<lambda>x. case_lift \<bottom> (f x) (g x))"
   34.69  unfolding case_lift_eq by (simp add: cont_Rep_lift)
   34.70  
   34.71 -subsection {* Further operations *}
   34.72 +subsection \<open>Further operations\<close>
   34.73  
   34.74  definition
   34.75    flift1 :: "('a \<Rightarrow> 'b::pcpo) \<Rightarrow> ('a lift \<rightarrow> 'b)"  (binder "FLIFT " 10)  where
    35.1 --- a/src/HOL/HOLCF/LowerPD.thy	Wed Jan 13 23:02:28 2016 +0100
    35.2 +++ b/src/HOL/HOLCF/LowerPD.thy	Wed Jan 13 23:07:06 2016 +0100
    35.3 @@ -2,13 +2,13 @@
    35.4      Author:     Brian Huffman
    35.5  *)
    35.6  
    35.7 -section {* Lower powerdomain *}
    35.8 +section \<open>Lower powerdomain\<close>
    35.9  
   35.10  theory LowerPD
   35.11  imports Compact_Basis
   35.12  begin
   35.13  
   35.14 -subsection {* Basis preorder *}
   35.15 +subsection \<open>Basis preorder\<close>
   35.16  
   35.17  definition
   35.18    lower_le :: "'a pd_basis \<Rightarrow> 'a pd_basis \<Rightarrow> bool" (infix "\<le>\<flat>" 50) where
   35.19 @@ -72,7 +72,7 @@
   35.20  done
   35.21  
   35.22  
   35.23 -subsection {* Type definition *}
   35.24 +subsection \<open>Type definition\<close>
   35.25  
   35.26  typedef 'a lower_pd  ("('(_')\<flat>)") =
   35.27    "{S::'a pd_basis set. lower_le.ideal S}"
   35.28 @@ -105,7 +105,7 @@
   35.29  using lower_principal_def pd_basis_countable
   35.30  by (rule lower_le.typedef_ideal_completion)
   35.31  
   35.32 -text {* Lower powerdomain is pointed *}
   35.33 +text \<open>Lower powerdomain is pointed\<close>
   35.34  
   35.35  lemma lower_pd_minimal: "lower_principal (PDUnit compact_bot) \<sqsubseteq> ys"
   35.36  by (induct ys rule: lower_pd.principal_induct, simp, simp)
   35.37 @@ -117,7 +117,7 @@
   35.38  by (rule lower_pd_minimal [THEN bottomI, symmetric])
   35.39  
   35.40  
   35.41 -subsection {* Monadic unit and plus *}
   35.42 +subsection \<open>Monadic unit and plus\<close>
   35.43  
   35.44  definition
   35.45    lower_unit :: "'a \<rightarrow> 'a lower_pd" where
   35.46 @@ -176,11 +176,11 @@
   35.47  lemmas lower_plus_left_commute = lower_add.left_commute
   35.48  lemmas lower_plus_left_absorb = lower_add.left_idem
   35.49  
   35.50 -text {* Useful for @{text "simp add: lower_plus_ac"} *}
   35.51 +text \<open>Useful for \<open>simp add: lower_plus_ac\<close>\<close>
   35.52  lemmas lower_plus_ac =
   35.53    lower_plus_assoc lower_plus_commute lower_plus_left_commute
   35.54  
   35.55 -text {* Useful for @{text "simp only: lower_plus_aci"} *}
   35.56 +text \<open>Useful for \<open>simp only: lower_plus_aci\<close>\<close>
   35.57  lemmas lower_plus_aci =
   35.58    lower_plus_ac lower_plus_absorb lower_plus_left_absorb
   35.59  
   35.60 @@ -267,7 +267,7 @@
   35.61  by (auto dest!: lower_pd.compact_imp_principal)
   35.62  
   35.63  
   35.64 -subsection {* Induction rules *}
   35.65 +subsection \<open>Induction rules\<close>
   35.66  
   35.67  lemma lower_pd_induct1:
   35.68    assumes P: "adm P"
   35.69 @@ -297,7 +297,7 @@
   35.70  done
   35.71  
   35.72  
   35.73 -subsection {* Monadic bind *}
   35.74 +subsection \<open>Monadic bind\<close>
   35.75  
   35.76  definition
   35.77    lower_bind_basis ::
   35.78 @@ -369,7 +369,7 @@
   35.79  by (induct xs, simp_all)
   35.80  
   35.81  
   35.82 -subsection {* Map *}
   35.83 +subsection \<open>Map\<close>
   35.84  
   35.85  definition
   35.86    lower_map :: "('a \<rightarrow> 'b) \<rightarrow> 'a lower_pd \<rightarrow> 'b lower_pd" where
   35.87 @@ -460,7 +460,7 @@
   35.88      by (rule finite_range_imp_finite_fixes)
   35.89  qed
   35.90  
   35.91 -subsection {* Lower powerdomain is bifinite *}
   35.92 +subsection \<open>Lower powerdomain is bifinite\<close>
   35.93  
   35.94  lemma approx_chain_lower_map:
   35.95    assumes "approx_chain a"
   35.96 @@ -475,7 +475,7 @@
   35.97      by (fast intro!: approx_chain_lower_map)
   35.98  qed
   35.99  
  35.100 -subsection {* Join *}
  35.101 +subsection \<open>Join\<close>
  35.102  
  35.103  definition
  35.104    lower_join :: "'a lower_pd lower_pd \<rightarrow> 'a lower_pd" where
    36.1 --- a/src/HOL/HOLCF/Map_Functions.thy	Wed Jan 13 23:02:28 2016 +0100
    36.2 +++ b/src/HOL/HOLCF/Map_Functions.thy	Wed Jan 13 23:07:06 2016 +0100
    36.3 @@ -2,13 +2,13 @@
    36.4      Author:     Brian Huffman
    36.5  *)
    36.6  
    36.7 -section {* Map functions for various types *}
    36.8 +section \<open>Map functions for various types\<close>
    36.9  
   36.10  theory Map_Functions
   36.11  imports Deflation
   36.12  begin
   36.13  
   36.14 -subsection {* Map operator for continuous function space *}
   36.15 +subsection \<open>Map operator for continuous function space\<close>
   36.16  
   36.17  default_sort cpo
   36.18  
   36.19 @@ -105,7 +105,7 @@
   36.20      by (rule finite_range_imp_finite_fixes)
   36.21  qed
   36.22  
   36.23 -text {* Finite deflations are compact elements of the function space *}
   36.24 +text \<open>Finite deflations are compact elements of the function space\<close>
   36.25  
   36.26  lemma finite_deflation_imp_compact: "finite_deflation d \<Longrightarrow> compact d"
   36.27  apply (frule finite_deflation_imp_deflation)
   36.28 @@ -115,7 +115,7 @@
   36.29  apply (simp only: finite_deflation_cfun_map)
   36.30  done
   36.31  
   36.32 -subsection {* Map operator for product type *}
   36.33 +subsection \<open>Map operator for product type\<close>
   36.34  
   36.35  definition
   36.36    prod_map :: "('a \<rightarrow> 'b) \<rightarrow> ('c \<rightarrow> 'd) \<rightarrow> 'a \<times> 'c \<rightarrow> 'b \<times> 'd"
   36.37 @@ -172,7 +172,7 @@
   36.38      by (rule finite_subset, simp add: d1.finite_fixes d2.finite_fixes)
   36.39  qed
   36.40  
   36.41 -subsection {* Map function for lifted cpo *}
   36.42 +subsection \<open>Map function for lifted cpo\<close>
   36.43  
   36.44  definition
   36.45    u_map :: "('a \<rightarrow> 'b) \<rightarrow> 'a u \<rightarrow> 'b u"
   36.46 @@ -218,7 +218,7 @@
   36.47      by (rule finite_subset, simp add: d.finite_fixes)
   36.48  qed
   36.49  
   36.50 -subsection {* Map function for strict products *}
   36.51 +subsection \<open>Map function for strict products\<close>
   36.52  
   36.53  default_sort pcpo
   36.54  
   36.55 @@ -299,7 +299,7 @@
   36.56      by (rule finite_subset, simp add: d1.finite_fixes d2.finite_fixes)
   36.57  qed
   36.58  
   36.59 -subsection {* Map function for strict sums *}
   36.60 +subsection \<open>Map function for strict sums\<close>
   36.61  
   36.62  definition
   36.63    ssum_map :: "('a \<rightarrow> 'b) \<rightarrow> ('c \<rightarrow> 'd) \<rightarrow> 'a \<oplus> 'c \<rightarrow> 'b \<oplus> 'd"
   36.64 @@ -383,7 +383,7 @@
   36.65      by (rule finite_subset, simp add: d1.finite_fixes d2.finite_fixes)
   36.66  qed
   36.67  
   36.68 -subsection {* Map operator for strict function space *}
   36.69 +subsection \<open>Map operator for strict function space\<close>
   36.70  
   36.71  definition
   36.72    sfun_map :: "('b \<rightarrow> 'a) \<rightarrow> ('c \<rightarrow> 'd) \<rightarrow> ('a \<rightarrow>! 'c) \<rightarrow> ('b \<rightarrow>! 'd)"
   36.73 @@ -461,7 +461,7 @@
   36.74    then show "finite {f. sfun_map\<cdot>d1\<cdot>d2\<cdot>f = f}"
   36.75      unfolding sfun_map_def sfun_eq_iff
   36.76      by (simp add: strictify_cancel
   36.77 -         deflation_strict `deflation d1` `deflation d2`)
   36.78 +         deflation_strict \<open>deflation d1\<close> \<open>deflation d2\<close>)
   36.79  qed
   36.80  
   36.81  end
    37.1 --- a/src/HOL/HOLCF/One.thy	Wed Jan 13 23:02:28 2016 +0100
    37.2 +++ b/src/HOL/HOLCF/One.thy	Wed Jan 13 23:07:06 2016 +0100
    37.3 @@ -2,7 +2,7 @@
    37.4      Author:     Oscar Slotosch
    37.5  *)
    37.6  
    37.7 -section {* The unit domain *}
    37.8 +section \<open>The unit domain\<close>
    37.9  
   37.10  theory One
   37.11  imports Lift
   37.12 @@ -17,7 +17,7 @@
   37.13  definition ONE :: "one"
   37.14    where "ONE == Def ()"
   37.15  
   37.16 -text {* Exhaustion and Elimination for type @{typ one} *}
   37.17 +text \<open>Exhaustion and Elimination for type @{typ one}\<close>
   37.18  
   37.19  lemma Exh_one: "t = \<bottom> \<or> t = ONE"
   37.20  unfolding ONE_def by (induct t) simp_all
   37.21 @@ -50,7 +50,7 @@
   37.22  lemma compact_ONE: "compact ONE"
   37.23  by (rule compact_chfin)
   37.24  
   37.25 -text {* Case analysis function for type @{typ one} *}
   37.26 +text \<open>Case analysis function for type @{typ one}\<close>
   37.27  
   37.28  definition
   37.29    one_case :: "'a::pcpo \<rightarrow> one \<rightarrow> 'a" where
    38.1 --- a/src/HOL/HOLCF/Pcpo.thy	Wed Jan 13 23:02:28 2016 +0100
    38.2 +++ b/src/HOL/HOLCF/Pcpo.thy	Wed Jan 13 23:07:06 2016 +0100
    38.3 @@ -2,21 +2,21 @@
    38.4      Author:     Franz Regensburger
    38.5  *)
    38.6  
    38.7 -section {* Classes cpo and pcpo *}
    38.8 +section \<open>Classes cpo and pcpo\<close>
    38.9  
   38.10  theory Pcpo
   38.11  imports Porder
   38.12  begin
   38.13  
   38.14 -subsection {* Complete partial orders *}
   38.15 +subsection \<open>Complete partial orders\<close>
   38.16  
   38.17 -text {* The class cpo of chain complete partial orders *}
   38.18 +text \<open>The class cpo of chain complete partial orders\<close>
   38.19  
   38.20  class cpo = po +
   38.21    assumes cpo: "chain S \<Longrightarrow> \<exists>x. range S <<| x"
   38.22  begin
   38.23  
   38.24 -text {* in cpo's everthing equal to THE lub has lub properties for every chain *}
   38.25 +text \<open>in cpo's everthing equal to THE lub has lub properties for every chain\<close>
   38.26  
   38.27  lemma cpo_lubI: "chain S \<Longrightarrow> range S <<| (\<Squnion>i. S i)"
   38.28    by (fast dest: cpo elim: is_lub_lub)
   38.29 @@ -24,7 +24,7 @@
   38.30  lemma thelubE: "\<lbrakk>chain S; (\<Squnion>i. S i) = l\<rbrakk> \<Longrightarrow> range S <<| l"
   38.31    by (blast dest: cpo intro: is_lub_lub)
   38.32  
   38.33 -text {* Properties of the lub *}
   38.34 +text \<open>Properties of the lub\<close>
   38.35  
   38.36  lemma is_ub_thelub: "chain S \<Longrightarrow> S x \<sqsubseteq> (\<Squnion>i. S i)"
   38.37    by (blast dest: cpo intro: is_lub_lub [THEN is_lub_rangeD1])
   38.38 @@ -78,14 +78,14 @@
   38.39  apply (force elim!: is_ub_thelub)
   38.40  done
   38.41  
   38.42 -text {* the @{text "\<sqsubseteq>"} relation between two chains is preserved by their lubs *}
   38.43 +text \<open>the \<open>\<sqsubseteq>\<close> relation between two chains is preserved by their lubs\<close>
   38.44  
   38.45  lemma lub_mono:
   38.46    "\<lbrakk>chain X; chain Y; \<And>i. X i \<sqsubseteq> Y i\<rbrakk> 
   38.47      \<Longrightarrow> (\<Squnion>i. X i) \<sqsubseteq> (\<Squnion>i. Y i)"
   38.48  by (fast elim: lub_below below_lub)
   38.49  
   38.50 -text {* the = relation between two chains is preserved by their lubs *}
   38.51 +text \<open>the = relation between two chains is preserved by their lubs\<close>
   38.52  
   38.53  lemma lub_eq:
   38.54    "(\<And>i. X i = Y i) \<Longrightarrow> (\<Squnion>i. X i) = (\<Squnion>i. Y i)"
   38.55 @@ -135,9 +135,9 @@
   38.56  
   38.57  end
   38.58  
   38.59 -subsection {* Pointed cpos *}
   38.60 +subsection \<open>Pointed cpos\<close>
   38.61  
   38.62 -text {* The class pcpo of pointed cpos *}
   38.63 +text \<open>The class pcpo of pointed cpos\<close>
   38.64  
   38.65  class pcpo = cpo +
   38.66    assumes least: "\<exists>x. \<forall>y. x \<sqsubseteq> y"
   38.67 @@ -157,22 +157,22 @@
   38.68  
   38.69  end
   38.70  
   38.71 -text {* Old "UU" syntax: *}
   38.72 +text \<open>Old "UU" syntax:\<close>
   38.73  
   38.74  syntax UU :: logic
   38.75  
   38.76  translations "UU" => "CONST bottom"
   38.77  
   38.78 -text {* Simproc to rewrite @{term "\<bottom> = x"} to @{term "x = \<bottom>"}. *}
   38.79 +text \<open>Simproc to rewrite @{term "\<bottom> = x"} to @{term "x = \<bottom>"}.\<close>
   38.80  
   38.81 -setup {*
   38.82 +setup \<open>
   38.83    Reorient_Proc.add
   38.84      (fn Const(@{const_name bottom}, _) => true | _ => false)
   38.85 -*}
   38.86 +\<close>
   38.87  
   38.88  simproc_setup reorient_bottom ("\<bottom> = x") = Reorient_Proc.proc
   38.89  
   38.90 -text {* useful lemmas about @{term \<bottom>} *}
   38.91 +text \<open>useful lemmas about @{term \<bottom>}\<close>
   38.92  
   38.93  lemma below_bottom_iff [simp]: "(x \<sqsubseteq> \<bottom>) = (x = \<bottom>)"
   38.94  by (simp add: po_eq_conv)
   38.95 @@ -186,9 +186,9 @@
   38.96  lemma lub_eq_bottom_iff: "chain Y \<Longrightarrow> (\<Squnion>i. Y i) = \<bottom> \<longleftrightarrow> (\<forall>i. Y i = \<bottom>)"
   38.97  by (simp only: eq_bottom_iff lub_below_iff)
   38.98  
   38.99 -subsection {* Chain-finite and flat cpos *}
  38.100 +subsection \<open>Chain-finite and flat cpos\<close>
  38.101  
  38.102 -text {* further useful classes for HOLCF domains *}
  38.103 +text \<open>further useful classes for HOLCF domains\<close>
  38.104  
  38.105  class chfin = po +
  38.106    assumes chfin: "chain Y \<Longrightarrow> \<exists>n. max_in_chain n Y"
  38.107 @@ -230,7 +230,7 @@
  38.108  
  38.109  end
  38.110  
  38.111 -subsection {* Discrete cpos *}
  38.112 +subsection \<open>Discrete cpos\<close>
  38.113  
  38.114  class discrete_cpo = below +
  38.115    assumes discrete_cpo [simp]: "x \<sqsubseteq> y \<longleftrightarrow> x = y"
  38.116 @@ -239,7 +239,7 @@
  38.117  subclass po
  38.118  proof qed simp_all
  38.119  
  38.120 -text {* In a discrete cpo, every chain is constant *}
  38.121 +text \<open>In a discrete cpo, every chain is constant\<close>
  38.122  
  38.123  lemma discrete_chain_const:
  38.124    assumes S: "chain S"
    39.1 --- a/src/HOL/HOLCF/Plain_HOLCF.thy	Wed Jan 13 23:02:28 2016 +0100
    39.2 +++ b/src/HOL/HOLCF/Plain_HOLCF.thy	Wed Jan 13 23:07:06 2016 +0100
    39.3 @@ -2,15 +2,15 @@
    39.4      Author:     Brian Huffman
    39.5  *)
    39.6  
    39.7 -section {* Plain HOLCF *}
    39.8 +section \<open>Plain HOLCF\<close>
    39.9  
   39.10  theory Plain_HOLCF
   39.11  imports Cfun Sfun Cprod Sprod Ssum Up Discrete Lift One Tr Fix
   39.12  begin
   39.13  
   39.14 -text {*
   39.15 +text \<open>
   39.16    Basic HOLCF concepts and types; does not include definition packages.
   39.17 -*}
   39.18 +\<close>
   39.19  
   39.20  hide_const (open) Filter.principal
   39.21  
    40.1 --- a/src/HOL/HOLCF/Porder.thy	Wed Jan 13 23:02:28 2016 +0100
    40.2 +++ b/src/HOL/HOLCF/Porder.thy	Wed Jan 13 23:07:06 2016 +0100
    40.3 @@ -2,7 +2,7 @@
    40.4      Author:     Franz Regensburger and Brian Huffman
    40.5  *)
    40.6  
    40.7 -section {* Partial orders *}
    40.8 +section \<open>Partial orders\<close>
    40.9  
   40.10  theory Porder
   40.11  imports Main
   40.12 @@ -11,7 +11,7 @@
   40.13  declare [[typedef_overloaded]]
   40.14  
   40.15  
   40.16 -subsection {* Type class for partial orders *}
   40.17 +subsection \<open>Type class for partial orders\<close>
   40.18  
   40.19  class below =
   40.20    fixes below :: "'a \<Rightarrow> 'a \<Rightarrow> bool"
   40.21 @@ -70,7 +70,7 @@
   40.22  context po
   40.23  begin
   40.24  
   40.25 -subsection {* Upper bounds *}
   40.26 +subsection \<open>Upper bounds\<close>
   40.27  
   40.28  definition is_ub :: "'a set \<Rightarrow> 'a \<Rightarrow> bool" (infix "<|" 55) where
   40.29    "S <| x \<longleftrightarrow> (\<forall>y\<in>S. y \<sqsubseteq> x)"
   40.30 @@ -102,7 +102,7 @@
   40.31  lemma is_ub_upward: "\<lbrakk>S <| x; x \<sqsubseteq> y\<rbrakk> \<Longrightarrow> S <| y"
   40.32    unfolding is_ub_def by (fast intro: below_trans)
   40.33  
   40.34 -subsection {* Least upper bounds *}
   40.35 +subsection \<open>Least upper bounds\<close>
   40.36  
   40.37  definition is_lub :: "'a set \<Rightarrow> 'a \<Rightarrow> bool" (infix "<<|" 55) where
   40.38    "S <<| x \<longleftrightarrow> S <| x \<and> (\<forall>u. S <| u \<longrightarrow> x \<sqsubseteq> u)"
   40.39 @@ -131,7 +131,7 @@
   40.40  notation (ASCII)
   40.41    Lub  (binder "LUB " 10)
   40.42  
   40.43 -text {* access to some definition as inference rule *}
   40.44 +text \<open>access to some definition as inference rule\<close>
   40.45  
   40.46  lemma is_lubD1: "S <<| x \<Longrightarrow> S <| x"
   40.47    unfolding is_lub_def by fast
   40.48 @@ -145,12 +145,12 @@
   40.49  lemma is_lub_below_iff: "S <<| x \<Longrightarrow> x \<sqsubseteq> u \<longleftrightarrow> S <| u"
   40.50    unfolding is_lub_def is_ub_def by (metis below_trans)
   40.51  
   40.52 -text {* lubs are unique *}
   40.53 +text \<open>lubs are unique\<close>
   40.54  
   40.55  lemma is_lub_unique: "\<lbrakk>S <<| x; S <<| y\<rbrakk> \<Longrightarrow> x = y"
   40.56    unfolding is_lub_def is_ub_def by (blast intro: below_antisym)
   40.57  
   40.58 -text {* technical lemmas about @{term lub} and @{term is_lub} *}
   40.59 +text \<open>technical lemmas about @{term lub} and @{term is_lub}\<close>
   40.60  
   40.61  lemma is_lub_lub: "M <<| x \<Longrightarrow> M <<| lub M"
   40.62    unfolding lub_def by (rule theI [OF _ is_lub_unique])
   40.63 @@ -176,10 +176,10 @@
   40.64  lemma lub_maximal: "\<lbrakk>S <| x; x \<in> S\<rbrakk> \<Longrightarrow> lub S = x"
   40.65    by (rule is_lub_maximal [THEN lub_eqI])
   40.66  
   40.67 -subsection {* Countable chains *}
   40.68 +subsection \<open>Countable chains\<close>
   40.69  
   40.70  definition chain :: "(nat \<Rightarrow> 'a) \<Rightarrow> bool" where
   40.71 -  -- {* Here we use countable chains and I prefer to code them as functions! *}
   40.72 +  \<comment> \<open>Here we use countable chains and I prefer to code them as functions!\<close>
   40.73    "chain Y = (\<forall>i. Y i \<sqsubseteq> Y (Suc i))"
   40.74  
   40.75  lemma chainI: "(\<And>i. Y i \<sqsubseteq> Y (Suc i)) \<Longrightarrow> chain Y"
   40.76 @@ -188,7 +188,7 @@
   40.77  lemma chainE: "chain Y \<Longrightarrow> Y i \<sqsubseteq> Y (Suc i)"
   40.78    unfolding chain_def by fast
   40.79  
   40.80 -text {* chains are monotone functions *}
   40.81 +text \<open>chains are monotone functions\<close>
   40.82  
   40.83  lemma chain_mono_less: "\<lbrakk>chain Y; i < j\<rbrakk> \<Longrightarrow> Y i \<sqsubseteq> Y j"
   40.84    by (erule less_Suc_induct, erule chainE, erule below_trans)
   40.85 @@ -199,7 +199,7 @@
   40.86  lemma chain_shift: "chain Y \<Longrightarrow> chain (\<lambda>i. Y (i + j))"
   40.87    by (rule chainI, simp, erule chainE)
   40.88  
   40.89 -text {* technical lemmas about (least) upper bounds of chains *}
   40.90 +text \<open>technical lemmas about (least) upper bounds of chains\<close>
   40.91  
   40.92  lemma is_lub_rangeD1: "range S <<| x \<Longrightarrow> S i \<sqsubseteq> x"
   40.93    by (rule is_lubD1 [THEN ub_rangeD])
   40.94 @@ -220,7 +220,7 @@
   40.95    "chain S \<Longrightarrow> range (\<lambda>i. S (i + j)) <<| x = range S <<| x"
   40.96    by (simp add: is_lub_def is_ub_range_shift)
   40.97  
   40.98 -text {* the lub of a constant chain is the constant *}
   40.99 +text \<open>the lub of a constant chain is the constant\<close>
  40.100  
  40.101  lemma chain_const [simp]: "chain (\<lambda>i. c)"
  40.102    by (simp add: chainI)
  40.103 @@ -231,16 +231,16 @@
  40.104  lemma lub_const [simp]: "(\<Squnion>i. c) = c"
  40.105    by (rule is_lub_const [THEN lub_eqI])
  40.106  
  40.107 -subsection {* Finite chains *}
  40.108 +subsection \<open>Finite chains\<close>
  40.109  
  40.110  definition max_in_chain :: "nat \<Rightarrow> (nat \<Rightarrow> 'a) \<Rightarrow> bool" where
  40.111 -  -- {* finite chains, needed for monotony of continuous functions *}
  40.112 +  \<comment> \<open>finite chains, needed for monotony of continuous functions\<close>
  40.113    "max_in_chain i C \<longleftrightarrow> (\<forall>j. i \<le> j \<longrightarrow> C i = C j)"
  40.114  
  40.115  definition finite_chain :: "(nat \<Rightarrow> 'a) \<Rightarrow> bool" where
  40.116    "finite_chain C = (chain C \<and> (\<exists>i. max_in_chain i C))"
  40.117  
  40.118 -text {* results about finite chains *}
  40.119 +text \<open>results about finite chains\<close>
  40.120  
  40.121  lemma max_in_chainI: "(\<And>j. i \<le> j \<Longrightarrow> Y i = Y j) \<Longrightarrow> max_in_chain i Y"
  40.122    unfolding max_in_chain_def by fast
  40.123 @@ -336,7 +336,7 @@
  40.124  apply simp
  40.125  done
  40.126  
  40.127 -text {* the maximal element in a chain is its lub *}
  40.128 +text \<open>the maximal element in a chain is its lub\<close>
  40.129  
  40.130  lemma lub_chain_maxelem: "\<lbrakk>Y i = c; \<forall>i. Y i \<sqsubseteq> c\<rbrakk> \<Longrightarrow> lub (range Y) = c"
  40.131    by (blast dest: ub_rangeD intro: lub_eqI is_lubI ub_rangeI)
    41.1 --- a/src/HOL/HOLCF/Powerdomains.thy	Wed Jan 13 23:02:28 2016 +0100
    41.2 +++ b/src/HOL/HOLCF/Powerdomains.thy	Wed Jan 13 23:07:06 2016 +0100
    41.3 @@ -2,13 +2,13 @@
    41.4      Author:     Brian Huffman
    41.5  *)
    41.6  
    41.7 -section {* Powerdomains *}
    41.8 +section \<open>Powerdomains\<close>
    41.9  
   41.10  theory Powerdomains
   41.11  imports ConvexPD Domain
   41.12  begin
   41.13  
   41.14 -subsection {* Universal domain embeddings *}
   41.15 +subsection \<open>Universal domain embeddings\<close>
   41.16  
   41.17  definition "upper_emb = udom_emb (\<lambda>i. upper_map\<cdot>(udom_approx i))"
   41.18  definition "upper_prj = udom_prj (\<lambda>i. upper_map\<cdot>(udom_approx i))"
   41.19 @@ -31,7 +31,7 @@
   41.20    unfolding convex_emb_def convex_prj_def
   41.21    by (simp add: ep_pair_udom approx_chain_convex_map)
   41.22  
   41.23 -subsection {* Deflation combinators *}
   41.24 +subsection \<open>Deflation combinators\<close>
   41.25  
   41.26  definition upper_defl :: "udom defl \<rightarrow> udom defl"
   41.27    where "upper_defl = defl_fun1 upper_emb upper_prj upper_map"
   41.28 @@ -57,7 +57,7 @@
   41.29  using ep_pair_convex finite_deflation_convex_map
   41.30  unfolding convex_defl_def by (rule cast_defl_fun1)
   41.31  
   41.32 -subsection {* Domain class instances *}
   41.33 +subsection \<open>Domain class instances\<close>
   41.34  
   41.35  instantiation upper_pd :: ("domain") "domain"
   41.36  begin
   41.37 @@ -167,7 +167,7 @@
   41.38  lemma DEFL_convex: "DEFL('a::domain convex_pd) = convex_defl\<cdot>DEFL('a)"
   41.39  by (rule defl_convex_pd_def)
   41.40  
   41.41 -subsection {* Isomorphic deflations *}
   41.42 +subsection \<open>Isomorphic deflations\<close>
   41.43  
   41.44  lemma isodefl_upper:
   41.45    "isodefl d t \<Longrightarrow> isodefl (upper_map\<cdot>d) (upper_defl\<cdot>t)"
   41.46 @@ -193,7 +193,7 @@
   41.47  apply (simp add: convex_map_map)
   41.48  done
   41.49  
   41.50 -subsection {* Domain package setup for powerdomains *}
   41.51 +subsection \<open>Domain package setup for powerdomains\<close>
   41.52  
   41.53  lemmas [domain_defl_simps] = DEFL_upper DEFL_lower DEFL_convex
   41.54  lemmas [domain_map_ID] = upper_map_ID lower_map_ID convex_map_ID
   41.55 @@ -202,11 +202,11 @@
   41.56  lemmas [domain_deflation] =
   41.57    deflation_upper_map deflation_lower_map deflation_convex_map
   41.58  
   41.59 -setup {*
   41.60 +setup \<open>
   41.61    fold Domain_Take_Proofs.add_rec_type
   41.62      [(@{type_name "upper_pd"}, [true]),
   41.63       (@{type_name "lower_pd"}, [true]),
   41.64       (@{type_name "convex_pd"}, [true])]
   41.65 -*}
   41.66 +\<close>
   41.67  
   41.68  end
    42.1 --- a/src/HOL/HOLCF/Product_Cpo.thy	Wed Jan 13 23:02:28 2016 +0100
    42.2 +++ b/src/HOL/HOLCF/Product_Cpo.thy	Wed Jan 13 23:07:06 2016 +0100
    42.3 @@ -2,7 +2,7 @@
    42.4      Author:     Franz Regensburger
    42.5  *)
    42.6  
    42.7 -section {* The cpo of cartesian products *}
    42.8 +section \<open>The cpo of cartesian products\<close>
    42.9  
   42.10  theory Product_Cpo
   42.11  imports Adm
   42.12 @@ -10,7 +10,7 @@
   42.13  
   42.14  default_sort cpo
   42.15  
   42.16 -subsection {* Unit type is a pcpo *}
   42.17 +subsection \<open>Unit type is a pcpo\<close>
   42.18  
   42.19  instantiation unit :: discrete_cpo
   42.20  begin
   42.21 @@ -27,7 +27,7 @@
   42.22  by intro_classes simp
   42.23  
   42.24  
   42.25 -subsection {* Product type is a partial order *}
   42.26 +subsection \<open>Product type is a partial order\<close>
   42.27  
   42.28  instantiation prod :: (below, below) below
   42.29  begin
   42.30 @@ -55,7 +55,7 @@
   42.31      by (fast intro: below_trans)
   42.32  qed
   42.33  
   42.34 -subsection {* Monotonicity of \emph{Pair}, \emph{fst}, \emph{snd} *}
   42.35 +subsection \<open>Monotonicity of \emph{Pair}, \emph{fst}, \emph{snd}\<close>
   42.36  
   42.37  lemma prod_belowI: "\<lbrakk>fst p \<sqsubseteq> fst q; snd p \<sqsubseteq> snd q\<rbrakk> \<Longrightarrow> p \<sqsubseteq> q"
   42.38  unfolding below_prod_def by simp
   42.39 @@ -63,7 +63,7 @@
   42.40  lemma Pair_below_iff [simp]: "(a, b) \<sqsubseteq> (c, d) \<longleftrightarrow> a \<sqsubseteq> c \<and> b \<sqsubseteq> d"
   42.41  unfolding below_prod_def by simp
   42.42  
   42.43 -text {* Pair @{text "(_,_)"}  is monotone in both arguments *}
   42.44 +text \<open>Pair \<open>(_,_)\<close>  is monotone in both arguments\<close>
   42.45  
   42.46  lemma monofun_pair1: "monofun (\<lambda>x. (x, y))"
   42.47  by (simp add: monofun_def)
   42.48 @@ -79,7 +79,7 @@
   42.49    "chain X \<Longrightarrow> chain Y \<Longrightarrow> chain (\<lambda>i. (X i, Y i))"
   42.50  by (rule chainI, simp add: chainE)
   42.51  
   42.52 -text {* @{term fst} and @{term snd} are monotone *}
   42.53 +text \<open>@{term fst} and @{term snd} are monotone\<close>
   42.54  
   42.55  lemma fst_monofun: "x \<sqsubseteq> y \<Longrightarrow> fst x \<sqsubseteq> fst y"
   42.56  unfolding below_prod_def by simp
   42.57 @@ -102,12 +102,12 @@
   42.58    obtains A B
   42.59    where "chain A" and "chain B" and "Y = (\<lambda>i. (A i, B i))"
   42.60  proof
   42.61 -  from `chain Y` show "chain (\<lambda>i. fst (Y i))" by (rule ch2ch_fst)
   42.62 -  from `chain Y` show "chain (\<lambda>i. snd (Y i))" by (rule ch2ch_snd)
   42.63 +  from \<open>chain Y\<close> show "chain (\<lambda>i. fst (Y i))" by (rule ch2ch_fst)
   42.64 +  from \<open>chain Y\<close> show "chain (\<lambda>i. snd (Y i))" by (rule ch2ch_snd)
   42.65    show "Y = (\<lambda>i. (fst (Y i), snd (Y i)))" by simp
   42.66  qed
   42.67  
   42.68 -subsection {* Product type is a cpo *}
   42.69 +subsection \<open>Product type is a cpo\<close>
   42.70  
   42.71  lemma is_lub_Pair:
   42.72    "\<lbrakk>range A <<| x; range B <<| y\<rbrakk> \<Longrightarrow> range (\<lambda>i. (A i, B i)) <<| (x, y)"
   42.73 @@ -146,7 +146,7 @@
   42.74      by simp
   42.75  qed
   42.76  
   42.77 -subsection {* Product type is pointed *}
   42.78 +subsection \<open>Product type is pointed\<close>
   42.79  
   42.80  lemma minimal_prod: "(\<bottom>, \<bottom>) \<sqsubseteq> p"
   42.81  by (simp add: below_prod_def)
   42.82 @@ -172,7 +172,7 @@
   42.83  lemma split_strict [simp]: "case_prod f \<bottom> = f \<bottom> \<bottom>"
   42.84  unfolding split_def by simp
   42.85  
   42.86 -subsection {* Continuity of \emph{Pair}, \emph{fst}, \emph{snd} *}
   42.87 +subsection \<open>Continuity of \emph{Pair}, \emph{fst}, \emph{snd}\<close>
   42.88  
   42.89  lemma cont_pair1: "cont (\<lambda>x. (x, y))"
   42.90  apply (rule contI)
   42.91 @@ -252,22 +252,22 @@
   42.92    shows "cont (\<lambda>x. case_prod (f x) (g x))"
   42.93  using assms by (simp add: cont2cont_case_prod prod_cont_iff)
   42.94  
   42.95 -text {* The simple version (due to Joachim Breitner) is needed if
   42.96 -  either element type of the pair is not a cpo. *}
   42.97 +text \<open>The simple version (due to Joachim Breitner) is needed if
   42.98 +  either element type of the pair is not a cpo.\<close>
   42.99  
  42.100  lemma cont2cont_split_simple [simp, cont2cont]:
  42.101   assumes "\<And>a b. cont (\<lambda>x. f x a b)"
  42.102   shows "cont (\<lambda>x. case p of (a, b) \<Rightarrow> f x a b)"
  42.103  using assms by (cases p) auto
  42.104  
  42.105 -text {* Admissibility of predicates on product types. *}
  42.106 +text \<open>Admissibility of predicates on product types.\<close>
  42.107  
  42.108  lemma adm_case_prod [simp]:
  42.109    assumes "adm (\<lambda>x. P x (fst (f x)) (snd (f x)))"
  42.110    shows "adm (\<lambda>x. case f x of (a, b) \<Rightarrow> P x a b)"
  42.111  unfolding case_prod_beta using assms .
  42.112  
  42.113 -subsection {* Compactness and chain-finiteness *}
  42.114 +subsection \<open>Compactness and chain-finiteness\<close>
  42.115  
  42.116  lemma fst_below_iff: "fst (x::'a \<times> 'b) \<sqsubseteq> y \<longleftrightarrow> x \<sqsubseteq> (y, snd x)"
  42.117  unfolding below_prod_def by simp
    43.1 --- a/src/HOL/HOLCF/Representable.thy	Wed Jan 13 23:02:28 2016 +0100
    43.2 +++ b/src/HOL/HOLCF/Representable.thy	Wed Jan 13 23:07:06 2016 +0100
    43.3 @@ -2,7 +2,7 @@
    43.4      Author:     Brian Huffman
    43.5  *)
    43.6  
    43.7 -section {* Representable domains *}
    43.8 +section \<open>Representable domains\<close>
    43.9  
   43.10  theory Representable
   43.11  imports Algebraic Map_Functions "~~/src/HOL/Library/Countable"
   43.12 @@ -10,9 +10,9 @@
   43.13  
   43.14  default_sort cpo
   43.15  
   43.16 -subsection {* Class of representable domains *}
   43.17 +subsection \<open>Class of representable domains\<close>
   43.18  
   43.19 -text {*
   43.20 +text \<open>
   43.21    We define a ``domain'' as a pcpo that is isomorphic to some
   43.22    algebraic deflation over the universal domain; this is equivalent
   43.23    to being omega-bifinite.
   43.24 @@ -20,7 +20,7 @@
   43.25    A predomain is a cpo that, when lifted, becomes a domain.
   43.26    Predomains are represented by deflations over a lifted universal
   43.27    domain type.
   43.28 -*}
   43.29 +\<close>
   43.30  
   43.31  class predomain_syn = cpo +
   43.32    fixes liftemb :: "'a\<^sub>\<bottom> \<rightarrow> udom\<^sub>\<bottom>"
   43.33 @@ -63,16 +63,16 @@
   43.34      by (simp add: cast_liftdefl_of cast_DEFL u_map_oo)
   43.35  qed
   43.36  
   43.37 -text {*
   43.38 +text \<open>
   43.39    Constants @{const liftemb} and @{const liftprj} imply class predomain.
   43.40 -*}
   43.41 +\<close>
   43.42  
   43.43 -setup {*
   43.44 +setup \<open>
   43.45    fold Sign.add_const_constraint
   43.46    [(@{const_name liftemb}, SOME @{typ "'a::predomain u \<rightarrow> udom u"}),
   43.47     (@{const_name liftprj}, SOME @{typ "udom u \<rightarrow> 'a::predomain u"}),
   43.48     (@{const_name liftdefl}, SOME @{typ "'a::predomain itself \<Rightarrow> udom u defl"})]
   43.49 -*}
   43.50 +\<close>
   43.51  
   43.52  interpretation predomain: pcpo_ep_pair liftemb liftprj
   43.53    unfolding pcpo_ep_pair_def by (rule predomain_ep)
   43.54 @@ -86,7 +86,7 @@
   43.55  lemmas emb_strict = domain.e_strict
   43.56  lemmas prj_strict = domain.p_strict
   43.57  
   43.58 -subsection {* Domains are bifinite *}
   43.59 +subsection \<open>Domains are bifinite\<close>
   43.60  
   43.61  lemma approx_chain_ep_cast:
   43.62    assumes ep: "ep_pair (e::'a::pcpo \<rightarrow> 'b::bifinite) (p::'b \<rightarrow> 'a)"
   43.63 @@ -124,7 +124,7 @@
   43.64  instance predomain \<subseteq> profinite
   43.65  by standard (rule approx_chain_ep_cast [OF predomain_ep cast_liftdefl])
   43.66  
   43.67 -subsection {* Universal domain ep-pairs *}
   43.68 +subsection \<open>Universal domain ep-pairs\<close>
   43.69  
   43.70  definition "u_emb = udom_emb (\<lambda>i. u_map\<cdot>(udom_approx i))"
   43.71  definition "u_prj = udom_prj (\<lambda>i. u_map\<cdot>(udom_approx i))"
   43.72 @@ -161,7 +161,7 @@
   43.73    unfolding sfun_emb_def sfun_prj_def
   43.74    by (simp add: ep_pair_udom approx_chain_sfun_map)
   43.75  
   43.76 -subsection {* Type combinators *}
   43.77 +subsection \<open>Type combinators\<close>
   43.78  
   43.79  definition u_defl :: "udom defl \<rightarrow> udom defl"
   43.80    where "u_defl = defl_fun1 u_emb u_prj u_map"
   43.81 @@ -207,7 +207,7 @@
   43.82  using ep_pair_sfun finite_deflation_sfun_map
   43.83  unfolding sfun_defl_def by (rule cast_defl_fun2)
   43.84  
   43.85 -text {* Special deflation combinator for unpointed types. *}
   43.86 +text \<open>Special deflation combinator for unpointed types.\<close>
   43.87  
   43.88  definition u_liftdefl :: "udom u defl \<rightarrow> udom defl"
   43.89    where "u_liftdefl = defl_fun1 u_emb u_prj ID"
   43.90 @@ -221,9 +221,9 @@
   43.91  by (rule cast_eq_imp_eq)
   43.92     (simp add: cast_u_liftdefl cast_liftdefl_of cast_u_defl)
   43.93  
   43.94 -subsection {* Class instance proofs *}
   43.95 +subsection \<open>Class instance proofs\<close>
   43.96  
   43.97 -subsubsection {* Universal domain *}
   43.98 +subsubsection \<open>Universal domain\<close>
   43.99  
  43.100  instantiation udom :: "domain"
  43.101  begin
  43.102 @@ -265,7 +265,7 @@
  43.103  
  43.104  end
  43.105  
  43.106 -subsubsection {* Lifted cpo *}
  43.107 +subsubsection \<open>Lifted cpo\<close>
  43.108  
  43.109  instantiation u :: (predomain) "domain"
  43.110  begin
  43.111 @@ -302,7 +302,7 @@
  43.112  lemma DEFL_u: "DEFL('a::predomain u) = u_liftdefl\<cdot>LIFTDEFL('a)"
  43.113  by (rule defl_u_def)
  43.114  
  43.115 -subsubsection {* Strict function space *}
  43.116 +subsubsection \<open>Strict function space\<close>
  43.117  
  43.118  instantiation sfun :: ("domain", "domain") "domain"
  43.119  begin
  43.120 @@ -340,7 +340,7 @@
  43.121    "DEFL('a::domain \<rightarrow>! 'b::domain) = sfun_defl\<cdot>DEFL('a)\<cdot>DEFL('b)"
  43.122  by (rule defl_sfun_def)
  43.123  
  43.124 -subsubsection {* Continuous function space *}
  43.125 +subsubsection \<open>Continuous function space\<close>
  43.126  
  43.127  instantiation cfun :: (predomain, "domain") "domain"
  43.128  begin
  43.129 @@ -380,7 +380,7 @@
  43.130    "DEFL('a::predomain \<rightarrow> 'b::domain) = DEFL('a u \<rightarrow>! 'b)"
  43.131  by (rule defl_cfun_def)
  43.132  
  43.133 -subsubsection {* Strict product *}
  43.134 +subsubsection \<open>Strict product\<close>
  43.135  
  43.136  instantiation sprod :: ("domain", "domain") "domain"
  43.137  begin
  43.138 @@ -418,7 +418,7 @@
  43.139    "DEFL('a::domain \<otimes> 'b::domain) = sprod_defl\<cdot>DEFL('a)\<cdot>DEFL('b)"
  43.140  by (rule defl_sprod_def)
  43.141  
  43.142 -subsubsection {* Cartesian product *}
  43.143 +subsubsection \<open>Cartesian product\<close>
  43.144  
  43.145  definition prod_liftdefl :: "udom u defl \<rightarrow> udom u defl \<rightarrow> udom u defl"
  43.146    where "prod_liftdefl = defl_fun2 (u_map\<cdot>prod_emb oo decode_prod_u)
  43.147 @@ -506,7 +506,7 @@
  43.148      prod_liftdefl\<cdot>LIFTDEFL('a)\<cdot>LIFTDEFL('b)"
  43.149  by (rule liftdefl_prod_def)
  43.150  
  43.151 -subsubsection {* Unit type *}
  43.152 +subsubsection \<open>Unit type\<close>
  43.153  
  43.154  instantiation unit :: "domain"
  43.155  begin
  43.156 @@ -539,7 +539,7 @@
  43.157  
  43.158  end
  43.159  
  43.160 -subsubsection {* Discrete cpo *}
  43.161 +subsubsection \<open>Discrete cpo\<close>
  43.162  
  43.163  instantiation discr :: (countable) predomain
  43.164  begin
  43.165 @@ -584,7 +584,7 @@
  43.166  
  43.167  end
  43.168  
  43.169 -subsubsection {* Strict sum *}
  43.170 +subsubsection \<open>Strict sum\<close>
  43.171  
  43.172  instantiation ssum :: ("domain", "domain") "domain"
  43.173  begin
  43.174 @@ -622,7 +622,7 @@
  43.175    "DEFL('a::domain \<oplus> 'b::domain) = ssum_defl\<cdot>DEFL('a)\<cdot>DEFL('b)"
  43.176  by (rule defl_ssum_def)
  43.177  
  43.178 -subsubsection {* Lifted HOL type *}
  43.179 +subsubsection \<open>Lifted HOL type\<close>
  43.180  
  43.181  instantiation lift :: (countable) "domain"
  43.182  begin
    44.1 --- a/src/HOL/HOLCF/Sfun.thy	Wed Jan 13 23:02:28 2016 +0100
    44.2 +++ b/src/HOL/HOLCF/Sfun.thy	Wed Jan 13 23:07:06 2016 +0100
    44.3 @@ -2,7 +2,7 @@
    44.4      Author:     Brian Huffman
    44.5  *)
    44.6  
    44.7 -section {* The Strict Function Type *}
    44.8 +section \<open>The Strict Function Type\<close>
    44.9  
   44.10  theory Sfun
   44.11  imports Cfun
   44.12 @@ -15,7 +15,7 @@
   44.13  type_notation (ASCII)
   44.14    sfun  (infixr "->!" 0)
   44.15  
   44.16 -text {* TODO: Define nice syntax for abstraction, application. *}
   44.17 +text \<open>TODO: Define nice syntax for abstraction, application.\<close>
   44.18  
   44.19  definition
   44.20    sfun_abs :: "('a \<rightarrow> 'b) \<rightarrow> ('a \<rightarrow>! 'b)"
    45.1 --- a/src/HOL/HOLCF/Sprod.thy	Wed Jan 13 23:02:28 2016 +0100
    45.2 +++ b/src/HOL/HOLCF/Sprod.thy	Wed Jan 13 23:07:06 2016 +0100
    45.3 @@ -3,7 +3,7 @@
    45.4      Author:     Brian Huffman
    45.5  *)
    45.6  
    45.7 -section {* The type of strict products *}
    45.8 +section \<open>The type of strict products\<close>
    45.9  
   45.10  theory Sprod
   45.11  imports Cfun
   45.12 @@ -11,7 +11,7 @@
   45.13  
   45.14  default_sort pcpo
   45.15  
   45.16 -subsection {* Definition of strict product type *}
   45.17 +subsection \<open>Definition of strict product type\<close>
   45.18  
   45.19  definition "sprod = {p::'a \<times> 'b. p = \<bottom> \<or> (fst p \<noteq> \<bottom> \<and> snd p \<noteq> \<bottom>)}"
   45.20  
   45.21 @@ -25,7 +25,7 @@
   45.22    sprod  (infixr "**" 20)
   45.23  
   45.24  
   45.25 -subsection {* Definitions of constants *}
   45.26 +subsection \<open>Definitions of constants\<close>
   45.27  
   45.28  definition
   45.29    sfst :: "('a ** 'b) \<rightarrow> 'a" where
   45.30 @@ -53,7 +53,7 @@
   45.31  translations
   45.32    "\<Lambda>(CONST spair\<cdot>x\<cdot>y). t" == "CONST ssplit\<cdot>(\<Lambda> x y. t)"
   45.33  
   45.34 -subsection {* Case analysis *}
   45.35 +subsection \<open>Case analysis\<close>
   45.36  
   45.37  lemma spair_sprod: "(seq\<cdot>b\<cdot>a, seq\<cdot>a\<cdot>b) \<in> sprod"
   45.38  by (simp add: sprod_def seq_conv_if)
   45.39 @@ -74,7 +74,7 @@
   45.40    "\<lbrakk>P \<bottom>; \<And>x y. \<lbrakk>x \<noteq> \<bottom>; y \<noteq> \<bottom>\<rbrakk> \<Longrightarrow> P (:x, y:)\<rbrakk> \<Longrightarrow> P x"
   45.41  by (cases x, simp_all)
   45.42  
   45.43 -subsection {* Properties of \emph{spair} *}
   45.44 +subsection \<open>Properties of \emph{spair}\<close>
   45.45  
   45.46  lemma spair_strict1 [simp]: "(:\<bottom>, y:) = \<bottom>"
   45.47  by (simp add: Rep_sprod_simps)
   45.48 @@ -124,7 +124,7 @@
   45.49  lemma sprodE2: "(\<And>x y. p = (:x, y:) \<Longrightarrow> Q) \<Longrightarrow> Q"
   45.50  by (cases p, simp only: inst_sprod_pcpo2, simp)
   45.51  
   45.52 -subsection {* Properties of \emph{sfst} and \emph{ssnd} *}
   45.53 +subsection \<open>Properties of \emph{sfst} and \emph{ssnd}\<close>
   45.54  
   45.55  lemma sfst_strict [simp]: "sfst\<cdot>\<bottom> = \<bottom>"
   45.56  by (simp add: sfst_def cont_Rep_sprod Rep_sprod_strict)
   45.57 @@ -169,7 +169,7 @@
   45.58  apply (simp add: below_sprod)
   45.59  done
   45.60  
   45.61 -subsection {* Compactness *}
   45.62 +subsection \<open>Compactness\<close>
   45.63  
   45.64  lemma compact_sfst: "compact x \<Longrightarrow> compact (sfst\<cdot>x)"
   45.65  by (rule compactI, simp add: sfst_below_iff)
   45.66 @@ -189,7 +189,7 @@
   45.67  apply simp
   45.68  done
   45.69  
   45.70 -subsection {* Properties of \emph{ssplit} *}
   45.71 +subsection \<open>Properties of \emph{ssplit}\<close>
   45.72  
   45.73  lemma ssplit1 [simp]: "ssplit\<cdot>f\<cdot>\<bottom> = \<bottom>"
   45.74  by (simp add: ssplit_def)
   45.75 @@ -200,7 +200,7 @@
   45.76  lemma ssplit3 [simp]: "ssplit\<cdot>spair\<cdot>z = z"
   45.77  by (cases z, simp_all)
   45.78  
   45.79 -subsection {* Strict product preserves flatness *}
   45.80 +subsection \<open>Strict product preserves flatness\<close>
   45.81  
   45.82  instance sprod :: (flat, flat) flat
   45.83  proof
    46.1 --- a/src/HOL/HOLCF/Ssum.thy	Wed Jan 13 23:02:28 2016 +0100
    46.2 +++ b/src/HOL/HOLCF/Ssum.thy	Wed Jan 13 23:07:06 2016 +0100
    46.3 @@ -3,7 +3,7 @@
    46.4      Author:     Brian Huffman
    46.5  *)
    46.6  
    46.7 -section {* The type of strict sums *}
    46.8 +section \<open>The type of strict sums\<close>
    46.9  
   46.10  theory Ssum
   46.11  imports Tr
   46.12 @@ -11,7 +11,7 @@
   46.13  
   46.14  default_sort pcpo
   46.15  
   46.16 -subsection {* Definition of strict sum type *}
   46.17 +subsection \<open>Definition of strict sum type\<close>
   46.18  
   46.19  definition
   46.20    "ssum =
   46.21 @@ -29,7 +29,7 @@
   46.22    ssum  (infixr "++" 10)
   46.23  
   46.24  
   46.25 -subsection {* Definitions of constructors *}
   46.26 +subsection \<open>Definitions of constructors\<close>
   46.27  
   46.28  definition
   46.29    sinl :: "'a \<rightarrow> ('a ++ 'b)" where
   46.30 @@ -56,9 +56,9 @@
   46.31    prod_eq_iff below_prod_def
   46.32    Rep_ssum_strict Rep_ssum_sinl Rep_ssum_sinr
   46.33  
   46.34 -subsection {* Properties of \emph{sinl} and \emph{sinr} *}
   46.35 +subsection \<open>Properties of \emph{sinl} and \emph{sinr}\<close>
   46.36  
   46.37 -text {* Ordering *}
   46.38 +text \<open>Ordering\<close>
   46.39  
   46.40  lemma sinl_below [simp]: "(sinl\<cdot>x \<sqsubseteq> sinl\<cdot>y) = (x \<sqsubseteq> y)"
   46.41  by (simp add: Rep_ssum_simps seq_conv_if)
   46.42 @@ -72,7 +72,7 @@
   46.43  lemma sinr_below_sinl [simp]: "(sinr\<cdot>x \<sqsubseteq> sinl\<cdot>y) = (x = \<bottom>)"
   46.44  by (simp add: Rep_ssum_simps seq_conv_if)
   46.45  
   46.46 -text {* Equality *}
   46.47 +text \<open>Equality\<close>
   46.48  
   46.49  lemma sinl_eq [simp]: "(sinl\<cdot>x = sinl\<cdot>y) = (x = y)"
   46.50  by (simp add: po_eq_conv)
   46.51 @@ -92,7 +92,7 @@
   46.52  lemma sinr_inject: "sinr\<cdot>x = sinr\<cdot>y \<Longrightarrow> x = y"
   46.53  by (rule sinr_eq [THEN iffD1])
   46.54  
   46.55 -text {* Strictness *}
   46.56 +text \<open>Strictness\<close>
   46.57  
   46.58  lemma sinl_strict [simp]: "sinl\<cdot>\<bottom> = \<bottom>"
   46.59  by (simp add: Rep_ssum_simps)
   46.60 @@ -112,7 +112,7 @@
   46.61  lemma sinr_defined: "x \<noteq> \<bottom> \<Longrightarrow> sinr\<cdot>x \<noteq> \<bottom>"
   46.62  by simp
   46.63  
   46.64 -text {* Compactness *}
   46.65 +text \<open>Compactness\<close>
   46.66  
   46.67  lemma compact_sinl: "compact x \<Longrightarrow> compact (sinl\<cdot>x)"
   46.68  by (rule compact_ssum, simp add: Rep_ssum_sinl)
   46.69 @@ -134,7 +134,7 @@
   46.70  lemma compact_sinr_iff [simp]: "compact (sinr\<cdot>x) = compact x"
   46.71  by (safe elim!: compact_sinr compact_sinrD)
   46.72  
   46.73 -subsection {* Case analysis *}
   46.74 +subsection \<open>Case analysis\<close>
   46.75  
   46.76  lemma ssumE [case_names bottom sinl sinr, cases type: ssum]:
   46.77    obtains "p = \<bottom>"
   46.78 @@ -158,7 +158,7 @@
   46.79  lemma below_sinrD: "p \<sqsubseteq> sinr\<cdot>x \<Longrightarrow> \<exists>y. p = sinr\<cdot>y \<and> y \<sqsubseteq> x"
   46.80  by (cases p, rule_tac x="\<bottom>" in exI, simp_all)
   46.81  
   46.82 -subsection {* Case analysis combinator *}
   46.83 +subsection \<open>Case analysis combinator\<close>
   46.84  
   46.85  definition
   46.86    sscase :: "('a \<rightarrow> 'c) \<rightarrow> ('b \<rightarrow> 'c) \<rightarrow> ('a ++ 'b) \<rightarrow> 'c" where
   46.87 @@ -188,7 +188,7 @@
   46.88  lemma sscase4 [simp]: "sscase\<cdot>sinl\<cdot>sinr\<cdot>z = z"
   46.89  by (cases z, simp_all)
   46.90  
   46.91 -subsection {* Strict sum preserves flatness *}
   46.92 +subsection \<open>Strict sum preserves flatness\<close>
   46.93  
   46.94  instance ssum :: (flat, flat) flat
   46.95  apply (intro_classes, clarify)
    47.1 --- a/src/HOL/HOLCF/Tr.thy	Wed Jan 13 23:02:28 2016 +0100
    47.2 +++ b/src/HOL/HOLCF/Tr.thy	Wed Jan 13 23:07:06 2016 +0100
    47.3 @@ -2,13 +2,13 @@
    47.4      Author:     Franz Regensburger
    47.5  *)
    47.6  
    47.7 -section {* The type of lifted booleans *}
    47.8 +section \<open>The type of lifted booleans\<close>
    47.9  
   47.10  theory Tr
   47.11  imports Lift
   47.12  begin
   47.13  
   47.14 -subsection {* Type definition and constructors *}
   47.15 +subsection \<open>Type definition and constructors\<close>
   47.16  
   47.17  type_synonym
   47.18    tr = "bool lift"
   47.19 @@ -24,7 +24,7 @@
   47.20    FF :: "tr" where
   47.21    "FF = Def False"
   47.22  
   47.23 -text {* Exhaustion and Elimination for type @{typ tr} *}
   47.24 +text \<open>Exhaustion and Elimination for type @{typ tr}\<close>
   47.25  
   47.26  lemma Exh_tr: "t = \<bottom> \<or> t = TT \<or> t = FF"
   47.27  unfolding FF_def TT_def by (induct t) auto
   47.28 @@ -37,7 +37,7 @@
   47.29    "\<lbrakk>P \<bottom>; P TT; P FF\<rbrakk> \<Longrightarrow> P x"
   47.30  by (cases x) simp_all
   47.31  
   47.32 -text {* distinctness for type @{typ tr} *}
   47.33 +text \<open>distinctness for type @{typ tr}\<close>
   47.34  
   47.35  lemma dist_below_tr [simp]:
   47.36    "TT \<notsqsubseteq> \<bottom>" "FF \<notsqsubseteq> \<bottom>" "TT \<notsqsubseteq> FF" "FF \<notsqsubseteq> TT"
   47.37 @@ -60,7 +60,7 @@
   47.38  by (induct x) simp_all
   47.39  
   47.40  
   47.41 -subsection {* Case analysis *}
   47.42 +subsection \<open>Case analysis\<close>
   47.43  
   47.44  default_sort pcpo
   47.45  
   47.46 @@ -83,7 +83,7 @@
   47.47  by (simp_all add: tr_case_def TT_def FF_def)
   47.48  
   47.49  
   47.50 -subsection {* Boolean connectives *}
   47.51 +subsection \<open>Boolean connectives\<close>
   47.52  
   47.53  definition
   47.54    trand :: "tr \<rightarrow> tr \<rightarrow> tr" where
   47.55 @@ -107,11 +107,11 @@
   47.56    If2 :: "[tr, 'c, 'c] \<Rightarrow> 'c" where
   47.57    "If2 Q x y = (If Q then x else y)"
   47.58  
   47.59 -text {* tactic for tr-thms with case split *}
   47.60 +text \<open>tactic for tr-thms with case split\<close>
   47.61  
   47.62  lemmas tr_defs = andalso_def orelse_def neg_def tr_case_def TT_def FF_def
   47.63  
   47.64 -text {* lemmas about andalso, orelse, neg and if *}
   47.65 +text \<open>lemmas about andalso, orelse, neg and if\<close>
   47.66  
   47.67  lemma andalso_thms [simp]:
   47.68    "(TT andalso y) = y"
   47.69 @@ -141,7 +141,7 @@
   47.70    "neg\<cdot>\<bottom> = \<bottom>"
   47.71  by (simp_all add: neg_def TT_def FF_def)
   47.72  
   47.73 -text {* split-tac for If via If2 because the constant has to be a constant *}
   47.74 +text \<open>split-tac for If via If2 because the constant has to be a constant\<close>
   47.75  
   47.76  lemma split_If2:
   47.77    "P (If2 Q x y) = ((Q = \<bottom> \<longrightarrow> P \<bottom>) \<and> (Q = TT \<longrightarrow> P x) \<and> (Q = FF \<longrightarrow> P y))"
   47.78 @@ -151,11 +151,11 @@
   47.79  done
   47.80  
   47.81  (* FIXME unused!? *)
   47.82 -ML {*
   47.83 +ML \<open>
   47.84  fun split_If_tac ctxt =
   47.85    simp_tac (put_simpset HOL_basic_ss ctxt addsimps [@{thm If2_def} RS sym])
   47.86      THEN' (split_tac ctxt [@{thm split_If2}])
   47.87 -*}
   47.88 +\<close>
   47.89  
   47.90  subsection "Rewriting of HOLCF operations to HOL functions"
   47.91  
   47.92 @@ -189,7 +189,7 @@
   47.93  apply (auto simp add: TT_def[symmetric] FF_def[symmetric])
   47.94  done
   47.95  
   47.96 -subsection {* Compactness *}
   47.97 +subsection \<open>Compactness\<close>
   47.98  
   47.99  lemma compact_TT: "compact TT"
  47.100  by (rule compact_chfin)
    48.1 --- a/src/HOL/HOLCF/Tutorial/Domain_ex.thy	Wed Jan 13 23:02:28 2016 +0100
    48.2 +++ b/src/HOL/HOLCF/Tutorial/Domain_ex.thy	Wed Jan 13 23:07:06 2016 +0100
    48.3 @@ -2,43 +2,43 @@
    48.4      Author:     Brian Huffman
    48.5  *)
    48.6  
    48.7 -section {* Domain package examples *}
    48.8 +section \<open>Domain package examples\<close>
    48.9  
   48.10  theory Domain_ex
   48.11  imports HOLCF
   48.12  begin
   48.13  
   48.14 -text {* Domain constructors are strict by default. *}
   48.15 +text \<open>Domain constructors are strict by default.\<close>
   48.16  
   48.17  domain d1 = d1a | d1b "d1" "d1"
   48.18  
   48.19  lemma "d1b\<cdot>\<bottom>\<cdot>y = \<bottom>" by simp
   48.20  
   48.21 -text {* Constructors can be made lazy using the @{text "lazy"} keyword. *}
   48.22 +text \<open>Constructors can be made lazy using the \<open>lazy\<close> keyword.\<close>
   48.23  
   48.24  domain d2 = d2a | d2b (lazy "d2")
   48.25  
   48.26  lemma "d2b\<cdot>x \<noteq> \<bottom>" by simp
   48.27  
   48.28 -text {* Strict and lazy arguments may be mixed arbitrarily. *}
   48.29 +text \<open>Strict and lazy arguments may be mixed arbitrarily.\<close>
   48.30  
   48.31  domain d3 = d3a | d3b (lazy "d2") "d2"
   48.32  
   48.33  lemma "P (d3b\<cdot>x\<cdot>y = \<bottom>) \<longleftrightarrow> P (y = \<bottom>)" by simp
   48.34  
   48.35 -text {* Selectors can be used with strict or lazy constructor arguments. *}
   48.36 +text \<open>Selectors can be used with strict or lazy constructor arguments.\<close>
   48.37  
   48.38  domain d4 = d4a | d4b (lazy d4b_left :: "d2") (d4b_right :: "d2")
   48.39  
   48.40  lemma "y \<noteq> \<bottom> \<Longrightarrow> d4b_left\<cdot>(d4b\<cdot>x\<cdot>y) = x" by simp
   48.41  
   48.42 -text {* Mixfix declarations can be given for data constructors. *}
   48.43 +text \<open>Mixfix declarations can be given for data constructors.\<close>
   48.44  
   48.45  domain d5 = d5a | d5b (lazy "d5") "d5" (infixl ":#:" 70)
   48.46  
   48.47  lemma "d5a \<noteq> x :#: y :#: z" by simp
   48.48  
   48.49 -text {* Mixfix declarations can also be given for type constructors. *}
   48.50 +text \<open>Mixfix declarations can also be given for type constructors.\<close>
   48.51  
   48.52  domain ('a, 'b) lazypair (infixl ":*:" 25) =
   48.53    lpair (lazy lfst :: 'a) (lazy lsnd :: 'b) (infixl ":*:" 75)
   48.54 @@ -46,34 +46,34 @@
   48.55  lemma "\<forall>p::('a :*: 'b). p \<sqsubseteq> lfst\<cdot>p :*: lsnd\<cdot>p"
   48.56  by (rule allI, case_tac p, simp_all)
   48.57  
   48.58 -text {* Non-recursive constructor arguments can have arbitrary types. *}
   48.59 +text \<open>Non-recursive constructor arguments can have arbitrary types.\<close>
   48.60  
   48.61  domain ('a, 'b) d6 = d6 "int lift" "'a \<oplus> 'b u" (lazy "('a :*: 'b) \<times> ('b \<rightarrow> 'a)")
   48.62  
   48.63 -text {*
   48.64 +text \<open>
   48.65    Indirect recusion is allowed for sums, products, lifting, and the
   48.66    continuous function space.  However, the domain package does not
   48.67    generate an induction rule in terms of the constructors.
   48.68 -*}
   48.69 +\<close>
   48.70  
   48.71  domain 'a d7 = d7a "'a d7 \<oplus> int lift" | d7b "'a \<otimes> 'a d7" | d7c (lazy "'a d7 \<rightarrow> 'a")
   48.72 -  -- "Indirect recursion detected, skipping proofs of (co)induction rules"
   48.73 +  \<comment> "Indirect recursion detected, skipping proofs of (co)induction rules"
   48.74  
   48.75 -text {* Note that @{text d7.induct} is absent. *}
   48.76 +text \<open>Note that \<open>d7.induct\<close> is absent.\<close>
   48.77  
   48.78 -text {*
   48.79 +text \<open>
   48.80    Indirect recursion is also allowed using previously-defined datatypes.
   48.81 -*}
   48.82 +\<close>
   48.83  
   48.84  domain 'a slist = SNil | SCons 'a "'a slist"
   48.85  
   48.86  domain 'a stree = STip | SBranch "'a stree slist"
   48.87  
   48.88 -text {* Mutually-recursive datatypes can be defined using the @{text "and"} keyword. *}
   48.89 +text \<open>Mutually-recursive datatypes can be defined using the \<open>and\<close> keyword.\<close>
   48.90  
   48.91  domain d8 = d8a | d8b "d9" and d9 = d9a | d9b (lazy "d8")
   48.92  
   48.93 -text {* Non-regular recursion is not allowed. *}
   48.94 +text \<open>Non-regular recursion is not allowed.\<close>
   48.95  (*
   48.96  domain ('a, 'b) altlist = ANil | ACons 'a "('b, 'a) altlist"
   48.97    -- "illegal direct recursion with different arguments"
   48.98 @@ -81,54 +81,54 @@
   48.99    -- "illegal direct recursion with different arguments"
  48.100  *)
  48.101  
  48.102 -text {*
  48.103 +text \<open>
  48.104    Mutually-recursive datatypes must have all the same type arguments,
  48.105    not necessarily in the same order.
  48.106 -*}
  48.107 +\<close>
  48.108  
  48.109  domain ('a, 'b) list1 = Nil1 | Cons1 'a "('b, 'a) list2"
  48.110     and ('b, 'a) list2 = Nil2 | Cons2 'b "('a, 'b) list1"
  48.111  
  48.112 -text {* Induction rules for flat datatypes have no admissibility side-condition. *}
  48.113 +text \<open>Induction rules for flat datatypes have no admissibility side-condition.\<close>
  48.114  
  48.115  domain 'a flattree = Tip | Branch "'a flattree" "'a flattree"
  48.116  
  48.117  lemma "\<lbrakk>P \<bottom>; P Tip; \<And>x y. \<lbrakk>x \<noteq> \<bottom>; y \<noteq> \<bottom>; P x; P y\<rbrakk> \<Longrightarrow> P (Branch\<cdot>x\<cdot>y)\<rbrakk> \<Longrightarrow> P x"
  48.118 -by (rule flattree.induct) -- "no admissibility requirement"
  48.119 +by (rule flattree.induct) \<comment> "no admissibility requirement"
  48.120  
  48.121 -text {* Trivial datatypes will produce a warning message. *}
  48.122 +text \<open>Trivial datatypes will produce a warning message.\<close>
  48.123  
  48.124  domain triv = Triv triv triv
  48.125 -  -- "domain @{text Domain_ex.triv} is empty!"
  48.126 +  \<comment> "domain \<open>Domain_ex.triv\<close> is empty!"
  48.127  
  48.128  lemma "(x::triv) = \<bottom>" by (induct x, simp_all)
  48.129  
  48.130 -text {* Lazy constructor arguments may have unpointed types. *}
  48.131 +text \<open>Lazy constructor arguments may have unpointed types.\<close>
  48.132  
  48.133  domain natlist = nnil | ncons (lazy "nat discr") natlist
  48.134  
  48.135 -text {* Class constraints may be given for type parameters on the LHS. *}
  48.136 +text \<open>Class constraints may be given for type parameters on the LHS.\<close>
  48.137  
  48.138  domain ('a::predomain) box = Box (lazy 'a)
  48.139  
  48.140  domain ('a::countable) stream = snil | scons (lazy "'a discr") "'a stream"
  48.141  
  48.142  
  48.143 -subsection {* Generated constants and theorems *}
  48.144 +subsection \<open>Generated constants and theorems\<close>
  48.145  
  48.146  domain 'a tree = Leaf (lazy 'a) | Node (left :: "'a tree") (right :: "'a tree")
  48.147  
  48.148  lemmas tree_abs_bottom_iff =
  48.149    iso.abs_bottom_iff [OF iso.intro [OF tree.abs_iso tree.rep_iso]]
  48.150  
  48.151 -text {* Rules about ismorphism *}
  48.152 +text \<open>Rules about ismorphism\<close>
  48.153  term tree_rep
  48.154  term tree_abs
  48.155  thm tree.rep_iso
  48.156  thm tree.abs_iso
  48.157  thm tree.iso_rews
  48.158  
  48.159 -text {* Rules about constructors *}
  48.160 +text \<open>Rules about constructors\<close>
  48.161  term Leaf
  48.162  term Node
  48.163  thm Leaf_def Node_def
  48.164 @@ -141,27 +141,27 @@
  48.165  thm tree.inverts
  48.166  thm tree.injects
  48.167  
  48.168 -text {* Rules about case combinator *}
  48.169 +text \<open>Rules about case combinator\<close>
  48.170  term tree_case
  48.171  thm tree.tree_case_def
  48.172  thm tree.case_rews
  48.173  
  48.174 -text {* Rules about selectors *}
  48.175 +text \<open>Rules about selectors\<close>
  48.176  term left
  48.177  term right
  48.178  thm tree.sel_rews
  48.179  
  48.180 -text {* Rules about discriminators *}
  48.181 +text \<open>Rules about discriminators\<close>
  48.182  term is_Leaf
  48.183  term is_Node
  48.184  thm tree.dis_rews
  48.185  
  48.186 -text {* Rules about monadic pattern match combinators *}
  48.187 +text \<open>Rules about monadic pattern match combinators\<close>
  48.188  term match_Leaf
  48.189  term match_Node
  48.190  thm tree.match_rews
  48.191  
  48.192 -text {* Rules about take function *}
  48.193 +text \<open>Rules about take function\<close>
  48.194  term tree_take
  48.195  thm tree.take_def
  48.196  thm tree.take_0
  48.197 @@ -176,23 +176,23 @@
  48.198  thm tree.reach
  48.199  thm tree.finite_induct
  48.200  
  48.201 -text {* Rules about finiteness predicate *}
  48.202 +text \<open>Rules about finiteness predicate\<close>
  48.203  term tree_finite
  48.204  thm tree.finite_def
  48.205  thm tree.finite (* only generated for flat datatypes *)
  48.206  
  48.207 -text {* Rules about bisimulation predicate *}
  48.208 +text \<open>Rules about bisimulation predicate\<close>
  48.209  term tree_bisim
  48.210  thm tree.bisim_def
  48.211  thm tree.coinduct
  48.212  
  48.213 -text {* Induction rule *}
  48.214 +text \<open>Induction rule\<close>
  48.215  thm tree.induct
  48.216  
  48.217  
  48.218 -subsection {* Known bugs *}
  48.219 +subsection \<open>Known bugs\<close>
  48.220  
  48.221 -text {* Declaring a mixfix with spaces causes some strange parse errors. *}
  48.222 +text \<open>Declaring a mixfix with spaces causes some strange parse errors.\<close>
  48.223  (*
  48.224  domain xx = xx ("x y")
  48.225    -- "Inner syntax error: unexpected end of input"
    49.1 --- a/src/HOL/HOLCF/Tutorial/Fixrec_ex.thy	Wed Jan 13 23:02:28 2016 +0100
    49.2 +++ b/src/HOL/HOLCF/Tutorial/Fixrec_ex.thy	Wed Jan 13 23:07:06 2016 +0100
    49.3 @@ -2,50 +2,50 @@
    49.4      Author:     Brian Huffman
    49.5  *)
    49.6  
    49.7 -section {* Fixrec package examples *}
    49.8 +section \<open>Fixrec package examples\<close>
    49.9  
   49.10  theory Fixrec_ex
   49.11  imports HOLCF
   49.12  begin
   49.13  
   49.14 -subsection {* Basic @{text fixrec} examples *}
   49.15 +subsection \<open>Basic \<open>fixrec\<close> examples\<close>
   49.16  
   49.17 -text {*
   49.18 +text \<open>
   49.19    Fixrec patterns can mention any constructor defined by the domain
   49.20    package, as well as any of the following built-in constructors:
   49.21    Pair, spair, sinl, sinr, up, ONE, TT, FF.
   49.22 -*}
   49.23 +\<close>
   49.24  
   49.25 -text {* Typical usage is with lazy constructors. *}
   49.26 +text \<open>Typical usage is with lazy constructors.\<close>
   49.27  
   49.28  fixrec down :: "'a u \<rightarrow> 'a"
   49.29  where "down\<cdot>(up\<cdot>x) = x"
   49.30  
   49.31 -text {* With strict constructors, rewrite rules may require side conditions. *}
   49.32 +text \<open>With strict constructors, rewrite rules may require side conditions.\<close>
   49.33  
   49.34  fixrec from_sinl :: "'a \<oplus> 'b \<rightarrow> 'a"
   49.35  where "x \<noteq> \<bottom> \<Longrightarrow> from_sinl\<cdot>(sinl\<cdot>x) = x"
   49.36  
   49.37 -text {* Lifting can turn a strict constructor into a lazy one. *}
   49.38 +text \<open>Lifting can turn a strict constructor into a lazy one.\<close>
   49.39  
   49.40  fixrec from_sinl_up :: "'a u \<oplus> 'b \<rightarrow> 'a"
   49.41  where "from_sinl_up\<cdot>(sinl\<cdot>(up\<cdot>x)) = x"
   49.42  
   49.43 -text {* Fixrec also works with the HOL pair constructor. *}
   49.44 +text \<open>Fixrec also works with the HOL pair constructor.\<close>
   49.45  
   49.46  fixrec down2 :: "'a u \<times> 'b u \<rightarrow> 'a \<times> 'b"
   49.47  where "down2\<cdot>(up\<cdot>x, up\<cdot>y) = (x, y)"
   49.48  
   49.49  
   49.50 -subsection {* Examples using @{text fixrec_simp} *}
   49.51 +subsection \<open>Examples using \<open>fixrec_simp\<close>\<close>
   49.52  
   49.53 -text {* A type of lazy lists. *}
   49.54 +text \<open>A type of lazy lists.\<close>
   49.55  
   49.56  domain 'a llist = lNil | lCons (lazy 'a) (lazy "'a llist")
   49.57  
   49.58 -text {* A zip function for lazy lists. *}
   49.59 +text \<open>A zip function for lazy lists.\<close>
   49.60  
   49.61 -text {* Notice that the patterns are not exhaustive. *}
   49.62 +text \<open>Notice that the patterns are not exhaustive.\<close>
   49.63  
   49.64  fixrec
   49.65    lzip :: "'a llist \<rightarrow> 'b llist \<rightarrow> ('a \<times> 'b) llist"
   49.66 @@ -53,8 +53,8 @@
   49.67    "lzip\<cdot>(lCons\<cdot>x\<cdot>xs)\<cdot>(lCons\<cdot>y\<cdot>ys) = lCons\<cdot>(x, y)\<cdot>(lzip\<cdot>xs\<cdot>ys)"
   49.68  | "lzip\<cdot>lNil\<cdot>lNil = lNil"
   49.69  
   49.70 -text {* @{text fixrec_simp} is useful for producing strictness theorems. *}
   49.71 -text {* Note that pattern matching is done in left-to-right order. *}
   49.72 +text \<open>\<open>fixrec_simp\<close> is useful for producing strictness theorems.\<close>
   49.73 +text \<open>Note that pattern matching is done in left-to-right order.\<close>
   49.74  
   49.75  lemma lzip_stricts [simp]:
   49.76    "lzip\<cdot>\<bottom>\<cdot>ys = \<bottom>"
   49.77 @@ -62,7 +62,7 @@
   49.78    "lzip\<cdot>(lCons\<cdot>x\<cdot>xs)\<cdot>\<bottom> = \<bottom>"
   49.79  by fixrec_simp+
   49.80  
   49.81 -text {* @{text fixrec_simp} can also produce rules for missing cases. *}
   49.82 +text \<open>\<open>fixrec_simp\<close> can also produce rules for missing cases.\<close>
   49.83  
   49.84  lemma lzip_undefs [simp]:
   49.85    "lzip\<cdot>lNil\<cdot>(lCons\<cdot>y\<cdot>ys) = \<bottom>"
   49.86 @@ -70,14 +70,13 @@
   49.87  by fixrec_simp+
   49.88  
   49.89  
   49.90 -subsection {* Pattern matching with bottoms *}
   49.91 +subsection \<open>Pattern matching with bottoms\<close>
   49.92  
   49.93 -text {*
   49.94 -  As an alternative to using @{text fixrec_simp}, it is also possible
   49.95 +text \<open>
   49.96 +  As an alternative to using \<open>fixrec_simp\<close>, it is also possible
   49.97    to use bottom as a constructor pattern.  When using a bottom
   49.98 -  pattern, the right-hand-side must also be bottom; otherwise, @{text
   49.99 -  fixrec} will not be able to prove the equation.
  49.100 -*}
  49.101 +  pattern, the right-hand-side must also be bottom; otherwise, \<open>fixrec\<close> will not be able to prove the equation.
  49.102 +\<close>
  49.103  
  49.104  fixrec
  49.105    from_sinr_up :: "'a \<oplus> 'b\<^sub>\<bottom> \<rightarrow> 'b"
  49.106 @@ -85,18 +84,18 @@
  49.107    "from_sinr_up\<cdot>\<bottom> = \<bottom>"
  49.108  | "from_sinr_up\<cdot>(sinr\<cdot>(up\<cdot>x)) = x"
  49.109  
  49.110 -text {*
  49.111 +text \<open>
  49.112    If the function is already strict in that argument, then the bottom
  49.113    pattern does not change the meaning of the function.  For example,
  49.114    in the definition of @{term from_sinr_up}, the first equation is
  49.115    actually redundant, and could have been proven separately by
  49.116 -  @{text fixrec_simp}.
  49.117 -*}
  49.118 +  \<open>fixrec_simp\<close>.
  49.119 +\<close>
  49.120  
  49.121 -text {*
  49.122 +text \<open>
  49.123    A bottom pattern can also be used to make a function strict in a
  49.124    certain argument, similar to a bang-pattern in Haskell.
  49.125 -*}
  49.126 +\<close>
  49.127  
  49.128  fixrec
  49.129    seq :: "'a \<rightarrow> 'b \<rightarrow> 'b"
  49.130 @@ -105,15 +104,15 @@
  49.131  | "x \<noteq> \<bottom> \<Longrightarrow> seq\<cdot>x\<cdot>y = y"
  49.132  
  49.133  
  49.134 -subsection {* Skipping proofs of rewrite rules *}
  49.135 +subsection \<open>Skipping proofs of rewrite rules\<close>
  49.136  
  49.137 -text {* Another zip function for lazy lists. *}
  49.138 +text \<open>Another zip function for lazy lists.\<close>
  49.139  
  49.140 -text {*
  49.141 +text \<open>
  49.142    Notice that this version has overlapping patterns.
  49.143    The second equation cannot be proved as a theorem
  49.144    because it only applies when the first pattern fails.
  49.145 -*}
  49.146 +\<close>
  49.147  
  49.148  fixrec
  49.149    lzip2 :: "'a llist \<rightarrow> 'b llist \<rightarrow> ('a \<times> 'b) llist"
  49.150 @@ -121,13 +120,13 @@
  49.151    "lzip2\<cdot>(lCons\<cdot>x\<cdot>xs)\<cdot>(lCons\<cdot>y\<cdot>ys) = lCons\<cdot>(x, y)\<cdot>(lzip2\<cdot>xs\<cdot>ys)"
  49.152  | (unchecked) "lzip2\<cdot>xs\<cdot>ys = lNil"
  49.153  
  49.154 -text {*
  49.155 +text \<open>
  49.156    Usually fixrec tries to prove all equations as theorems.
  49.157    The "unchecked" option overrides this behavior, so fixrec
  49.158    does not attempt to prove that particular equation.
  49.159 -*}
  49.160 +\<close>
  49.161  
  49.162 -text {* Simp rules can be generated later using @{text fixrec_simp}. *}
  49.163 +text \<open>Simp rules can be generated later using \<open>fixrec_simp\<close>.\<close>
  49.164  
  49.165  lemma lzip2_simps [simp]:
  49.166    "lzip2\<cdot>(lCons\<cdot>x\<cdot>xs)\<cdot>lNil = lNil"
  49.167 @@ -141,17 +140,17 @@
  49.168  by fixrec_simp+
  49.169  
  49.170  
  49.171 -subsection {* Mutual recursion with @{text fixrec} *}
  49.172 +subsection \<open>Mutual recursion with \<open>fixrec\<close>\<close>
  49.173  
  49.174 -text {* Tree and forest types. *}
  49.175 +text \<open>Tree and forest types.\<close>
  49.176  
  49.177  domain 'a tree = Leaf (lazy 'a) | Branch (lazy "'a forest")
  49.178  and    'a forest = Empty | Trees (lazy "'a tree") "'a forest"
  49.179  
  49.180 -text {*
  49.181 +text \<open>
  49.182    To define mutually recursive functions, give multiple type signatures
  49.183 -  separated by the keyword @{text "and"}.
  49.184 -*}
  49.185 +  separated by the keyword \<open>and\<close>.
  49.186 +\<close>
  49.187  
  49.188  fixrec
  49.189    map_tree :: "('a \<rightarrow> 'b) \<rightarrow> ('a tree \<rightarrow> 'b tree)"
  49.190 @@ -182,25 +181,25 @@
  49.191  *)
  49.192  
  49.193  
  49.194 -subsection {* Looping simp rules *}
  49.195 +subsection \<open>Looping simp rules\<close>
  49.196  
  49.197 -text {*
  49.198 +text \<open>
  49.199    The defining equations of a fixrec definition are declared as simp
  49.200    rules by default.  In some cases, especially for constants with no
  49.201    arguments or functions with variable patterns, the defining
  49.202    equations may cause the simplifier to loop.  In these cases it will
  49.203 -  be necessary to use a @{text "[simp del]"} declaration.
  49.204 -*}
  49.205 +  be necessary to use a \<open>[simp del]\<close> declaration.
  49.206 +\<close>
  49.207  
  49.208  fixrec
  49.209    repeat :: "'a \<rightarrow> 'a llist"
  49.210  where
  49.211    [simp del]: "repeat\<cdot>x = lCons\<cdot>x\<cdot>(repeat\<cdot>x)"
  49.212  
  49.213 -text {*
  49.214 +text \<open>
  49.215    We can derive other non-looping simp rules for @{const repeat} by
  49.216 -  using the @{text subst} method with the @{text repeat.simps} rule.
  49.217 -*}
  49.218 +  using the \<open>subst\<close> method with the \<open>repeat.simps\<close> rule.
  49.219 +\<close>
  49.220  
  49.221  lemma repeat_simps [simp]:
  49.222    "repeat\<cdot>x \<noteq> \<bottom>"
  49.223 @@ -212,11 +211,11 @@
  49.224    "llist_case\<cdot>z\<cdot>f\<cdot>(repeat\<cdot>x) = f\<cdot>x\<cdot>(repeat\<cdot>x)"
  49.225  by (subst repeat.simps, simp)
  49.226  
  49.227 -text {*
  49.228 +text \<open>
  49.229    For mutually-recursive constants, looping might only occur if all
  49.230    equations are in the simpset at the same time.  In such cases it may
  49.231 -  only be necessary to declare @{text "[simp del]"} on one equation.
  49.232 -*}
  49.233 +  only be necessary to declare \<open>[simp del]\<close> on one equation.
  49.234 +\<close>
  49.235  
  49.236  fixrec
  49.237    inf_tree :: "'a tree" and inf_forest :: "'a forest"
  49.238 @@ -225,7 +224,7 @@
  49.239  | "inf_forest = Trees\<cdot>inf_tree\<cdot>(Trees\<cdot>inf_tree\<cdot>Empty)"
  49.240  
  49.241  
  49.242 -subsection {* Using @{text fixrec} inside locales *}
  49.243 +subsection \<open>Using \<open>fixrec\<close> inside locales\<close>
  49.244  
  49.245  locale test =
  49.246    fixes foo :: "'a \<rightarrow> 'a"
    50.1 --- a/src/HOL/HOLCF/Tutorial/New_Domain.thy	Wed Jan 13 23:02:28 2016 +0100
    50.2 +++ b/src/HOL/HOLCF/Tutorial/New_Domain.thy	Wed Jan 13 23:07:06 2016 +0100
    50.3 @@ -2,57 +2,57 @@
    50.4      Author:     Brian Huffman
    50.5  *)
    50.6  
    50.7 -section {* Definitional domain package *}
    50.8 +section \<open>Definitional domain package\<close>
    50.9  
   50.10  theory New_Domain
   50.11  imports HOLCF
   50.12  begin
   50.13  
   50.14 -text {*
   50.15 +text \<open>
   50.16    UPDATE: The definitional back-end is now the default mode of the domain
   50.17 -  package. This file should be merged with @{text Domain_ex.thy}.
   50.18 -*}
   50.19 +  package. This file should be merged with \<open>Domain_ex.thy\<close>.
   50.20 +\<close>
   50.21  
   50.22 -text {*
   50.23 -  Provided that @{text domain} is the default sort, the @{text new_domain}
   50.24 +text \<open>
   50.25 +  Provided that \<open>domain\<close> is the default sort, the \<open>new_domain\<close>
   50.26    package should work with any type definition supported by the old
   50.27    domain package.
   50.28 -*}
   50.29 +\<close>
   50.30  
   50.31  domain 'a llist = LNil | LCons (lazy 'a) (lazy "'a llist")
   50.32  
   50.33 -text {*
   50.34 +text \<open>
   50.35    The difference is that the new domain package is completely
   50.36    definitional, and does not generate any axioms.  The following type
   50.37    and constant definitions are not produced by the old domain package.
   50.38 -*}
   50.39 +\<close>
   50.40  
   50.41  thm type_definition_llist
   50.42  thm llist_abs_def llist_rep_def
   50.43  
   50.44 -text {*
   50.45 +text \<open>
   50.46    The new domain package also adds support for indirect recursion with
   50.47    user-defined datatypes.  This definition of a tree datatype uses
   50.48    indirect recursion through the lazy list type constructor.
   50.49 -*}
   50.50 +\<close>
   50.51  
   50.52  domain 'a ltree = Leaf (lazy 'a) | Branch (lazy "'a ltree llist")
   50.53  
   50.54 -text {*
   50.55 +text \<open>
   50.56    For indirect-recursive definitions, the domain package is not able to
   50.57    generate a high-level induction rule.  (It produces a warning
   50.58    message instead.)  The low-level reach lemma (now proved as a
   50.59    theorem, no longer generated as an axiom) can be used to derive
   50.60    other induction rules.
   50.61 -*}
   50.62 +\<close>
   50.63  
   50.64  thm ltree.reach
   50.65  
   50.66 -text {*
   50.67 +text \<open>
   50.68    The definition of the take function uses map functions associated with
   50.69    each type constructor involved in the definition.  A map function
   50.70    for the lazy list type has been generated by the new domain package.
   50.71 -*}
   50.72 +\<close>
   50.73  
   50.74  thm ltree.take_rews
   50.75  thm llist_map_def
    51.1 --- a/src/HOL/HOLCF/Universal.thy	Wed Jan 13 23:02:28 2016 +0100
    51.2 +++ b/src/HOL/HOLCF/Universal.thy	Wed Jan 13 23:07:06 2016 +0100
    51.3 @@ -2,15 +2,15 @@
    51.4      Author:     Brian Huffman
    51.5  *)
    51.6  
    51.7 -section {* A universal bifinite domain *}
    51.8 +section \<open>A universal bifinite domain\<close>
    51.9  
   51.10  theory Universal
   51.11  imports Bifinite Completion "~~/src/HOL/Library/Nat_Bijection"
   51.12  begin
   51.13  
   51.14 -subsection {* Basis for universal domain *}
   51.15 +subsection \<open>Basis for universal domain\<close>
   51.16  
   51.17 -subsubsection {* Basis datatype *}
   51.18 +subsubsection \<open>Basis datatype\<close>
   51.19  
   51.20  type_synonym ubasis = nat
   51.21  
   51.22 @@ -77,7 +77,7 @@
   51.23   apply (simp add: 2 node_gt1 node_gt2)
   51.24  done
   51.25  
   51.26 -subsubsection {* Basis ordering *}
   51.27 +subsubsection \<open>Basis ordering\<close>
   51.28  
   51.29  inductive
   51.30    ubasis_le :: "nat \<Rightarrow> nat \<Rightarrow> bool"
   51.31 @@ -103,7 +103,7 @@
   51.32  apply (erule (1) ubasis_le_trans)
   51.33  done
   51.34  
   51.35 -subsubsection {* Generic take function *}
   51.36 +subsubsection \<open>Generic take function\<close>
   51.37  
   51.38  function
   51.39    ubasis_until :: "(ubasis \<Rightarrow> bool) \<Rightarrow> ubasis \<Rightarrow> ubasis"
   51.40 @@ -195,7 +195,7 @@
   51.41  done
   51.42  
   51.43  
   51.44 -subsection {* Defining the universal domain by ideal completion *}
   51.45 +subsection \<open>Defining the universal domain by ideal completion\<close>
   51.46  
   51.47  typedef udom = "{S. udom.ideal S}"
   51.48  by (rule udom.ex_ideal)
   51.49 @@ -230,7 +230,7 @@
   51.50  using udom_principal_def ubasis_countable
   51.51  by (rule udom.typedef_ideal_completion)
   51.52  
   51.53 -text {* Universal domain is pointed *}
   51.54 +text \<open>Universal domain is pointed\<close>
   51.55  
   51.56  lemma udom_minimal: "udom_principal 0 \<sqsubseteq> x"
   51.57  apply (induct x rule: udom.principal_induct)
   51.58 @@ -244,7 +244,7 @@
   51.59  by (rule udom_minimal [THEN bottomI, symmetric])
   51.60  
   51.61  
   51.62 -subsection {* Compact bases of domains *}
   51.63 +subsection \<open>Compact bases of domains\<close>
   51.64  
   51.65  typedef 'a compact_basis = "{x::'a::pcpo. compact x}"
   51.66  by auto
   51.67 @@ -285,16 +285,16 @@
   51.68  unfolding compact_le_def Rep_compact_bot by simp
   51.69  
   51.70  
   51.71 -subsection {* Universality of \emph{udom} *}
   51.72 +subsection \<open>Universality of \emph{udom}\<close>
   51.73  
   51.74 -text {* We use a locale to parameterize the construction over a chain
   51.75 -of approx functions on the type to be embedded. *}
   51.76 +text \<open>We use a locale to parameterize the construction over a chain
   51.77 +of approx functions on the type to be embedded.\<close>
   51.78  
   51.79  locale bifinite_approx_chain =
   51.80    approx_chain approx for approx :: "nat \<Rightarrow> 'a::bifinite \<rightarrow> 'a"
   51.81  begin
   51.82  
   51.83 -subsubsection {* Choosing a maximal element from a finite set *}
   51.84 +subsubsection \<open>Choosing a maximal element from a finite set\<close>
   51.85  
   51.86  lemma finite_has_maximal:
   51.87    fixes A :: "'a compact_basis set"
   51.88 @@ -304,7 +304,7 @@
   51.89      show ?case by simp
   51.90  next
   51.91    case (insert a A)
   51.92 -  from `\<exists>x\<in>A. \<forall>y\<in>A. x \<sqsubseteq> y \<longrightarrow> x = y`
   51.93 +  from \<open>\<exists>x\<in>A. \<forall>y\<in>A. x \<sqsubseteq> y \<longrightarrow> x = y\<close>
   51.94    obtain x where x: "x \<in> A"
   51.95             and x_eq: "\<And>y. \<lbrakk>y \<in> A; x \<sqsubseteq> y\<rbrakk> \<Longrightarrow> x = y" by fast
   51.96    show ?case
   51.97 @@ -408,7 +408,7 @@
   51.98   apply (simp add: choose_pos.simps)
   51.99  done
  51.100  
  51.101 -subsubsection {* Compact basis take function *}
  51.102 +subsubsection \<open>Compact basis take function\<close>
  51.103  
  51.104  primrec
  51.105    cb_take :: "nat \<Rightarrow> 'a compact_basis \<Rightarrow> 'a compact_basis" where
  51.106 @@ -462,7 +462,7 @@
  51.107  apply (rule inj_onI, simp add: Rep_compact_basis_inject)
  51.108  done
  51.109  
  51.110 -subsubsection {* Rank of basis elements *}
  51.111 +subsubsection \<open>Rank of basis elements\<close>
  51.112  
  51.113  definition
  51.114    rank :: "'a compact_basis \<Rightarrow> nat"
  51.115 @@ -541,7 +541,7 @@
  51.116  lemma rank_lt_Un_rank_eq: "rank_lt x \<union> rank_eq x = rank_le x"
  51.117  unfolding rank_lt_def rank_eq_def rank_le_def by auto
  51.118  
  51.119 -subsubsection {* Sequencing basis elements *}
  51.120 +subsubsection \<open>Sequencing basis elements\<close>
  51.121  
  51.122  definition
  51.123    place :: "'a compact_basis \<Rightarrow> nat"
  51.124 @@ -590,7 +590,7 @@
  51.125  lemma inj_place: "inj place"
  51.126  by (rule inj_onI, erule place_eqD)
  51.127  
  51.128 -subsubsection {* Embedding and projection on basis elements *}
  51.129 +subsubsection \<open>Embedding and projection on basis elements\<close>
  51.130  
  51.131  definition
  51.132    sub :: "'a compact_basis \<Rightarrow> 'a compact_basis"
  51.133 @@ -672,15 +672,15 @@
  51.134    show ?case proof (rule linorder_cases)
  51.135      assume "place x < place y"
  51.136      then have "rank x < rank y"
  51.137 -      using `x \<sqsubseteq> y` by (rule rank_place_mono)
  51.138 -    with `place x < place y` show ?case
  51.139 +      using \<open>x \<sqsubseteq> y\<close> by (rule rank_place_mono)
  51.140 +    with \<open>place x < place y\<close> show ?case
  51.141        apply (case_tac "y = compact_bot", simp)
  51.142        apply (simp add: basis_emb.simps [of y])
  51.143        apply (rule ubasis_le_trans [OF _ ubasis_le_lower [OF fin2]])
  51.144        apply (rule less)
  51.145         apply (simp add: less_max_iff_disj)
  51.146         apply (erule place_sub_less)
  51.147 -      apply (erule rank_less_imp_below_sub [OF `x \<sqsubseteq> y`])
  51.148 +      apply (erule rank_less_imp_below_sub [OF \<open>x \<sqsubseteq> y\<close>])
  51.149        done
  51.150    next
  51.151      assume "place x = place y"
  51.152 @@ -688,7 +688,7 @@
  51.153      thus ?case by (simp add: ubasis_le_refl)
  51.154    next
  51.155      assume "place x > place y"
  51.156 -    with `x \<sqsubseteq> y` show ?case
  51.157 +    with \<open>x \<sqsubseteq> y\<close> show ?case
  51.158        apply (case_tac "x = compact_bot", simp add: ubasis_le_minimal)
  51.159        apply (simp add: basis_emb.simps [of x])
  51.160        apply (rule ubasis_le_upper [OF fin2], simp)
  51.161 @@ -848,7 +848,7 @@
  51.162      by (rule bifinite_approx_chain.ideal_completion)
  51.163  qed
  51.164  
  51.165 -subsubsection {* EP-pair from any bifinite domain into \emph{udom} *}
  51.166 +subsubsection \<open>EP-pair from any bifinite domain into \emph{udom}\<close>
  51.167  
  51.168  context bifinite_approx_chain begin
  51.169  
  51.170 @@ -896,7 +896,7 @@
  51.171  lemmas ep_pair_udom =
  51.172    bifinite_approx_chain.ep_pair_udom [unfolded bifinite_approx_chain_def]
  51.173  
  51.174 -subsection {* Chain of approx functions for type \emph{udom} *}
  51.175 +subsection \<open>Chain of approx functions for type \emph{udom}\<close>
  51.176  
  51.177  definition
  51.178    udom_approx :: "nat \<Rightarrow> udom \<rightarrow> udom"
    52.1 --- a/src/HOL/HOLCF/Up.thy	Wed Jan 13 23:02:28 2016 +0100
    52.2 +++ b/src/HOL/HOLCF/Up.thy	Wed Jan 13 23:07:06 2016 +0100
    52.3 @@ -3,7 +3,7 @@
    52.4      Author:     Brian Huffman
    52.5  *)
    52.6  
    52.7 -section {* The type of lifted values *}
    52.8 +section \<open>The type of lifted values\<close>
    52.9  
   52.10  theory Up
   52.11  imports Cfun
   52.12 @@ -11,7 +11,7 @@
   52.13  
   52.14  default_sort cpo
   52.15  
   52.16 -subsection {* Definition of new type for lifting *}
   52.17 +subsection \<open>Definition of new type for lifting\<close>
   52.18  
   52.19  datatype 'a u  ("(_\<^sub>\<bottom>)" [1000] 999) = Ibottom | Iup 'a
   52.20  
   52.21 @@ -19,7 +19,7 @@
   52.22      "Ifup f Ibottom = \<bottom>"
   52.23   |  "Ifup f (Iup x) = f\<cdot>x"
   52.24  
   52.25 -subsection {* Ordering on lifted cpo *}
   52.26 +subsection \<open>Ordering on lifted cpo\<close>
   52.27  
   52.28  instantiation u :: (cpo) below
   52.29  begin
   52.30 @@ -41,7 +41,7 @@
   52.31  lemma Iup_below [iff]: "(Iup x \<sqsubseteq> Iup y) = (x \<sqsubseteq> y)"
   52.32  by (simp add: below_up_def)
   52.33  
   52.34 -subsection {* Lifted cpo is a partial order *}
   52.35 +subsection \<open>Lifted cpo is a partial order\<close>
   52.36  
   52.37  instance u :: (cpo) po
   52.38  proof
   52.39 @@ -60,7 +60,7 @@
   52.40      by (auto split: u.split_asm intro: below_trans)
   52.41  qed
   52.42  
   52.43 -subsection {* Lifted cpo is a cpo *}
   52.44 +subsection \<open>Lifted cpo is a cpo\<close>
   52.45  
   52.46  lemma is_lub_Iup:
   52.47    "range S <<| x \<Longrightarrow> range (\<lambda>i. Iup (S i)) <<| Iup x"
   52.48 @@ -117,18 +117,18 @@
   52.49    qed
   52.50  qed
   52.51  
   52.52 -subsection {* Lifted cpo is pointed *}
   52.53 +subsection \<open>Lifted cpo is pointed\<close>
   52.54  
   52.55  instance u :: (cpo) pcpo
   52.56  by intro_classes fast
   52.57  
   52.58 -text {* for compatibility with old HOLCF-Version *}
   52.59 +text \<open>for compatibility with old HOLCF-Version\<close>
   52.60  lemma inst_up_pcpo: "\<bottom> = Ibottom"
   52.61  by (rule minimal_up [THEN bottomI, symmetric])
   52.62  
   52.63 -subsection {* Continuity of \emph{Iup} and \emph{Ifup} *}
   52.64 +subsection \<open>Continuity of \emph{Iup} and \emph{Ifup}\<close>
   52.65  
   52.66 -text {* continuity for @{term Iup} *}
   52.67 +text \<open>continuity for @{term Iup}\<close>
   52.68  
   52.69  lemma cont_Iup: "cont Iup"
   52.70  apply (rule contI)
   52.71 @@ -136,7 +136,7 @@
   52.72  apply (erule cpo_lubI)
   52.73  done
   52.74  
   52.75 -text {* continuity for @{term Ifup} *}
   52.76 +text \<open>continuity for @{term Ifup}\<close>
   52.77  
   52.78  lemma cont_Ifup1: "cont (\<lambda>f. Ifup f x)"
   52.79  by (induct x, simp_all)
   52.80 @@ -166,7 +166,7 @@
   52.81    qed simp
   52.82  qed (rule monofun_Ifup2)
   52.83  
   52.84 -subsection {* Continuous versions of constants *}
   52.85 +subsection \<open>Continuous versions of constants\<close>
   52.86  
   52.87  definition
   52.88    up  :: "'a \<rightarrow> 'a u" where
   52.89 @@ -181,7 +181,7 @@
   52.90    "case l of (XCONST up :: 'a)\<cdot>x \<Rightarrow> t" => "CONST fup\<cdot>(\<Lambda> x. t)\<cdot>l"
   52.91    "\<Lambda>(XCONST up\<cdot>x). t" == "CONST fup\<cdot>(\<Lambda> x. t)"
   52.92  
   52.93 -text {* continuous versions of lemmas for @{typ "('a)u"} *}
   52.94 +text \<open>continuous versions of lemmas for @{typ "('a)u"}\<close>
   52.95  
   52.96  lemma Exh_Up: "z = \<bottom> \<or> (\<exists>x. z = up\<cdot>x)"
   52.97  apply (induct z)
   52.98 @@ -215,7 +215,7 @@
   52.99    "\<lbrakk>P \<bottom>; \<And>x. P (up\<cdot>x)\<rbrakk> \<Longrightarrow> P x"
  52.100  by (cases x, simp_all)
  52.101  
  52.102 -text {* lifting preserves chain-finiteness *}
  52.103 +text \<open>lifting preserves chain-finiteness\<close>
  52.104  
  52.105  lemma up_chain_cases:
  52.106    assumes Y: "chain Y" obtains "\<forall>i. Y i = \<bottom>"
  52.107 @@ -247,7 +247,7 @@
  52.108  apply (rule_tac p="\<Squnion>i. Y i" in upE, simp_all)
  52.109  done
  52.110  
  52.111 -text {* properties of fup *}
  52.112 +text \<open>properties of fup\<close>
  52.113  
  52.114  lemma fup1 [simp]: "fup\<cdot>f\<cdot>\<bottom> = \<bottom>"
  52.115  by (simp add: fup_def cont_Ifup1 cont_Ifup2 inst_up_pcpo cont2cont_LAM)
    53.1 --- a/src/HOL/HOLCF/UpperPD.thy	Wed Jan 13 23:02:28 2016 +0100
    53.2 +++ b/src/HOL/HOLCF/UpperPD.thy	Wed Jan 13 23:07:06 2016 +0100
    53.3 @@ -2,13 +2,13 @@
    53.4      Author:     Brian Huffman
    53.5  *)
    53.6  
    53.7 -section {* Upper powerdomain *}
    53.8 +section \<open>Upper powerdomain\<close>
    53.9  
   53.10  theory UpperPD
   53.11  imports Compact_Basis
   53.12  begin
   53.13  
   53.14 -subsection {* Basis preorder *}
   53.15 +subsection \<open>Basis preorder\<close>
   53.16  
   53.17  definition
   53.18    upper_le :: "'a pd_basis \<Rightarrow> 'a pd_basis \<Rightarrow> bool" (infix "\<le>\<sharp>" 50) where
   53.19 @@ -70,7 +70,7 @@
   53.20  done
   53.21  
   53.22  
   53.23 -subsection {* Type definition *}
   53.24 +subsection \<open>Type definition\<close>
   53.25  
   53.26  typedef 'a upper_pd  ("('(_')\<sharp>)") =
   53.27    "{S::'a pd_basis set. upper_le.ideal S}"
   53.28 @@ -103,7 +103,7 @@
   53.29  using upper_principal_def pd_basis_countable
   53.30  by (rule upper_le.typedef_ideal_completion)
   53.31  
   53.32 -text {* Upper powerdomain is pointed *}
   53.33 +text \<open>Upper powerdomain is pointed\<close>
   53.34  
   53.35  lemma upper_pd_minimal: "upper_principal (PDUnit compact_bot) \<sqsubseteq> ys"
   53.36  by (induct ys rule: upper_pd.principal_induct, simp, simp)
   53.37 @@ -115,7 +115,7 @@
   53.38  by (rule upper_pd_minimal [THEN bottomI, symmetric])
   53.39  
   53.40  
   53.41 -subsection {* Monadic unit and plus *}
   53.42 +subsection \<open>Monadic unit and plus\<close>
   53.43  
   53.44  definition
   53.45    upper_unit :: "'a \<rightarrow> 'a upper_pd" where
   53.46 @@ -174,11 +174,11 @@
   53.47  lemmas upper_plus_left_commute = upper_add.left_commute
   53.48  lemmas upper_plus_left_absorb = upper_add.left_idem
   53.49  
   53.50 -text {* Useful for @{text "simp add: upper_plus_ac"} *}
   53.51 +text \<open>Useful for \<open>simp add: upper_plus_ac\<close>\<close>
   53.52  lemmas upper_plus_ac =
   53.53    upper_plus_assoc upper_plus_commute upper_plus_left_commute
   53.54  
   53.55 -text {* Useful for @{text "simp only: upper_plus_aci"} *}
   53.56 +text \<open>Useful for \<open>simp only: upper_plus_aci\<close>\<close>
   53.57  lemmas upper_plus_aci =
   53.58    upper_plus_ac upper_plus_absorb upper_plus_left_absorb
   53.59  
   53.60 @@ -261,7 +261,7 @@
   53.61  by (auto dest!: upper_pd.compact_imp_principal)
   53.62  
   53.63  
   53.64 -subsection {* Induction rules *}
   53.65 +subsection \<open>Induction rules\<close>
   53.66  
   53.67  lemma upper_pd_induct1:
   53.68    assumes P: "adm P"
   53.69 @@ -290,7 +290,7 @@
   53.70  done
   53.71  
   53.72  
   53.73 -subsection {* Monadic bind *}
   53.74 +subsection \<open>Monadic bind\<close>
   53.75  
   53.76  definition
   53.77    upper_bind_basis ::
   53.78 @@ -362,7 +362,7 @@
   53.79  by (induct xs, simp_all)
   53.80  
   53.81  
   53.82 -subsection {* Map *}
   53.83 +subsection \<open>Map\<close>
   53.84  
   53.85  definition
   53.86    upper_map :: "('a \<rightarrow> 'b) \<rightarrow> 'a upper_pd \<rightarrow> 'b upper_pd" where
   53.87 @@ -453,7 +453,7 @@
   53.88      by (rule finite_range_imp_finite_fixes)
   53.89  qed
   53.90  
   53.91 -subsection {* Upper powerdomain is bifinite *}
   53.92 +subsection \<open>Upper powerdomain is bifinite\<close>
   53.93  
   53.94  lemma approx_chain_upper_map:
   53.95    assumes "approx_chain a"
   53.96 @@ -468,7 +468,7 @@
   53.97      by (fast intro!: approx_chain_upper_map)
   53.98  qed
   53.99  
  53.100 -subsection {* Join *}
  53.101 +subsection \<open>Join\<close>
  53.102  
  53.103  definition
  53.104    upper_join :: "'a upper_pd upper_pd \<rightarrow> 'a upper_pd" where
    54.1 --- a/src/HOL/HOLCF/ex/Concurrency_Monad.thy	Wed Jan 13 23:02:28 2016 +0100
    54.2 +++ b/src/HOL/HOLCF/ex/Concurrency_Monad.thy	Wed Jan 13 23:07:06 2016 +0100
    54.3 @@ -6,10 +6,10 @@
    54.4  imports HOLCF
    54.5  begin
    54.6  
    54.7 -text {* This file contains the concurrency monad example from
    54.8 -  Chapter 7 of the author's PhD thesis. *}
    54.9 +text \<open>This file contains the concurrency monad example from
   54.10 +  Chapter 7 of the author's PhD thesis.\<close>
   54.11  
   54.12 -subsection {* State/nondeterminism monad, as a type synonym *}
   54.13 +subsection \<open>State/nondeterminism monad, as a type synonym\<close>
   54.14  
   54.15  type_synonym ('s, 'a) N = "'s \<rightarrow> ('a u \<otimes> 's u)\<natural>"
   54.16  
   54.17 @@ -90,7 +90,7 @@
   54.18  unfolding plusN_def by (simp add: eta_cfun)
   54.19  
   54.20  
   54.21 -subsection {* Resumption-state-nondeterminism monad *}
   54.22 +subsection \<open>Resumption-state-nondeterminism monad\<close>
   54.23  
   54.24  domain ('s, 'a) R = Done (lazy "'a") | More (lazy "('s, ('s, 'a) R) N")
   54.25  
   54.26 @@ -129,7 +129,7 @@
   54.27  by (simp add: mapN_def R.take_rews(2))
   54.28  
   54.29  
   54.30 -subsection {* Map function *}
   54.31 +subsection \<open>Map function\<close>
   54.32  
   54.33  fixrec mapR :: "('a \<rightarrow> 'b) \<rightarrow> ('s, 'a) R \<rightarrow> ('s, 'b) R"
   54.34    where "mapR\<cdot>f\<cdot>(Done\<cdot>a) = Done\<cdot>(f\<cdot>a)"
   54.35 @@ -155,7 +155,7 @@
   54.36  done
   54.37  
   54.38  
   54.39 -subsection {* Monadic bind function *}
   54.40 +subsection \<open>Monadic bind function\<close>
   54.41  
   54.42  fixrec bindR :: "('s, 'a) R \<rightarrow> ('a \<rightarrow> ('s, 'b) R) \<rightarrow> ('s, 'b) R"
   54.43    where "bindR\<cdot>(Done\<cdot>x)\<cdot>k = k\<cdot>x"
   54.44 @@ -178,7 +178,7 @@
   54.45  apply (simp_all add: mapN_mapN)
   54.46  done
   54.47  
   54.48 -subsection {* Zip function *}
   54.49 +subsection \<open>Zip function\<close>
   54.50  
   54.51  fixrec zipR :: "('a \<rightarrow> 'b \<rightarrow> 'c) \<rightarrow> ('s, 'a) R \<rightarrow> ('s, 'b) R \<rightarrow> ('s, 'c) R"
   54.52    where zipR_Done_Done:
   54.53 @@ -203,7 +203,7 @@
   54.54  abbreviation apR (infixl "\<diamondop>" 70)
   54.55    where "a \<diamondop> b \<equiv> zipR\<cdot>ID\<cdot>a\<cdot>b"
   54.56  
   54.57 -text {* Proofs that @{text zipR} satisfies the applicative functor laws: *}
   54.58 +text \<open>Proofs that \<open>zipR\<close> satisfies the applicative functor laws:\<close>
   54.59  
   54.60  lemma R_homomorphism: "Done\<cdot>f \<diamondop> Done\<cdot>x = Done\<cdot>(f\<cdot>x)"
   54.61    by simp
   54.62 @@ -214,7 +214,7 @@
   54.63  lemma R_interchange: "r \<diamondop> Done\<cdot>x = Done\<cdot>(\<Lambda> f. f\<cdot>x) \<diamondop> r"
   54.64    by (induct r, simp_all add: mapN_mapN)
   54.65  
   54.66 -text {* The associativity rule is the hard one! *}
   54.67 +text \<open>The associativity rule is the hard one!\<close>
   54.68  
   54.69  lemma R_associativity: "Done\<cdot>cfcomp \<diamondop> r1 \<diamondop> r2 \<diamondop> r3 = r1 \<diamondop> (r2 \<diamondop> r3)"
   54.70  proof (induct r1 arbitrary: r2 r3)
   54.71 @@ -258,7 +258,7 @@
   54.72    qed simp_all
   54.73  qed simp_all
   54.74  
   54.75 -text {* Other miscellaneous properties about @{text zipR}: *}
   54.76 +text \<open>Other miscellaneous properties about \<open>zipR\<close>:\<close>
   54.77  
   54.78  lemma zipR_Done_left:
   54.79    shows "zipR\<cdot>f\<cdot>(Done\<cdot>x)\<cdot>r = mapR\<cdot>(f\<cdot>x)\<cdot>r"
   54.80 @@ -358,7 +358,7 @@
   54.81   apply (simp add: mapN_mapN mapN_plusN plusN_assoc)
   54.82  done
   54.83  
   54.84 -text {* Alternative proof using take lemma. *}
   54.85 +text \<open>Alternative proof using take lemma.\<close>
   54.86  
   54.87  lemma
   54.88    fixes a :: "('s, 'a) R" and b :: "('s, 'b) R" and c :: "('s, 'c) R"
   54.89 @@ -398,7 +398,7 @@
   54.90              by (simp add: zipR_Done_right mapR_zipR zipR_mapR_right gf)
   54.91          next
   54.92            case (More nC)
   54.93 -          note H = `a = More\<cdot>nA` `b = More\<cdot>nB` `c = More\<cdot>nC`
   54.94 +          note H = \<open>a = More\<cdot>nA\<close> \<open>b = More\<cdot>nB\<close> \<open>c = More\<cdot>nC\<close>
   54.95            show ?P
   54.96              apply (simp only: H zipR_More_More)
   54.97              apply (simplesubst zipR_More_More [of f, symmetric])
    55.1 --- a/src/HOL/HOLCF/ex/Dnat.thy	Wed Jan 13 23:02:28 2016 +0100
    55.2 +++ b/src/HOL/HOLCF/ex/Dnat.thy	Wed Jan 13 23:07:06 2016 +0100
    55.3 @@ -16,9 +16,9 @@
    55.4      case n of dzero => x
    55.5        | dsucc $ m => f $ (h $ m $ f $ x))"
    55.6  
    55.7 -text {*
    55.8 +text \<open>
    55.9    \medskip Expand fixed point properties.
   55.10 -*}
   55.11 +\<close>
   55.12  
   55.13  lemma iterator_def2:
   55.14    "iterator = (LAM n f x. case n of dzero => x | dsucc$m => f$(iterator$m$f$x))"
   55.15 @@ -29,7 +29,7 @@
   55.16    apply simp
   55.17    done
   55.18  
   55.19 -text {* \medskip Recursive properties. *}
   55.20 +text \<open>\medskip Recursive properties.\<close>
   55.21  
   55.22  lemma iterator1: "iterator $ UU $ f $ x = UU"
   55.23    apply (subst iterator_def2)
    56.1 --- a/src/HOL/HOLCF/ex/Domain_Proofs.thy	Wed Jan 13 23:02:28 2016 +0100
    56.2 +++ b/src/HOL/HOLCF/ex/Domain_Proofs.thy	Wed Jan 13 23:07:06 2016 +0100
    56.3 @@ -2,7 +2,7 @@
    56.4      Author:     Brian Huffman
    56.5  *)
    56.6  
    56.7 -section {* Internal domain package proofs done manually *}
    56.8 +section \<open>Internal domain package proofs done manually\<close>
    56.9  
   56.10  theory Domain_Proofs
   56.11  imports HOLCF
   56.12 @@ -21,9 +21,9 @@
   56.13  
   56.14  (********************************************************************)
   56.15  
   56.16 -subsection {* Step 1: Define the new type combinators *}
   56.17 +subsection \<open>Step 1: Define the new type combinators\<close>
   56.18  
   56.19 -text {* Start with the one-step non-recursive version *}
   56.20 +text \<open>Start with the one-step non-recursive version\<close>
   56.21  
   56.22  definition
   56.23    foo_bar_baz_deflF ::
   56.24 @@ -42,7 +42,7 @@
   56.25  unfolding foo_bar_baz_deflF_def
   56.26  by (simp add: split_def)
   56.27  
   56.28 -text {* Individual type combinators are projected from the fixed point. *}
   56.29 +text \<open>Individual type combinators are projected from the fixed point.\<close>
   56.30  
   56.31  definition foo_defl :: "udom defl \<rightarrow> udom defl"
   56.32  where "foo_defl = (\<Lambda> a. fst (fix\<cdot>(foo_bar_baz_deflF\<cdot>a)))"
   56.33 @@ -59,7 +59,7 @@
   56.34    "baz_defl\<cdot>a = snd (snd (fix\<cdot>(foo_bar_baz_deflF\<cdot>a)))"
   56.35  unfolding foo_defl_def bar_defl_def baz_defl_def by simp_all
   56.36  
   56.37 -text {* Unfold rules for each combinator. *}
   56.38 +text \<open>Unfold rules for each combinator.\<close>
   56.39  
   56.40  lemma foo_defl_unfold:
   56.41    "foo_defl\<cdot>a = ssum_defl\<cdot>DEFL(one)\<cdot>(sprod_defl\<cdot>(u_defl\<cdot>a)\<cdot>(u_defl\<cdot>(bar_defl\<cdot>a)))"
   56.42 @@ -76,9 +76,9 @@
   56.43  
   56.44  (********************************************************************)
   56.45  
   56.46 -subsection {* Step 2: Define types, prove class instances *}
   56.47 +subsection \<open>Step 2: Define types, prove class instances\<close>
   56.48  
   56.49 -text {* Use @{text pcpodef} with the appropriate type combinator. *}
   56.50 +text \<open>Use \<open>pcpodef\<close> with the appropriate type combinator.\<close>
   56.51  
   56.52  pcpodef 'a foo = "defl_set (foo_defl\<cdot>DEFL('a))"
   56.53  by (rule defl_set_bottom, rule adm_defl_set)
   56.54 @@ -89,7 +89,7 @@
   56.55  pcpodef 'a baz = "defl_set (baz_defl\<cdot>DEFL('a))"
   56.56  by (rule defl_set_bottom, rule adm_defl_set)
   56.57  
   56.58 -text {* Prove rep instance using lemma @{text typedef_rep_class}. *}
   56.59 +text \<open>Prove rep instance using lemma \<open>typedef_rep_class\<close>.\<close>
   56.60  
   56.61  instantiation foo :: ("domain") "domain"
   56.62  begin
   56.63 @@ -196,7 +196,7 @@
   56.64  
   56.65  end
   56.66  
   56.67 -text {* Prove DEFL rules using lemma @{text typedef_DEFL}. *}
   56.68 +text \<open>Prove DEFL rules using lemma \<open>typedef_DEFL\<close>.\<close>
   56.69  
   56.70  lemma DEFL_foo: "DEFL('a foo) = foo_defl\<cdot>DEFL('a)"
   56.71  apply (rule typedef_DEFL)
   56.72 @@ -213,7 +213,7 @@
   56.73  apply (rule defl_baz_def)
   56.74  done
   56.75  
   56.76 -text {* Prove DEFL equations using type combinator unfold lemmas. *}
   56.77 +text \<open>Prove DEFL equations using type combinator unfold lemmas.\<close>
   56.78  
   56.79  lemma DEFL_foo': "DEFL('a foo) = DEFL(one \<oplus> 'a\<^sub>\<bottom> \<otimes> ('a bar)\<^sub>\<bottom>)"
   56.80  unfolding DEFL_foo DEFL_bar DEFL_baz domain_defl_simps
   56.81 @@ -229,9 +229,9 @@
   56.82  
   56.83  (********************************************************************)
   56.84  
   56.85 -subsection {* Step 3: Define rep and abs functions *}
   56.86 +subsection \<open>Step 3: Define rep and abs functions\<close>
   56.87  
   56.88 -text {* Define them all using @{text prj} and @{text emb}! *}
   56.89 +text \<open>Define them all using \<open>prj\<close> and \<open>emb\<close>!\<close>
   56.90  
   56.91  definition foo_rep :: "'a foo \<rightarrow> one \<oplus> ('a\<^sub>\<bottom> \<otimes> ('a bar)\<^sub>\<bottom>)"
   56.92  where "foo_rep \<equiv> prj oo emb"
   56.93 @@ -251,7 +251,7 @@
   56.94  definition baz_abs :: "('a foo convex_pd \<rightarrow> tr)\<^sub>\<bottom> \<rightarrow> 'a baz"
   56.95  where "baz_abs \<equiv> prj oo emb"
   56.96  
   56.97 -text {* Prove isomorphism rules. *}
   56.98 +text \<open>Prove isomorphism rules.\<close>
   56.99  
  56.100  lemma foo_abs_iso: "foo_rep\<cdot>(foo_abs\<cdot>x) = x"
  56.101  by (rule domain_abs_iso [OF DEFL_foo' foo_abs_def foo_rep_def])
  56.102 @@ -271,7 +271,7 @@
  56.103  lemma baz_rep_iso: "baz_abs\<cdot>(baz_rep\<cdot>x) = x"
  56.104  by (rule domain_rep_iso [OF DEFL_baz' baz_abs_def baz_rep_def])
  56.105  
  56.106 -text {* Prove isodefl rules using @{text isodefl_coerce}. *}
  56.107 +text \<open>Prove isodefl rules using \<open>isodefl_coerce\<close>.\<close>
  56.108  
  56.109  lemma isodefl_foo_abs:
  56.110    "isodefl d t \<Longrightarrow> isodefl (foo_abs oo d oo foo_rep) t"
  56.111 @@ -287,12 +287,12 @@
  56.112  
  56.113  (********************************************************************)
  56.114  
  56.115 -subsection {* Step 4: Define map functions, prove isodefl property *}
  56.116 +subsection \<open>Step 4: Define map functions, prove isodefl property\<close>
  56.117  
  56.118 -text {* Start with the one-step non-recursive version. *}
  56.119 +text \<open>Start with the one-step non-recursive version.\<close>
  56.120  
  56.121 -text {* Note that the type of the map function depends on which
  56.122 -variables are used in positive and negative positions. *}
  56.123 +text \<open>Note that the type of the map function depends on which
  56.124 +variables are used in positive and negative positions.\<close>
  56.125  
  56.126  definition
  56.127    foo_bar_baz_mapF ::
  56.128 @@ -325,7 +325,7 @@
  56.129  unfolding foo_bar_baz_mapF_def
  56.130  by (simp add: split_def)
  56.131  
  56.132 -text {* Individual map functions are projected from the fixed point. *}
  56.133 +text \<open>Individual map functions are projected from the fixed point.\<close>
  56.134  
  56.135  definition foo_map :: "('a \<rightarrow> 'b) \<rightarrow> ('a foo \<rightarrow> 'b foo)"
  56.136  where "foo_map = (\<Lambda> f. fst (fix\<cdot>(foo_bar_baz_mapF\<cdot>f)))"
  56.137 @@ -342,7 +342,7 @@
  56.138    "baz_map\<cdot>f = snd (snd (fix\<cdot>(foo_bar_baz_mapF\<cdot>f)))"
  56.139  unfolding foo_map_def bar_map_def baz_map_def by simp_all
  56.140  
  56.141 -text {* Prove isodefl rules for all map functions simultaneously. *}
  56.142 +text \<open>Prove isodefl rules for all map functions simultaneously.\<close>
  56.143  
  56.144  lemma isodefl_foo_bar_baz:
  56.145    assumes isodefl_d: "isodefl d t"
  56.146 @@ -374,7 +374,7 @@
  56.147  lemmas isodefl_bar = isodefl_foo_bar_baz [THEN conjunct2, THEN conjunct1]
  56.148  lemmas isodefl_baz = isodefl_foo_bar_baz [THEN conjunct2, THEN conjunct2]
  56.149  
  56.150 -text {* Prove map ID lemmas, using isodefl_DEFL_imp_ID *}
  56.151 +text \<open>Prove map ID lemmas, using isodefl_DEFL_imp_ID\<close>
  56.152  
  56.153  lemma foo_map_ID: "foo_map\<cdot>ID = ID"
  56.154  apply (rule isodefl_DEFL_imp_ID)
  56.155 @@ -399,7 +399,7 @@
  56.156  
  56.157  (********************************************************************)
  56.158  
  56.159 -subsection {* Step 5: Define take functions, prove lub-take lemmas *}
  56.160 +subsection \<open>Step 5: Define take functions, prove lub-take lemmas\<close>
  56.161  
  56.162  definition
  56.163    foo_bar_baz_takeF ::
    57.1 --- a/src/HOL/HOLCF/ex/Focus_ex.thy	Wed Jan 13 23:02:28 2016 +0100
    57.2 +++ b/src/HOL/HOLCF/ex/Focus_ex.thy	Wed Jan 13 23:07:06 2016 +0100
    57.3 @@ -181,8 +181,8 @@
    57.4  done
    57.5  
    57.6  lemma lemma3: "def_g(g) --> is_g(g)"
    57.7 -apply (tactic {* simp_tac (put_simpset HOL_ss @{context}
    57.8 -  addsimps [@{thm def_g_def}, @{thm lemma1}, @{thm lemma2}]) 1 *})
    57.9 +apply (tactic \<open>simp_tac (put_simpset HOL_ss @{context}
   57.10 +  addsimps [@{thm def_g_def}, @{thm lemma1}, @{thm lemma2}]) 1\<close>)
   57.11  apply (rule impI)
   57.12  apply (erule exE)
   57.13  apply (rule_tac x = "f" in exI)
   57.14 @@ -206,9 +206,9 @@
   57.15  done
   57.16  
   57.17  lemma lemma4: "is_g(g) --> def_g(g)"
   57.18 -apply (tactic {* simp_tac (put_simpset HOL_ss @{context}
   57.19 +apply (tactic \<open>simp_tac (put_simpset HOL_ss @{context}
   57.20    delsimps (@{thms HOL.ex_simps} @ @{thms HOL.all_simps})
   57.21 -  addsimps [@{thm lemma1}, @{thm lemma2}, @{thm def_g_def}]) 1 *})
   57.22 +  addsimps [@{thm lemma1}, @{thm lemma2}, @{thm def_g_def}]) 1\<close>)
   57.23  apply (rule impI)
   57.24  apply (erule exE)
   57.25  apply (rule_tac x = "f" in exI)
    58.1 --- a/src/HOL/HOLCF/ex/Letrec.thy	Wed Jan 13 23:02:28 2016 +0100
    58.2 +++ b/src/HOL/HOLCF/ex/Letrec.thy	Wed Jan 13 23:07:06 2016 +0100
    58.3 @@ -2,7 +2,7 @@
    58.4      Author:     Brian Huffman
    58.5  *)
    58.6  
    58.7 -section {* Recursive let bindings *}
    58.8 +section \<open>Recursive let bindings\<close>
    58.9  
   58.10  theory Letrec
   58.11  imports HOLCF
    59.1 --- a/src/HOL/HOLCF/ex/Loop.thy	Wed Jan 13 23:02:28 2016 +0100
    59.2 +++ b/src/HOL/HOLCF/ex/Loop.thy	Wed Jan 13 23:07:06 2016 +0100
    59.3 @@ -2,7 +2,7 @@
    59.4      Author:     Franz Regensburger
    59.5  *)
    59.6  
    59.7 -section {* Theory for a loop primitive like while *}
    59.8 +section \<open>Theory for a loop primitive like while\<close>
    59.9  
   59.10  theory Loop
   59.11  imports HOLCF
    60.1 --- a/src/HOL/HOLCF/ex/Pattern_Match.thy	Wed Jan 13 23:02:28 2016 +0100
    60.2 +++ b/src/HOL/HOLCF/ex/Pattern_Match.thy	Wed Jan 13 23:07:06 2016 +0100
    60.3 @@ -2,7 +2,7 @@
    60.4      Author:     Brian Huffman
    60.5  *)
    60.6  
    60.7 -section {* An experimental pattern-matching notation *}
    60.8 +section \<open>An experimental pattern-matching notation\<close>
    60.9  
   60.10  theory Pattern_Match
   60.11  imports HOLCF
   60.12 @@ -10,7 +10,7 @@
   60.13  
   60.14  default_sort pcpo
   60.15  
   60.16 -text {* FIXME: Find a proper way to un-hide constants. *}
   60.17 +text \<open>FIXME: Find a proper way to un-hide constants.\<close>
   60.18  
   60.19  abbreviation fail :: "'a match"
   60.20  where "fail \<equiv> Fixrec.fail"
   60.21 @@ -21,7 +21,7 @@
   60.22  abbreviation run :: "'a match \<rightarrow> 'a"
   60.23  where "run \<equiv> Fixrec.run"
   60.24  
   60.25 -subsection {* Fatbar combinator *}
   60.26 +subsection \<open>Fatbar combinator\<close>
   60.27  
   60.28  definition
   60.29    fatbar :: "('a \<rightarrow> 'b match) \<rightarrow> ('a \<rightarrow> 'b match) \<rightarrow> ('a \<rightarrow> 'b match)" where
   60.30 @@ -53,7 +53,7 @@
   60.31  
   60.32  lemmas run_fatbar_simps [simp] = run_fatbar1 run_fatbar2 run_fatbar3
   60.33  
   60.34 -subsection {* Bind operator for match monad *}
   60.35 +subsection \<open>Bind operator for match monad\<close>
   60.36  
   60.37  definition match_bind :: "'a match \<rightarrow> ('a \<rightarrow> 'b match) \<rightarrow> 'b match" where
   60.38    "match_bind = (\<Lambda> m k. sscase\<cdot>(\<Lambda> _. fail)\<cdot>(fup\<cdot>k)\<cdot>(Rep_match m))"
   60.39 @@ -66,7 +66,7 @@
   60.40  by (simp_all add: cont_Rep_match cont_Abs_match
   60.41    Rep_match_strict Abs_match_inverse)
   60.42  
   60.43 -subsection {* Case branch combinator *}
   60.44 +subsection \<open>Case branch combinator\<close>
   60.45  
   60.46  definition
   60.47    branch :: "('a \<rightarrow> 'b match) \<Rightarrow> ('b \<rightarrow> 'c) \<rightarrow> ('a \<rightarrow> 'c match)" where
   60.48 @@ -81,13 +81,13 @@
   60.49  lemma branch_succeed [simp]: "branch succeed\<cdot>r\<cdot>x = succeed\<cdot>(r\<cdot>x)"
   60.50  by (simp add: branch_def)
   60.51  
   60.52 -subsection {* Cases operator *}
   60.53 +subsection \<open>Cases operator\<close>
   60.54  
   60.55  definition
   60.56    cases :: "'a match \<rightarrow> 'a::pcpo" where
   60.57    "cases = Fixrec.run"
   60.58  
   60.59 -text {* rewrite rules for cases *}
   60.60 +text \<open>rewrite rules for cases\<close>
   60.61  
   60.62  lemma cases_strict [simp]: "cases\<cdot>\<bottom> = \<bottom>"
   60.63  by (simp add: cases_def)
   60.64 @@ -98,7 +98,7 @@
   60.65  lemma cases_succeed [simp]: "cases\<cdot>(succeed\<cdot>x) = x"
   60.66  by (simp add: cases_def)
   60.67  
   60.68 -subsection {* Case syntax *}
   60.69 +subsection \<open>Case syntax\<close>
   60.70  
   60.71  nonterminal Case_pat and Case_syn and Cases_syn
   60.72  
   60.73 @@ -116,7 +116,7 @@
   60.74    "_Case_syntax x ms" == "CONST cases\<cdot>(ms\<cdot>x)"
   60.75    "_Case2 m ms" == "m \<parallel> ms"
   60.76  
   60.77 -text {* Parsing Case expressions *}
   60.78 +text \<open>Parsing Case expressions\<close>
   60.79  
   60.80  syntax
   60.81    "_pat" :: "'a"
   60.82 @@ -128,19 +128,19 @@
   60.83    "_variable (_args x y) r" => "CONST csplit\<cdot>(_variable x (_variable y r))"
   60.84    "_variable _noargs r" => "CONST unit_when\<cdot>r"
   60.85  
   60.86 -parse_translation {*
   60.87 +parse_translation \<open>
   60.88  (* rewrite (_pat x) => (succeed) *)
   60.89  (* rewrite (_variable x t) => (Abs_cfun (%x. t)) *)
   60.90   [(@{syntax_const "_pat"}, fn _ => fn _ => Syntax.const @{const_syntax Fixrec.succeed}),
   60.91    Syntax_Trans.mk_binder_tr (@{syntax_const "_variable"}, @{const_syntax Abs_cfun})];
   60.92 -*}
   60.93 +\<close>
   60.94  
   60.95 -text {* Printing Case expressions *}
   60.96 +text \<open>Printing Case expressions\<close>
   60.97  
   60.98  syntax
   60.99    "_match" :: "'a"
  60.100  
  60.101 -print_translation {*
  60.102 +print_translation \<open>
  60.103    let
  60.104      fun dest_LAM (Const (@{const_syntax Rep_cfun},_) $ Const (@{const_syntax unit_when},_) $ t) =
  60.105            (Syntax.const @{syntax_const "_noargs"}, t)
  60.106 @@ -165,13 +165,13 @@
  60.107            end;
  60.108  
  60.109    in [(@{const_syntax Rep_cfun}, K Case1_tr')] end;
  60.110 -*}
  60.111 +\<close>
  60.112  
  60.113  translations
  60.114    "x" <= "_match (CONST succeed) (_variable x)"
  60.115  
  60.116  
  60.117 -subsection {* Pattern combinators for data constructors *}
  60.118 +subsection \<open>Pattern combinators for data constructors\<close>
  60.119  
  60.120  type_synonym ('a, 'b) pat = "'a \<rightarrow> 'b match"
  60.121  
  60.122 @@ -209,7 +209,7 @@
  60.123    ONE_pat :: "(one, unit) pat" where
  60.124    "ONE_pat = (\<Lambda> ONE. succeed\<cdot>())"
  60.125  
  60.126 -text {* Parse translations (patterns) *}
  60.127 +text \<open>Parse translations (patterns)\<close>
  60.128  translations
  60.129    "_pat (XCONST Pair x y)" => "CONST cpair_pat (_pat x) (_pat y)"
  60.130    "_pat (XCONST spair\<cdot>x\<cdot>y)" => "CONST spair_pat (_pat x) (_pat y)"
  60.131 @@ -220,12 +220,12 @@
  60.132    "_pat (XCONST FF)" => "CONST FF_pat"
  60.133    "_pat (XCONST ONE)" => "CONST ONE_pat"
  60.134  
  60.135 -text {* CONST version is also needed for constructors with special syntax *}
  60.136 +text \<open>CONST version is also needed for constructors with special syntax\<close>
  60.137  translations
  60.138    "_pat (CONST Pair x y)" => "CONST cpair_pat (_pat x) (_pat y)"
  60.139    "_pat (CONST spair\<cdot>x\<cdot>y)" => "CONST spair_pat (_pat x) (_pat y)"
  60.140  
  60.141 -text {* Parse translations (variables) *}
  60.142 +text \<open>Parse translations (variables)\<close>
  60.143  translations
  60.144    "_variable (XCONST Pair x y) r" => "_variable (_args x y) r"
  60.145    "_variable (XCONST spair\<cdot>x\<cdot>y) r" => "_variable (_args x y) r"
  60.146 @@ -240,7 +240,7 @@
  60.147    "_variable (CONST Pair x y) r" => "_variable (_args x y) r"
  60.148    "_variable (CONST spair\<cdot>x\<cdot>y) r" => "_variable (_args x y) r"
  60.149  
  60.150 -text {* Print translations *}
  60.151 +text \<open>Print translations\<close>
  60.152  translations
  60.153    "CONST Pair (_match p1 v1) (_match p2 v2)"
  60.154        <= "_match (CONST cpair_pat p1 p2) (_args v1 v2)"
  60.155 @@ -318,7 +318,7 @@
  60.156  by (simp_all add: branch_def ONE_pat_def)
  60.157  
  60.158  
  60.159 -subsection {* Wildcards, as-patterns, and lazy patterns *}
  60.160 +subsection \<open>Wildcards, as-patterns, and lazy patterns\<close>
  60.161  
  60.162  definition
  60.163    wild_pat :: "'a \<rightarrow> unit match" where
  60.164 @@ -332,15 +332,15 @@
  60.165    lazy_pat :: "('a \<rightarrow> 'b::pcpo match) \<Rightarrow> ('a \<rightarrow> 'b match)" where
  60.166    "lazy_pat p = (\<Lambda> x. succeed\<cdot>(cases\<cdot>(p\<cdot>x)))"
  60.167  
  60.168 -text {* Parse translations (patterns) *}
  60.169 +text \<open>Parse translations (patterns)\<close>
  60.170  translations
  60.171    "_pat _" => "CONST wild_pat"
  60.172  
  60.173 -text {* Parse translations (variables) *}
  60.174 +text \<open>Parse translations (variables)\<close>
  60.175  translations
  60.176    "_variable _ r" => "_variable _noargs r"
  60.177  
  60.178 -text {* Print translations *}
  60.179 +text \<open>Print translations\<close>
  60.180  translations
  60.181    "_" <= "_match (CONST wild_pat) _noargs"
  60.182  
  60.183 @@ -361,7 +361,7 @@
  60.184  apply (cases "p\<cdot>x", simp_all)+
  60.185  done
  60.186  
  60.187 -subsection {* Examples *}
  60.188 +subsection \<open>Examples\<close>
  60.189  
  60.190  term "Case t of (:up\<cdot>(sinl\<cdot>x), sinr\<cdot>y:) \<Rightarrow> (x, y)"
  60.191  
  60.192 @@ -369,9 +369,9 @@
  60.193  
  60.194  term "\<Lambda> t. Case t of (:up\<cdot>(sinl\<cdot>_), sinr\<cdot>x:) \<Rightarrow> x"
  60.195  
  60.196 -subsection {* ML code for generating definitions *}
  60.197 +subsection \<open>ML code for generating definitions\<close>
  60.198  
  60.199 -ML {*
  60.200 +ML \<open>
  60.201  local open HOLCF_Library in
  60.202  
  60.203  infixr 6 ->>;
  60.204 @@ -586,7 +586,7 @@
  60.205    end
  60.206  
  60.207  end
  60.208 -*}
  60.209 +\<close>
  60.210  
  60.211  (*
  60.212  Cut from HOLCF/Tools/domain_constructors.ML
    61.1 --- a/src/HOL/HOLCF/ex/Powerdomain_ex.thy	Wed Jan 13 23:02:28 2016 +0100
    61.2 +++ b/src/HOL/HOLCF/ex/Powerdomain_ex.thy	Wed Jan 13 23:07:06 2016 +0100
    61.3 @@ -2,13 +2,13 @@
    61.4      Author:     Brian Huffman
    61.5  *)
    61.6  
    61.7 -section {* Powerdomain examples *}
    61.8 +section \<open>Powerdomain examples\<close>
    61.9  
   61.10  theory Powerdomain_ex
   61.11  imports HOLCF
   61.12  begin
   61.13  
   61.14 -subsection {* Monadic sorting example *}
   61.15 +subsection \<open>Monadic sorting example\<close>
   61.16  
   61.17  domain ordering = LT | EQ | GT
   61.18  
   61.19 @@ -43,7 +43,7 @@
   61.20  done
   61.21  
   61.22  
   61.23 -subsection {* Picking a leaf from a tree *}
   61.24 +subsection \<open>Picking a leaf from a tree\<close>
   61.25  
   61.26  domain 'a tree =
   61.27    Node (lazy "'a tree") (lazy "'a tree") |
    62.1 --- a/src/HOL/Library/Poly_Deriv.thy	Wed Jan 13 23:02:28 2016 +0100
    62.2 +++ b/src/HOL/Library/Poly_Deriv.thy	Wed Jan 13 23:07:06 2016 +0100
    62.3 @@ -183,7 +183,7 @@
    62.4    {
    62.5      fix b
    62.6      assume "b \<in> as"
    62.7 -    hence id2: "insert a as - {b} = insert a (as - {b})" using `a \<notin> as` by auto
    62.8 +    hence id2: "insert a as - {b} = insert a (as - {b})" using \<open>a \<notin> as\<close> by auto
    62.9      have "setprod f (insert a as - {b}) = f a * setprod f (as - {b})"
   62.10        unfolding id2
   62.11        by (subst setprod.insert, insert insert, auto)
    63.1 --- a/src/HOL/List.thy	Wed Jan 13 23:02:28 2016 +0100
    63.2 +++ b/src/HOL/List.thy	Wed Jan 13 23:07:06 2016 +0100
    63.3 @@ -5399,7 +5399,7 @@
    63.4  apply (case_tac xys, simp_all, blast)
    63.5  done
    63.6  
    63.7 -text{* By Mathias Fleury: *}
    63.8 +text\<open>By Mathias Fleury:\<close>
    63.9  lemma lexn_transI:
   63.10    assumes "trans r" shows "trans (lexn r n)"
   63.11  unfolding trans_def
    64.1 --- a/src/HOL/Multivariate_Analysis/Cauchy_Integral_Thm.thy	Wed Jan 13 23:02:28 2016 +0100
    64.2 +++ b/src/HOL/Multivariate_Analysis/Cauchy_Integral_Thm.thy	Wed Jan 13 23:07:06 2016 +0100
    64.3 @@ -6056,7 +6056,7 @@
    64.4       apply (clarsimp simp del: divide_const_simps)
    64.5       apply (metis add.commute dist_commute le_less_trans mem_ball real_gt_half_sum w)
    64.6       done
    64.7 -  --\<open>Replacing @{term r} and the original (weak) premises\<close>
    64.8 +  \<comment>\<open>Replacing @{term r} and the original (weak) premises\<close>
    64.9    obtain r where "0 < r" and holfc: "f holomorphic_on cball z r" and w: "w \<in> ball z r"
   64.10      apply (rule that [of "(r + dist w z) / 2"])
   64.11        apply (simp_all add: fh')
    65.1 --- a/src/HOL/Multivariate_Analysis/Uniform_Limit.thy	Wed Jan 13 23:02:28 2016 +0100
    65.2 +++ b/src/HOL/Multivariate_Analysis/Uniform_Limit.thy	Wed Jan 13 23:07:06 2016 +0100
    65.3 @@ -272,7 +272,7 @@
    65.4    qed
    65.5  qed
    65.6  
    65.7 -text{*Alternative version, formulated as in HOL Light*}
    65.8 +text\<open>Alternative version, formulated as in HOL Light\<close>
    65.9  corollary series_comparison_uniform:
   65.10    fixes f :: "_ \<Rightarrow> nat \<Rightarrow> _ :: banach"
   65.11    assumes g: "summable g" and le: "\<And>n x. N \<le> n \<and> x \<in> A \<Longrightarrow> norm(f x n) \<le> g n"
    66.1 --- a/src/HOL/Multivariate_Analysis/ex/Approximations.thy	Wed Jan 13 23:02:28 2016 +0100
    66.2 +++ b/src/HOL/Multivariate_Analysis/ex/Approximations.thy	Wed Jan 13 23:07:06 2016 +0100
    66.3 @@ -530,13 +530,13 @@
    66.4    shows   "\<bar>pi - pi_approx n\<bar> \<le> inverse (2^(13*n - 2))"
    66.5  proof -
    66.6    from n have n': "even (3*n)" by simp
    66.7 -  -- \<open>We apply the Machin formula\<close>
    66.8 +  \<comment> \<open>We apply the Machin formula\<close>
    66.9    from machin have "pi = 16 * arctan (1/5) - 4 * arctan (1/239::real)" by simp
   66.10 -  -- \<open>Taylor series expansion of the arctangent\<close>
   66.11 +  \<comment> \<open>Taylor series expansion of the arctangent\<close>
   66.12    also from arctan_approx[OF _ _ n', of "1/5"] arctan_approx[OF _ _ n, of "1/239"]
   66.13      have "\<dots> - pi_approx n \<in> {-4*((1/239)^(2*n+1) / (1-(1/239)^4))..16*(1/5)^(6*n+1) / (1-(1/5)^4)}"
   66.14      by (simp add: pi_approx_def)
   66.15 -  -- \<open>Coarsening the bounds to make them a bit nicer\<close>
   66.16 +  \<comment> \<open>Coarsening the bounds to make them a bit nicer\<close>
   66.17    also have "-4*((1/239::real)^(2*n+1) / (1-(1/239)^4)) = -((13651919 / 815702160) / 57121^n)"
   66.18      by (simp add: power_mult power2_eq_square) (simp add: field_simps)
   66.19    also have "16*(1/5)^(6*n+1) / (1-(1/5::real)^4) = (125/39) / 15625^n"
   66.20 @@ -561,11 +561,11 @@
   66.21  proof -
   66.22    def a \<equiv> "8295936325956147794769600190539918304 / 2626685325478320010006427764892578125 :: real"
   66.23    def b \<equiv> "8428294561696506782041394632 / 503593538783547230635598424135 :: real"
   66.24 -  -- \<open>The introduction of this constant prevents the simplifier from applying solvers that
   66.25 +  \<comment> \<open>The introduction of this constant prevents the simplifier from applying solvers that
   66.26        we don't want. We want it to simply evaluate the terms to rational constants.}\<close>
   66.27    def eq \<equiv> "op = :: real \<Rightarrow> real \<Rightarrow> bool"
   66.28  
   66.29 -  -- \<open>Splitting the computation into several steps has the advantage that simplification can
   66.30 +  \<comment> \<open>Splitting the computation into several steps has the advantage that simplification can
   66.31        be done in parallel\<close>
   66.32    have "abs (pi - pi_approx 6) \<le> inverse (2^76)" by (rule pi_approx') simp_all
   66.33    also have "pi_approx 6 = 16 * arctan_approx (3 * 6) (1 / 5) - 4 * arctan_approx 6 (1 / 239)"
   66.34 @@ -694,7 +694,7 @@
   66.35      by (unfold a_def b_def c_def, simp, unfold eq_def, rule refl)
   66.36    also have [unfolded eq_def]: "eq (\<dots> - c) ?pi''"
   66.37      by (unfold a_def b_def c_def, simp, unfold eq_def, rule refl)
   66.38 -  -- \<open>This is incredibly slow because the numerators and denominators are huge.\<close>
   66.39 +  \<comment> \<open>This is incredibly slow because the numerators and denominators are huge.\<close>
   66.40    finally show ?thesis by (rule approx_coarsen) simp
   66.41  qed
   66.42  
    67.1 --- a/src/HOL/Topological_Spaces.thy	Wed Jan 13 23:02:28 2016 +0100
    67.2 +++ b/src/HOL/Topological_Spaces.thy	Wed Jan 13 23:07:06 2016 +0100
    67.3 @@ -2506,7 +2506,7 @@
    67.4    fix E assume "eventually E uniformity"
    67.5    with M obtain X where "\<forall>S\<in>M. finite (X S) \<and> (\<forall>s\<in>S. \<exists>x\<in>X S. E (x, s))"
    67.6      by (metis totally_bounded_def)
    67.7 -  with `finite M` show "\<exists>X. finite X \<and> (\<forall>s\<in>\<Union>M. \<exists>x\<in>X. E (x, s))"
    67.8 +  with \<open>finite M\<close> show "\<exists>X. finite X \<and> (\<forall>s\<in>\<Union>M. \<exists>x\<in>X. E (x, s))"
    67.9      by (intro exI[of _ "\<Union>S\<in>M. X S"]) force
   67.10  qed
   67.11