definition
eventually_constant :: "(nat \ 'a) \ bool" where "eventually_constant S = (\x. MOST i. S i = x)"
lemma eventually_constant_MOST_MOST: "eventually_constant S \ (MOST m. MOST n. S n = S m)" unfolding eventually_constant_def MOST_nat apply safe apply (rule_tac x=m in exI, clarify) apply (rule_tac x=m in exI, clarify) apply simp apply fast done
lemma eventually_constantI: "MOST i. S i = x \ eventually_constant S" unfolding eventually_constant_def by fast
lemma eventually_constant_comp: "eventually_constant (\i. S i) \ eventually_constant (\i. f (S i))" unfolding eventually_constant_def apply (erule exE, rule_tac x="f x"in exI) apply (erulejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 done
lemma eventually_constant_Suc_iff: "eventually_constant (\i. S (Suc i)) \ eventually_constant (\i. S i)"
by java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
:( > 'a) \<Rightarrow> 'a" where "eventual S (x. xjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
lemma y
eventual_def) applyerule) apply( y) apply (subgoal_tac: apply MOST_rev_mpeventually_constant apply (erule apply simperule, add
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
:"lbrakkS nS\java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
Seventually_constant
MOST applyultimatelyn
y apply( iffIhencen: java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
( Sjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 apply ( MOST_monoforceapply(erule) apply MOST_rev_mp [OF apply (erule done
lemma MOST_eventual: "\eventually_constant S; MOST n. P (S n)\ \ P (eventual S)"
- assume java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 hence" .S n =Sjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
rule moreoverassume"MOST
mately n= byassumes: hencen. ) by (rule"Andi iijava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 thusij" qed
lemma eventually_constant_MOST_Suc_eq: "eventually_constant S
MOST_eq_eventual apply (frulewithhavei"bysimp apply (erule MOST_rev_mp" j steptransless_Suc_inductjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
\<open>A pre-deflation is like a deflation, but not idempotent.\<close> java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
lemma i
i, add [OF])
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ruleMOST_mono
simp le_Suc_induct done
subsection \<open>Constructing finite deflations by iteration\<close>
default_sort cpo
lemma le_Suc_induct: assumes lerule) assumes (1) )
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 " (\i. iterate i\f\x) \ insert x (range (\x. f\x))" shows"P i j" proof"finite (insert x (range (\x. f\x)))" assume"i e" j
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 nextjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 " java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 with le java.lang.NullPointerException
qed
definition ?java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
eventual_iteratejava.lang.NullPointerException where "eventual_iteratef=eventual\java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
-
locale = by add) hence
eventually_constant_MOST_MOST begin
lemma iterate_below: "iterate i\f\x \ x" by (induct MOST.
" (\i. iterate i\f)"
( finite_subset show by (clarify, "finite(insert x (range (\x. f\x)))" by (simp add: finite_range) qed
lemma eventually_constant_iterate_app: "eventually_constant (\i. iterate i\f\x)" unfoldingeventually_constant_def proof" \ eventual_iterate f"
?Y="<>i. iterate \cdotf have"\j. \k. ?Y j \ ?Y k" apply ( finite_range_has_max
(erule antichain_iterate_app) apply ( done f_d thenapply ( MOST_d show proof (apply (rule eventually_consta) fix
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 4 hence"? f_d [where x=] alsohave"?Y j \ ?Y k" by (rule j)
qed :fjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 qed
lemma eventually_constant_iterate: "eventually_constant (\n. iterate n\f)" proof - have"java.lang.StringIndexOutOfBoundsException: Range [0, 87) out of bounds for length 54 by (simp ALL_MOST by( MOST_d
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
. by (simp (uleeventual_mem_rangejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 henceby ( iterate_fixed bysimp
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
bsimp: iterate_Suc2 hence"MOST by ( only ) hence"finitex. f\x = x}" unfolding ( finite_range_imp_finite_fixes "eventually_constant (i. iterate i\f)" by (rule eventually_constant_SucD) qed
abbreviation
d :: "'a \ 'a" where "d \ eventual_iterate f"
lemma MOST_d: "MOST n. P (iterate n\f) \ P d" unfolding eventual_iterate_def using eventually_constant_iterate by (rule MOST_eventual)
lemma d_fixed_iff: "d\x = x \ f\x = x" proof assume"d\x = x" with f_d [where x=x] show"f\x = x" by simp next assume f: "f\x = x" have"\n. iterate n\f\x = x" by (rule allI, rule nat.induct, simp, simp add: f) hence"MOST n. iterate n\f\x = x" by (rule ALL_MOST) thus"d\x = x" by (rule MOST_d) qed
lemma finite_deflation_d: "finite_deflation d" proof
by add) have unfolding using eventually_constant_iteratedeflation_d
using thenobtain(ulefinite_deflation_imp_deflation
java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0 usingby rule) thus pre_deflation_oo
imp add n) nextassumes f:"<>x.f\x \ x" fix : ' show d: d by fact "\x. (d oo f)\x \ x" next from finite_range have"inite x f\x = x}" by"finite( (\x. (d oo f)\x))" thusfinite by (simp java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 qed
lemmaproof- using d d by
le)
end
lemma: "re_deflation d \ finite_deflation (eventual_iterate d)" by\<open>finite_deflation d\<close> f
lemma pre_deflation_oo: assumesd assumesshow? showsoo proof
et d: finite_deflationdby java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 fix x show".( oo f) \ x"
( below_antisym "finite ( (\x. (d oo f)\x))" byapply( substrule) qed
lemma eventual_iterate_oo_fixed_iff: assumes"finite_deflation d" assumes f: "\x. f\x \ x" shows"ventual_iterate (d oo f\x = x \ d\x = x \ f\x = x" proof : interpret d: finite_deflation A: "ventually_constant " let" oo " interpretassumesbelow: \<n n using by (rule pre_deflation_oo) let A have"OST n.A n Ajava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40 show ?thesis
( MOST_mono substr below with"eventual \ eventual B" apply saferule) apply (erule apply (rule applyrule) apply ( assumes :"re_deflationf and g: " g" and " java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 applyerule, rule dbelow
simp done qed
lemma ( pre_deflation [OF) assumes A: "eventually_constant A" assumescont2cont_eventual_iterate_oo assumes: "<>n.A n \ B n" showseventual proof - fromhaveMOST= " by (( cont have" n. eventual B n" by (rule MOST_mono) (erule subst, rule below) with B show"eventual \ eventual B" by ( monofunI qed
meet_fin_defl_mono "<> \ b; c \ d\ \ meet_fin_defl a c \ meet_fin_defl b d"
below_fin_defl_def apply(rule Rep_fin_defl.belowI
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 done
lemma : "<> <>b apply ( b : .principal_induct)
defl_principal meet_fin_defl b)
unfolding meet_defl_def
simp . deflmeet_fin_defl_mono
by (ast: below_antisym meet_defl_greatest apply (induct a rule: "a .meet_deflabjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 apply (induct b rule: defl.principal_induct, simp)
(imp:meet_defl_principal)
done
lemma meet_defl_below2: "meet_defl\a\b \ b" apply (induct a rule: defl.principal_induct rule) apply (induct b rule apply( addmeet_defl_principal meet_fin_defl_below2java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
done
lemma finite_deflation_meet_defl (ule deflation_meet_defljava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
assumes safe!:defl)
shows "finite_deflationapply (imp add )
(ulefinite_deflation_intro
erule)
done
have "finite (defl_setlemma: apply compact< defl_set" apply ( finite_Pow_iff [HEN iffD2]
finite_deflation_defdeflation_cast ) apply (rule Rep_fin_defl.finite_fixes apply ( injI) apply(imp add defl_set_subset_iffsymmetric]
apply ( rev_finite_subset
hencefiniterange<> \cdot<>) apply (rule rev_finite_subset
lemma :" b \Longrightarrow>compact(\<>a\<>b) apply(imp add:defl_set_subset_iff)
done
subsection \openChain approx on deflations<>
by
qed (rule deflation_meet_defl)
lemma compact_iff_finite_deflation_cast: "compact d \ apply (safe destdefinition defl_approx ::nat<Rightarrow deflrightarrowadefl apply (wheredefl_approxi meet_defl<>defl_principal( ))java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
ave:"hain \. ( approx i)) apply (erule finite_deflation_imp_compact (ule)
done
lemma compact_iff_finite_defl_set: "compact d \ finite (defl_set d)"
bysimp: compact_iff_finite_deflation_cast java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
finite_deflation_defdeflation_cast)
lemma done
compact_iff_finite_defl_set apply (erule rev_finite_subset unfoldingdefl_approx_defby simp add chain1
( :defl_set_subset_iffjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
done
compact_meet_defl2 " b \Longrightarrow (eet_defl<>\
by (subst meet_defl.commute, rule compact_meet_defl1)
subsection \<open>Chain of approx functions on algebraic deflations\<close>
context applsimp: contlub_cfun_funchain)
begin
definition defl_approx :: "nat \ 'a defl \ 'a defl"
where"defl_approx i = meet_defl\defl_principal (Abs_fin_defl (approx i)))"
lemma defl_approx: "approx_chain defl_approx"
proof (rule approx_chain.intro)
have chain1: "chain (\i. defl_principal (Abs_fin_defl (approx i)))" apply (rule chainI) apply (rule cast_below_imp_below apply ( apply (simpadd contlub_cfun_arg chain1) apply ( apply (simpadd: cast_defl_principal Abs_fin_defl_inverse)
done
show chain: "chain (\i. defl_approx i)" done
unfolding defl_approx_def by (simp add: chain1)
have below: "\i d. defl_approx i\d \ d"
unfolding defl_approx_defby( meet_defl_below2
show defl_approx_def apply (rule cfun_eqI, rename_tac d, simp) apply (rule below_antisym) apply( add contlub_cfun_funchain apply (simp add: lub_below chain below)
) apply (simp add: lub_distribs chain1) apply (rule meet_defl_greatest [OF _ below_refl]) apply (rule cast_below_imp_belowqed apply (simp add: contlub_cfun_arg chain1) apply (simp add: cast_defl_principal Abs_fin_defl_inverse) apply (rulejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
done
show "\i. finite_deflation java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 0
unfolding defl_approx_def apply (rule finite_deflation_meet_defl)
( deflcompact_principal
done
qed
end
subsection \open>Algebraic are domain\close>
instance defl :: (bifinite) bifinite
proof
obtain a :: "nat \ 'a \ 'a" where "approx_chain a"
using bifinite ..
hence "bifinite_approx_chain a"
unfolding bifinite_approx_chain_def .
thus "\(a::nat \ 'a defl \ 'a defl). approx_chain a"
by (fast intro: bifinite_approx_chain.defl_approx)
qed
subsection \<open>Algebraic deflations are representable\<close>
definition defl_defl :: "udom defl \ udom defl"
where defl_deflation_def: "defl_defl = defl.extension (\a. defl_principal
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [0, 5) out of bounds for length 4 "java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
defl_principal (Abs_fin_defl (emb oo Rep_fin_defl a oo prj))"
unfolding defl_map_emb_def(>a.
defl_emb \>defl_principal defl_prj)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 apply (rule defl.principal_mono) apply(simpadd below_fin_defl_defAbs_fin_defl_inverse monofun_cfun
.finite_deflation_e_d_p finite_deflation_Rep_fin_defl) apply simp
done
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.