(* Title: HOL/HOLCF/FOCUS/Stream_adm.thy Author: David von Oheimb, TU Muenchen *)
section‹Admissibility for streams›
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 ∈ F P) = (stream_take i⋅s ∈ Q ∧ iterate i⋅rt⋅s ∈ P))"
definition
stream_antiP :: "(('a stream) set ==> ('a stream) set) ==> bool"where "stream_antiP F = (∀P x. ∃Q i. (#x < enat i ⟶ (∀y. x ⊑ y ⟶ y ∈ F P ⟶ x ∈ F P)) ∧ (enat i <= #x ⟶ (∀y. x ⊑ y ⟶ (y ∈ F P) = (stream_take i⋅y ∈ Q ∧ iterate i⋅rt⋅y ∈ 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); ∧Y. [chain Y; ∀i. P (Y i); ¬ finite_chain Y]==> P (⊔i. Y i)] ==> P (⊔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); ∀i. ∃j>i. Y i ≠ Y j ∧ Y i ⊑ Y j]==> P (⊔i. Y i)] ==> P (⊔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 (λu. u∉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 {⊔i. Y i |Y. chain Y ∧ (∀i. Y i ∈ P)} ==> adm (λx. x∈P)" apply (simp) apply (rule adm_set) apply (erule gfp_upperbound) done
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-04-27)
¤
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 und die Messung sind noch experimentell.