src/HOLCF/Algebraic.thy
changeset 30729 461ee3e49ad3
parent 29252 ea97aa6aeba2
child 31076 99fe356cbbc2
equal deleted inserted replaced
30728:f0aeca99b5d9 30729:461ee3e49ad3
   213 by (rule typedef_po [OF type_definition_fin_defl sq_le_fin_defl_def])
   213 by (rule typedef_po [OF type_definition_fin_defl sq_le_fin_defl_def])
   214 
   214 
   215 lemma finite_deflation_Rep_fin_defl: "finite_deflation (Rep_fin_defl d)"
   215 lemma finite_deflation_Rep_fin_defl: "finite_deflation (Rep_fin_defl d)"
   216 using Rep_fin_defl by simp
   216 using Rep_fin_defl by simp
   217 
   217 
   218 interpretation Rep_fin_defl!: finite_deflation "Rep_fin_defl d"
   218 interpretation Rep_fin_defl: finite_deflation "Rep_fin_defl d"
   219 by (rule finite_deflation_Rep_fin_defl)
   219 by (rule finite_deflation_Rep_fin_defl)
   220 
   220 
   221 lemma fin_defl_lessI:
   221 lemma fin_defl_lessI:
   222   "(\<And>x. Rep_fin_defl a\<cdot>x = x \<Longrightarrow> Rep_fin_defl b\<cdot>x = x) \<Longrightarrow> a \<sqsubseteq> b"
   222   "(\<And>x. Rep_fin_defl a\<cdot>x = x \<Longrightarrow> Rep_fin_defl b\<cdot>x = x) \<Longrightarrow> a \<sqsubseteq> b"
   223 unfolding sq_le_fin_defl_def
   223 unfolding sq_le_fin_defl_def
   318 apply (rule profinite_compact_eq_approx)
   318 apply (rule profinite_compact_eq_approx)
   319 apply (erule subst)
   319 apply (erule subst)
   320 apply (rule Rep_fin_defl.compact)
   320 apply (rule Rep_fin_defl.compact)
   321 done
   321 done
   322 
   322 
   323 interpretation fin_defl!: basis_take sq_le fd_take
   323 interpretation fin_defl: basis_take sq_le fd_take
   324 apply default
   324 apply default
   325 apply (rule fd_take_less)
   325 apply (rule fd_take_less)
   326 apply (rule fd_take_idem)
   326 apply (rule fd_take_idem)
   327 apply (erule fd_take_mono)
   327 apply (erule fd_take_mono)
   328 apply (rule fd_take_chain, simp)
   328 apply (rule fd_take_chain, simp)
   368 lemma Rep_alg_defl_principal:
   368 lemma Rep_alg_defl_principal:
   369   "Rep_alg_defl (alg_defl_principal t) = {u. u \<sqsubseteq> t}"
   369   "Rep_alg_defl (alg_defl_principal t) = {u. u \<sqsubseteq> t}"
   370 unfolding alg_defl_principal_def
   370 unfolding alg_defl_principal_def
   371 by (simp add: Abs_alg_defl_inverse sq_le.ideal_principal)
   371 by (simp add: Abs_alg_defl_inverse sq_le.ideal_principal)
   372 
   372 
   373 interpretation alg_defl!:
   373 interpretation alg_defl:
   374   ideal_completion sq_le fd_take alg_defl_principal Rep_alg_defl
   374   ideal_completion sq_le fd_take alg_defl_principal Rep_alg_defl
   375 apply default
   375 apply default
   376 apply (rule ideal_Rep_alg_defl)
   376 apply (rule ideal_Rep_alg_defl)
   377 apply (erule Rep_alg_defl_lub)
   377 apply (erule Rep_alg_defl_lub)
   378 apply (rule Rep_alg_defl_principal)
   378 apply (rule Rep_alg_defl_principal)
   459 apply (drule alg_defl.compact_imp_principal, clarify)
   459 apply (drule alg_defl.compact_imp_principal, clarify)
   460 apply (simp add: cast_alg_defl_principal)
   460 apply (simp add: cast_alg_defl_principal)
   461 apply (rule finite_deflation_Rep_fin_defl)
   461 apply (rule finite_deflation_Rep_fin_defl)
   462 done
   462 done
   463 
   463 
   464 interpretation cast!: deflation "cast\<cdot>d"
   464 interpretation cast: deflation "cast\<cdot>d"
   465 by (rule deflation_cast)
   465 by (rule deflation_cast)
   466 
   466 
   467 lemma "cast\<cdot>(\<Squnion>i. alg_defl_principal (Abs_fin_defl (approx i)))\<cdot>x = x"
   467 lemma "cast\<cdot>(\<Squnion>i. alg_defl_principal (Abs_fin_defl (approx i)))\<cdot>x = x"
   468 apply (subst contlub_cfun_arg)
   468 apply (subst contlub_cfun_arg)
   469 apply (rule chainI)
   469 apply (rule chainI)