Theory Complete_Non_Orders.Continuity
theory Continuity
imports Complete_Relations
begin
subsection βΉScott Continuity, $\omega$-ContinuityβΊ
text βΉIn this Section, we formalize Scott continuity and $\omega$-continuity.
We then prove that a Scott continuous map is $\omega$-continuous and that an $\omega$-continuous
map is ``nearly'' monotone.βΊ
definition continuous ("_-continuous" [1000]1000) where
"π-continuous A (β) B (β΄) f β‘
f ` A β B β§
(βX s. π X (β) βΆ X β {} βΆ X β A βΆ extreme_bound A (β) X s βΆ extreme_bound B (β΄) (f`X) (f s))"
for leA (infix "β" 50) and leB (infix "β΄" 50)
lemmas continuousI[intro?] =
continuous_def[unfolded atomize_eq, THEN iffD2, unfolded conj_imp_eq_imp_imp, rule_format]
lemmas continuousE =
continuous_def[unfolded atomize_eq, THEN iffD1, elim_format, unfolded conj_imp_eq_imp_imp, rule_format]
lemma
fixes prec_eq (infix "βΌ" 50) and less_eq (infix "β" 50)
assumes "π-continuous I (βΌ) A (β) f"
shows continuous_carrierD[dest]: "f ` I β A"
and continuousD: "π X (βΌ) βΉ X β {} βΉ X β I βΉ extreme_bound I (βΌ) X b βΉ extreme_bound A (β) (f ` X) (f b)"
using assms by (auto elim!: continuousE)
lemma continuous_comp:
fixes leA (infix "ββ©A" 50) and leB (infix "ββ©B" 50) and leC (infix "ββ©C" 50)
assumes KfL: "βX β A. π¦ X (ββ©A) βΆ β (f ` X) (ββ©B)"
assumes f: "π¦-continuous A (ββ©A) B (ββ©B) f" and g: "β-continuous B (ββ©B) C (ββ©C) g"
shows "π¦-continuous A (ββ©A) C (ββ©C) (g β f)"
apply (intro continuousI)
proof -
from f g have fAB: "f ` A β B" and gBC: "g ` B β C" by auto
then show "(g β f) ` A β C" by auto
fix X s
assume XA: "X β A" and X0: "X β {}" and XK: "π¦ X (ββ©A)" and Xs: "extreme_bound A (ββ©A) X s"
from fAB XA have fXB: "f ` X β B" by auto
from X0 have fX0: "f ` X β {}" by auto
from KfL XA XK have fXL: "β (f ` X) (ββ©B)" by auto
from continuousD[OF f XK X0 XA Xs]
have "extreme_bound B (ββ©B) (f ` X) (f s)".
from continuousD[OF g fXL fX0 fXB this]
show "extreme_bound C (ββ©C) ((gβf)`X) ((gβf) s)" by (auto simp: image_comp)
qed
lemma continuous_comp_top:
fixes leA (infix "ββ©A" 50) and leB (infix "ββ©B" 50) and leC (infix "ββ©C" 50)
assumes f: "π¦-continuous A (ββ©A) B (ββ©B) f" and g: "β€-continuous B (ββ©B) C (ββ©C) g"
shows "π¦-continuous A (ββ©A) C (ββ©C) (g β f)"
by (rule continuous_comp[OF _ f g], auto)
lemma id_continuous:
fixes leA (infix "ββ©A" 50)
shows "π¦-continuous A (ββ©A) A (ββ©A) (Ξ»x. x)"
by (auto intro: continuousI)
lemma cst_continuous:
fixes leA (infix "ββ©A" 50) and leB (infix "ββ©B" 50)
assumes "b β B" and bb: "b ββ©B b"
shows "π¦-continuous A (ββ©A) B (ββ©B) (Ξ»x. b)"
apply (intro continuousI)
using assms(1) apply auto
using assms extreme_bound_singleton_refl[of B "(ββ©B)" b] by blast
lemma continuous_cmono:
assumes CD: "π β€ π" shows "π-continuous β€ π-continuous"
proof (safe intro!: le_funI le_boolI)
fix I A f and prec_eq (infix "βΌ" 50) and less_eq (infix "β" 50)
assume cont: "π-continuous I (βΌ) A (β) f"
show "π-continuous I (βΌ) A (β) f"
proof (rule continuousI)
from cont show "f ` I β A" by auto
fix X s assume X: "π X (βΌ)" and X0: "X β {}" and XI: "X β I" and Xs: "extreme_bound I (βΌ) X s"
from CD X have "π X (βΌ)" by auto
from continuousD[OF cont, OF this X0 XI Xs]
show "extreme_bound A (β) (f ` X) (f s)".
qed
qed
context
fixes prec_eq :: "'i β 'i β bool" (infix "βΌ" 50) and less_eq :: "'a β 'a β bool" (infix "β" 50)
begin
lemma continuous_subclass:
assumes CD: "βXβI. X β {} βΆ π X (βΌ) βΆ π X (βΌ)" and cont: "π-continuous I (βΌ) A (β) f"
shows "π-continuous I (βΌ) A (β) f"
using cont by (auto simp: continuous_def CD[rule_format])
lemma chain_continuous_imp_well_continuous:
assumes cont: "connex-continuous I (βΌ) A (β) f"
shows "well_related_set-continuous I (βΌ) A (β) f"
by (rule continuous_subclass[OF _ cont], auto simp: well_related_set.connex)
lemma well_continuous_imp_omega_continous:
assumes cont: "well_related_set-continuous I (βΌ) A (β) f"
shows "omega_chain-continuous I (βΌ) A (β) f"
by (rule continuous_subclass[OF _ cont], auto simp: omega_chain_imp_well_related)
end
abbreviation "scott_continuous I (βΌ) β‘ directed_set-continuous I (βΌ)"
for prec_eq (infix "βΌ" 50)
lemma scott_continuous_imp_well_continuous:
fixes prec_eq :: "'i β 'i β bool" (infix "βΌ" 50) and less_eq :: "'a β 'a β bool" (infix "β" 50)
assumes cont: "scott_continuous I (βΌ) A (β) f"
shows "well_related_set-continuous I (βΌ) A (β) f"
by (rule continuous_subclass[OF _ cont], auto simp: well_related_set.directed_set)
lemmas scott_continuous_imp_omega_continuous =
scott_continuous_imp_well_continuous[THEN well_continuous_imp_omega_continous]
subsubsection βΉContinuity implies monotonicityβΊ
lemma continuous_imp_mono_refl:
fixes prec_eq (infix "βΌ" 50) and less_eq (infix "β" 50)
assumes cont: "π-continuous I (βΌ) A (β) f" and xyC: "π {x,y} (βΌ)"
and xy: "x βΌ y" and yy: "y βΌ y"
and x: "x β I" and y: "y β I"
shows "f x β f y"
proof-
have fboy: "extreme_bound A (β) (f ` {x,y}) (f y)"
proof (intro continuousD[OF cont] xyC)
from x y show CI: "{x,y} β I" by auto
show Cy: "extreme_bound I (βΌ) {x,y} y" using xy yy x y by auto
qed auto
then show ?thesis by auto
qed
lemma omega_continuous_imp_mono_refl:
fixes prec_eq (infix "βΌ" 50) and less_eq (infix "β" 50)
assumes cont: "omega_chain-continuous I (βΌ) A (β) f"
and xx: "x βΌ x" and xy: "x βΌ y" and yy: "y βΌ y"
and x: "x β I" and y: "y β I"
shows "f x β f y"
apply (rule continuous_imp_mono_refl[OF cont, OF pair_omega_chain])
using assms by auto
context reflexive begin
lemma continuous_imp_monotone_on:
fixes leB (infix "β΄" 50)
assumes cont: "π-continuous A (β) B (β΄) f"
and II: "βi β A. β j β A. i β j βΆ π {i,j} (β)"
shows "monotone_on A (β) (β΄) f"
proof-
show ?thesis
apply (intro monotone_onI continuous_imp_mono_refl[OF cont])
using II by auto
qed
lemma well_complete_imp_monotone_on:
fixes leB (infix "β΄" 50)
assumes cont: "well_related_set-continuous A (β) B (β΄) f"
shows "monotone_on A (β) (β΄) f"
by (auto intro!: continuous_imp_monotone_on cont pair_well_related)
end
end