equal
deleted
inserted
replaced
593 end |
593 end |
594 |
594 |
595 |
595 |
596 section \<open>Continuity and monotonicity\<close> |
596 section \<open>Continuity and monotonicity\<close> |
597 |
597 |
598 text \<open> |
|
599 Now we change the default class! Form now on all untyped type variables are |
|
600 of default class po |
|
601 \<close> |
|
602 |
|
603 default_sort po |
|
604 |
|
605 subsection \<open>Definitions\<close> |
598 subsection \<open>Definitions\<close> |
606 |
599 |
607 definition monofun :: "('a \<Rightarrow> 'b) \<Rightarrow> bool" \<comment> \<open>monotonicity\<close> |
600 definition monofun :: "('a::po \<Rightarrow> 'b::po) \<Rightarrow> bool" \<comment> \<open>monotonicity\<close> |
608 where "monofun f \<longleftrightarrow> (\<forall>x y. x \<sqsubseteq> y \<longrightarrow> f x \<sqsubseteq> f y)" |
601 where "monofun f \<longleftrightarrow> (\<forall>x y. x \<sqsubseteq> y \<longrightarrow> f x \<sqsubseteq> f y)" |
609 |
602 |
610 definition cont :: "('a::cpo \<Rightarrow> 'b::cpo) \<Rightarrow> bool" |
603 definition cont :: "('a::cpo \<Rightarrow> 'b::cpo) \<Rightarrow> bool" |
611 where "cont f = (\<forall>Y. chain Y \<longrightarrow> range (\<lambda>i. f (Y i)) <<| f (\<Squnion>i. Y i))" |
604 where "cont f = (\<forall>Y. chain Y \<longrightarrow> range (\<lambda>i. f (Y i)) <<| f (\<Squnion>i. Y i))" |
612 |
605 |
1116 for S :: "nat \<Rightarrow> 'a::type \<Rightarrow> 'b::cpo" |
1109 for S :: "nat \<Rightarrow> 'a::type \<Rightarrow> 'b::cpo" |
1117 by (simp add: lub_fun ch2ch_lambda) |
1110 by (simp add: lub_fun ch2ch_lambda) |
1118 |
1111 |
1119 section \<open>The cpo of cartesian products\<close> |
1112 section \<open>The cpo of cartesian products\<close> |
1120 |
1113 |
1121 default_sort cpo |
|
1122 |
|
1123 |
|
1124 subsection \<open>Unit type is a pcpo\<close> |
1114 subsection \<open>Unit type is a pcpo\<close> |
1125 |
1115 |
1126 instantiation unit :: discrete_cpo |
1116 instantiation unit :: discrete_cpo |
1127 begin |
1117 begin |
1128 |
1118 |