src/HOLCF/ConvexPD.thy
changeset 27309 c74270fd72a8
parent 27297 2c42b1505f25
child 27310 d0229bc6c461
equal deleted inserted replaced
27308:b915a10a616a 27309:c74270fd72a8
   325  apply (erule (1) monofun_cfun [OF monofun_cfun_arg])
   325  apply (erule (1) monofun_cfun [OF monofun_cfun_arg])
   326 done
   326 done
   327 
   327 
   328 lemma convex_unit_less_iff [simp]: "{x}\<natural> \<sqsubseteq> {y}\<natural> \<longleftrightarrow> x \<sqsubseteq> y"
   328 lemma convex_unit_less_iff [simp]: "{x}\<natural> \<sqsubseteq> {y}\<natural> \<longleftrightarrow> x \<sqsubseteq> y"
   329  apply (rule iffI)
   329  apply (rule iffI)
   330   apply (rule bifinite_less_ext)
   330   apply (rule profinite_less_ext)
   331   apply (drule_tac f="approx i" in monofun_cfun_arg, simp)
   331   apply (drule_tac f="approx i" in monofun_cfun_arg, simp)
   332   apply (cut_tac x="approx i\<cdot>x" in compact_basis.compact_imp_principal, simp)
   332   apply (cut_tac x="approx i\<cdot>x" in compact_basis.compact_imp_principal, simp)
   333   apply (cut_tac x="approx i\<cdot>y" in compact_basis.compact_imp_principal, simp)
   333   apply (cut_tac x="approx i\<cdot>y" in compact_basis.compact_imp_principal, simp)
   334   apply clarsimp
   334   apply clarsimp
   335  apply (erule monofun_cfun_arg)
   335  apply (erule monofun_cfun_arg)
   344 lemma convex_unit_strict_iff [simp]: "{x}\<natural> = \<bottom> \<longleftrightarrow> x = \<bottom>"
   344 lemma convex_unit_strict_iff [simp]: "{x}\<natural> = \<bottom> \<longleftrightarrow> x = \<bottom>"
   345 unfolding convex_unit_strict [symmetric] by (rule convex_unit_eq_iff)
   345 unfolding convex_unit_strict [symmetric] by (rule convex_unit_eq_iff)
   346 
   346 
   347 lemma compact_convex_unit_iff [simp]:
   347 lemma compact_convex_unit_iff [simp]:
   348   "compact {x}\<natural> \<longleftrightarrow> compact x"
   348   "compact {x}\<natural> \<longleftrightarrow> compact x"
   349 unfolding bifinite_compact_iff by simp
   349 unfolding profinite_compact_iff by simp
   350 
   350 
   351 lemma compact_convex_plus [simp]:
   351 lemma compact_convex_plus [simp]:
   352   "\<lbrakk>compact xs; compact ys\<rbrakk> \<Longrightarrow> compact (xs +\<natural> ys)"
   352   "\<lbrakk>compact xs; compact ys\<rbrakk> \<Longrightarrow> compact (xs +\<natural> ys)"
   353 by (auto dest!: convex_pd.compact_imp_principal)
   353 by (auto dest!: convex_pd.compact_imp_principal)
   354 
   354 
   587 lemma convex_pd_less_iff:
   587 lemma convex_pd_less_iff:
   588   "(xs \<sqsubseteq> ys) =
   588   "(xs \<sqsubseteq> ys) =
   589     (convex_to_upper\<cdot>xs \<sqsubseteq> convex_to_upper\<cdot>ys \<and>
   589     (convex_to_upper\<cdot>xs \<sqsubseteq> convex_to_upper\<cdot>ys \<and>
   590      convex_to_lower\<cdot>xs \<sqsubseteq> convex_to_lower\<cdot>ys)"
   590      convex_to_lower\<cdot>xs \<sqsubseteq> convex_to_lower\<cdot>ys)"
   591  apply (safe elim!: monofun_cfun_arg)
   591  apply (safe elim!: monofun_cfun_arg)
   592  apply (rule bifinite_less_ext)
   592  apply (rule profinite_less_ext)
   593  apply (drule_tac f="approx i" in monofun_cfun_arg)
   593  apply (drule_tac f="approx i" in monofun_cfun_arg)
   594  apply (drule_tac f="approx i" in monofun_cfun_arg)
   594  apply (drule_tac f="approx i" in monofun_cfun_arg)
   595  apply (cut_tac x="approx i\<cdot>xs" in convex_pd.compact_imp_principal, simp)
   595  apply (cut_tac x="approx i\<cdot>xs" in convex_pd.compact_imp_principal, simp)
   596  apply (cut_tac x="approx i\<cdot>ys" in convex_pd.compact_imp_principal, simp)
   596  apply (cut_tac x="approx i\<cdot>ys" in convex_pd.compact_imp_principal, simp)
   597  apply clarify
   597  apply clarify