(* Title: HOL/HOLCF/FOCUS/Stream_adm.thy Author: David von Oheimb, TU Muenchen
*)
section \<open>Admissibility for streams\<close>
theory Stream_adm imports"HOLCF-Library.Stream""HOL-Library.Order_Continuity" begin
definition
stream_monoP :: "(('a stream) set \ ('a stream) set) \ bool" where "stream_monoP F = (\Q i. \P s. enat i \ #s \
(s \<in> F P) = (stream_take i\<cdot>s \<in> Q \<and> iterate i\<cdot>rt\<cdot>s \<in> P))"
definition
stream_antiP :: "(('a stream) set \ ('a stream) set) \ bool" where "stream_antiP F = (\P x. \Q i.
(#x < enat i \<longrightarrow> (\<forall>y. x \<sqsubseteq> y \<longrightarrow> y \<in> F P \<longrightarrow> x \<in> F P)) \<and>
(enat i <= #x \<longrightarrow> (\<forall>y. x \<sqsubseteq> y \<longrightarrow>
(y \<in> F P) = (stream_take i\<cdot>y \<in> Q \<and> iterate i\<cdot>rt\<cdot>y \<in> P))))"
definition
antitonP :: "'a set => bool"where "antitonP P = (\x y. x \ y \ y\P \ x\P)"
lemma infinite_chain_adm_lemma: "\chain Y; \i. P (Y i); \<And>Y. \<lbrakk>chain Y; \<forall>i. P (Y i); \<not> finite_chain Y\<rbrakk> \<Longrightarrow> P (\<Squnion>i. Y i)\<rbrakk> \<Longrightarrow> P (\<Squnion>i. Y i)" apply (case_tac "finite_chain Y") prefer 2 apply fast apply (unfold finite_chain_def) apply safe apply (erule lub_finch1 [THEN lub_eqI, THEN ssubst]) apply assumption apply (erule spec) done
lemma increasing_chain_adm_lemma: "\chain Y; \i. P (Y i); \Y. \chain Y; \i. P (Y i); \<forall>i. \<exists>j>i. Y i \<noteq> Y j \<and> Y i \<sqsubseteq> Y j\<rbrakk> \<Longrightarrow> P (\<Squnion>i. Y i)\<rbrakk> \<Longrightarrow> P (\<Squnion>i. Y i)" apply (erule infinite_chain_adm_lemma) apply assumption apply (erule thin_rl) apply (unfold finite_chain_def) apply (unfold max_in_chain_def) apply (fast dest: le_imp_less_or_eq elim: chain_mono_less) done
(**new approach for adm********************************************************)
section "antitonP"
lemma antitonPD: "[| antitonP P; y \ P; x< x \ P" apply (unfold antitonP_def) apply auto done
lemma antitonPI: "\x y. y \ P \ x< x \ P \ antitonP P" apply (unfold antitonP_def) apply (fast) done
lemma antitonP_adm_non_P: "antitonP P \ adm (\u. u \ P)" apply (unfold adm_def) apply (auto dest: antitonPD elim: is_ub_thelub) done
lemma def_gfp_adm_nonP: "P \ gfp F \ {y. \x::'a::pcpo. y \ x \ x \ P} \ F {y. \x. y \ x \ x \ P} \
adm (\<lambda>u. u\<notin>P)" apply (simp) apply (rule antitonP_adm_non_P) apply (rule antitonPI) apply (drule gfp_upperbound) apply (fast) done
lemma adm_set: "{\i. Y i |Y. chain Y \ (\i. Y i \ P)} \ P \ adm (\x. x\P)" apply (unfold adm_def) apply (fast) done
lemma def_gfp_admI: "P \ gfp F \ {\i. Y i |Y. chain Y \ (\i. Y i \ P)} \
F {\<Squnion>i. Y i |Y. chain Y \<and> (\<forall>i. Y i \<in> P)} \<Longrightarrow> adm (\<lambda>x. x\<in>P)" apply (simp) apply (rule adm_set) apply (erule gfp_upperbound) done
end
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.