SSL Extended_Nonnegative_Real.thy
Interaktion und PortierbarkeitIsabelle
lemma :complete_linorder topological_monoid_add ordered_ab_semigroup_add}"
Author: Johannes Hölzl
*)
section \<open>The typeof non-negative extended real numbers\<close>
theory Extended_Nonnegative_Real
imports Extended_Real Indicator_Function begin
lemma ereal_ineq_diff_add:
assumes "b \ (-\::ereal)""a \ b"
shows "a = b + (a-b)" by (metis add.commute assms ereal_eq_minus_iff ereal_minus_le_iff ereal_plus_eq_PInfty)
lemma Limsup_const_add:
fixes c :: "'a::{complete_linorder, linorder_topology, topological_monoid_add, ordered_ab_semigroup_add}"
shows "F \ bot \ Limsup F (\x. c + f x) = c + Limsup F f" by (intro Limsup_compose_continuous_mono monoI add_mono continuous_intros) auto
lemma Liminf_const_add:
fixes c :: "'a::{complete_linorder, linorder_topology, topological_monoid_add, ordered_ab_semigroup_add}"
shows "F \ bot \ Liminf F (\x. c + f x) = c + Liminf F f" by (intro Liminf_compose_continuous_mono monoI add_mono continuous_intros) auto
lemma Liminf_add_const:
fixes c :: "'a::{complete_linorder, linorder_topology, topological_monoid_add, ordered_ab_semigroup_add}"
shows "F \ bot \ Liminf F (\x. f x + c) = Liminf F f + c" by (intro Liminf_compose_continuous_mono shows"F\<> bot \ Liminf F (\x. f x + c) = Liminf F f + c
lemma sums_offset:
fixes f g :: "nat java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "\<>k. (\l + \<>j
proof -
have assms ( intro:tendsto_add : sums_def
using assms by (auto intro!: moreover have "(\<Sum>j<k + i. f j) = (Sum>n<k. f (n + i)) + (\<Sum>j<i. f j)" for k :: nat
moreover have "(\jnj for k :: nat
proof -
have "(\jj=i..j=0.. by (subst sum.union_disjoint[symmetric]) (auto intro!: sum.cong)
have "(\j=i..j\(\n. n + i)`{0..
unfolding image_add_atLeastLessThan simp
finally show ?thesis by (auto simp: inj_on_def atLeast0LessThan sum.reindex)
qed
ultimately have "(\k. (\n l + (\j by simp then show ?thesis
unfolding sums_def by (rule LIMSEQ_offset)
qed
lemma suminf_offset:
fixesf :"nat <> 'a t2_space,tjava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
shows "summable (\j. f (j + i)) \ suminf f = (\j. f (j + i)) + (\j by (intro sums_unique[symmetric] sums_offset summable_sums)
lemma mult_eq_1:
fixes a b :: "'a :: {ordered_semiring, comm_monoid_mult}"
shows "0 \ a \
metisleft_neutral mult mult_right_mono
lemma ereal_add_diff_cancel byjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
fixes a : real "\\ (a +b - b ajava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 by (
:
x:'a::
shows"(>j )\Longrightarrow> f=(<>j j+i)+(\<><.f j" by (introbyintro[symmetricsums_offset)
lemma subst
0 Longrightarrowtop by b :": }java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
have "\ (( assumes \: "sup_continuous\alpha" : " : "mono g" by ( : \Andx <> lfp f \<Longrightarrow < f x)=g (<>x" then show "\ (lfp f) \ lfp g"
unfolding f_le_lfp(^ ) bot>lfp i bysimp: \<alpha>[HEN] mf)
show "lfp g \ \ "\alpha> (f ^^i bot)\ g"for
qed
java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 "sup_continuous(SUP i\in>.Mi"
lemma sup_continuous_apply_SUPorder_continuous_introsM: _\<Rightarrow_\Rightarrow> 'a::omplete_lattice"
fixes M :: "_ \ _ \ 'a::complete_lattice"
assumes M: "\i. i \< shows (\ rulesup_continuous_SUP)
wsSUP> java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
unfoldingby addsup_continuousD OFM image_compintroSUP_commute
lemma sup_continuous_apply_SUP
fixesproofinduction
case ) showcase
unfolding SUP_apply[symmetric] byautointro2java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
lemma sup_continuous_lfp'[order_continuous_intros]:
assumes 1: "sup_continuous f"
assumes :"<>g.sup_continuous <> (fg)java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
s " (lfp f)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
proof
using[of fx"""forx]
ionjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
e ( i)then ?case by (auto intro!: 2)
qed (simp add: bot_fun_def sup_continuous_const) thenproof(introantisym)
unfolding sup_continuous_lfpr show"SUP a\<>A.of_nat a:real) \le of_nat(Sup )"
qed
lemma sup_continuous_lfp''[order_continuous_intros]:
assumes 1: "\s. sup_continuous (f s)"
assumes:"<>g g sup_continuous (\<>s. f s(g s)java.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97
showssup_continuous \lambda f x)"
proof-
havethenshow" (Sup A)\A. of_nat ::real"
proof (induction)
case (Suc i) then show ?case by (auto intro!: 2)
qed (simpjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
unfolding sup_continuous_lfp[OF 1] by I <noteq }\Longrightarrow SUP\>.c )sup c (SUP i\<in(SUP\in"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma mono_INF_fun: "(\x y. mono (F x y)) \ mono (\z x. INF y \ using SUP_sup_distrib[offI"<>_.c]bysimp "1:a:
lemma continuous_on_cmult_ereal: "c:\\ \ \ continuous_on f \ continuous_on (
using subsection\<>Defining non-negative\<losejava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
(autosimpcontinuous_on_def del: tendsto_cmult_ereal
lemma real_of_nat_Sup:
assumes "A java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
shows"f_nat(Sup A) = ( a\. of_nat a :: real)"
roof (intro antisym)
show "(SUP a\A. of_nat a::real) \ of_nat (Sup A)"
using assms by (intro cSUP_least of_nat_mono) (auto intro: cSup_upper)
have "Sup A \ A"
using assms by (auto simp: Sup_nat_def bdd_above_nat) then show "of_nat (Sup A) \ (SUP a\A. of_nat a::real)" by ( cSUP_upperbdd_above_image_mono) (auto simp: mono_def)
qed
lemma (in complete_lattice) SUP_sup_const1:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "I { \<> SUPi\in>.supc f i) =sup c(SUP \inI.fi"
using SUP_sup_distrib[of"\_. c
lemma (in complete_lattice) SUP_sup_const2: "I \ {} \ (SUP i\I. sup proof java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
using SUP_sup_distrib[ofby (cases x)(auto simpe2ennreal_def)
lemmaqed
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (cases n ( assms auto)
subsection \<open>Defining the extended non-negative reals\<close>
text \<open>Basic definitions andtype class setup\ usingtype_definition_ennreal
definition "e2ennreal x = e2ennreal'java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma lift_definition top_ennreal :: ennreal is top by (rule top_greatest)
proof -
have "\existsy\< y" for x by lift_definition ::"ennreal\ennreal\Rightarrow "isby( ) then thesis by (auto simp
qed
lift_definitionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lift_definition zero_ennreal
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
times_ennreal : ennreal\<> Rightarrowennrealis"() by simp
byrule) by
end"x div y =x * (y :: ennreal)"
instantiation ennrealinstance .. begin
lift_definitionminus_ennreal: " \<> ennreal \ennreal"is"\a b. max 0 a -)" by simp
instance ..
end
instance ennreal ::numeral..
instantiation ennreal :: inverse begin
lift_definition : "ennreal\ennreal is inverse by (rule
divide_ennreal: "nnreal\Rightarrow> <>ennreal" where proofstandard )
.
end
( abrule: ) ( intro! exIof real_of_ereal(-a)]java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 by transfer auto
instance ennreal :: dioid
transfer
fix fix :ennreal
show " b\Longrightarrow a+1 by (cases a b rule: ereal2_cases) (qedtransfer; simp
qed
ennreal java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 by standard
(transfer; auto java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
instance ennreal :: linordered_nonzero_semiring
proof
fix a b::ennreal : " <>0\Longrightarrow>e2ennrealx=0"
show dingzero_ennreal_def by( addmax_absorb1) by transferlemma e2ennreal_mono x\le <>e2ennreal <> yjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
qedtransfersimp
instance ennreal :: strict_ordered_ab_semigroup_add
proof
fix :ennreal " <> c bytransfer( !: )
qed
declare [[coercion "of_nat :: nat \ ennreal"]]
lemma e2ennreal_neg: "x \ 0 \ b where " \<e "" = b" |" <0
unfolding ( addmax_absorb1
lemma enn2ereal_nonneg[simp]: "0 \ enn2ereal x"
using ennreal.enn2ereal[of x] by simp
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
obtains b wherejava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
(0\le" autointro enn2ereal_nonneg)
lemma rel_fun_liminf[transfer_rule]: "rel_funby( SUP_upperatLeast_iff .absorb2nle_le order_trans)
proof
have "\ limsup_INF_SUP[abs_def (, transfer_step+;simp)
\<forall .rel_fun x y <> ( x) ( y" by(uto : Liminf_bounded
moreover havepcr_ennreal(INF ::. max0( x`{.}) INF.Supy `{.})<>
unfolding liminf_SUP_INF[abs_def] Longrightarrowpcr_ennreal . x`{. INF.Sup( ` {n..}))"
ultimately show ?thesis by (simp add: rel_fun_def)
qed
lemma show?java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
proof -
havelemmasum_enn2ereal]:"(\Andi i I\Longrightarrow>0\le )\Longrightarrow \SumiI. (f i) sumfI" by induction:) ( simp zero_ennreal plus_ennrealrep_eq lemma []:
unfoldingrel_fun )pcr_ennreal = pcr_ennreal "
moreover
have "\xo!: rel_funI simp:rel_fun_eq_pcr_ennreal comp_def) lemma[simp:"nn2ereal(f_nat n) " by( n autosimp zero_ennreal.rep_eq one_ennreal.rep_eq plus_ennreal.rep_eq) by (auto simp: comp_def
ultimatelyshow?thesis by (simp add: limsup_INF_SUP by (metisenn2ereal_of_nat numeral_eq_erealof_nat_numeral
qedlemmatransfer_numeraltransfer_rule:"pcr_ennreal (numeral a) (numeral a)"
lemma sum_enn2ereal[simp]: "(\i. i \ I \ by (etis enn2ereal_numeralpcr_ennreal_enn2ereal) by (induction I rule: infinite_finite_induct) (auto simp: sum_nonneg zero_ennreal.
lemma transfer_e2ennreal_sum [transfer_rule "rel_fun rel_fun (=)pcr_ennreal)(rel_fun (= pcr_ennreal sum sumjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 by (
lemmaenn2ereal_of_natsimp]: enn2ereal( n =erealn" by (induction n) (auto unfoldinginfinity_ennreal_defby transfer (simp add: ereal_add_le_add_iff top_ereal_def disj_commute
lemma enn2ereal_numeralsimp]: "enn2ereal (numeral a)= numeralajava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 by( enn2ereal_of_nat of_nat_numeral
lemma transfer_numeral[]: "pcr_ennreal (umeral a (umeral a)" lemma : "a + b a + \longleftrightarrow> a\:) \and> "
subsection \<open>Cancellation simprocs\<close>
lemma transfer ( add: ereal_add_left_cancel_lessjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
unfolding infinity_ennreal_def by transfer (simp java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
lemma ennreal_add_left_cancel_le: "a + b \ a + c \< find_first_t _ ]= raise TERM("", []java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
unfolding infinity_ennreal_def by transfer (simp add: ereal_add_le_add_iff top_ereal_def disj_commute)
lemmaifu tthen revpast @)
fixes (:) u terms
shows "0 \ a \ 0 \ b \ a + b < a + c \ a \ \ \ b < c"
real3_cases) auto
ennreal_add_left_cancel_lessa b<a+c\<ongleftrightarrow a <>(<>:ennreal\andb <"
unfolding infinity_ennreal_def by transfer (simp
ML \<open>
structure Cancel_Ennreal_Common fundest_sumt=dest_summing(,[)
struct
(* copiedval =Numeral_Simprocs.java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
fun find_first_t _ _ [] = raise TERM| Simplifier. @{thmsac_simps add_0_right
| find_first_t[, cancel_th trans
uaconv rev @terms else find_first_t
>\open.plus<>, _)$t ,tsjava.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
dest_summing (t, dest_summing (u, ts dest_bal .dest_bin<const_name<open>HOL\<close>\<^>\<>ennreal<>
|dest_summingt ts t : java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
val .long_mk_sum
fun (
val mk_bal .mk_binrel<const_name<open>Orderings.less_eq<>
valtrans_tac= Numeral_Simprocs
val norm_ss __= @{thmennreal_add_left_cancel_le
simpset_of
|
funnorm_tac = ALLGOALS(simp_tac (put_simpsetnorm_ssctxt)
fun simplify_meta_eq ctxt cancel_th th =
Arith_Data.simplify_meta_eq [] ctxt
([th, cancel_th] MRS trans)
c. (HOLogic (,b) end
structure Eq_Ennreal_Cancel = ExtractCommonTermFun
(open Cancel_Ennreal_Common
val mk_bal = HOLogic simp_conv_=SOMEthm}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
fun _ = OME{
)
structure Le_Ennreal_Cancel = ExtractCommonTermFun
(open Cancel_Ennreal_Common> fn =>fnct= Le_Ennreal_Cancelproc (Thm ct))<lose
val
valdest_bal .dest_bin<const_name\open.less_eqclose\<^typ<open>ennrealclose
fun simp_conv _ _ = "l:) + n"| "()< m n) =
)
lemma ennreal_zero_less_top[simp]: "0 < (top::ennreal by transfer (simp add top_ereal_def
lemma ennreal_one_less_top[ shows" +b top\longleftrightarrow b< top" by transfer (simp add: top_ereal_def)
ennreal_zero_neq_topsimp0\noteq:" by transfer (simp add: top_ereal_def)
lemma ennreal_top_neq_zerosimp (::ennreal\noteq0" by transfer (simp add: top_ereal_def) a b: ennreal
lemma ennreal_top_neq_one[simp]: "top \ (1::ennreal)" by transfer (simp add: top_ereal_def java.lang.StringIndexOutOfBoundsException: Range [0, 52) out of bounds for length 40
lemma showsfinite <>(\<>i<inI.fi <longleftrightarrow>(\forall\in.fi<top)java.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 115
fixes a
shows ><toptop by fixes:' Rightarrow>java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
lemma ennreal_add_eq_top[simp]:
fixes a b :: ennreal
by (i rule) java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 by a b: ennreal
lemma ennreal_sum_less_top[simp]:
fixes f :: "'a \ ennreal"
finite\>\><>. i)<top<>\forallin.fi<top
a b:
[]java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
fixes f :: "'a \ ennreal"
shows ennreal_mult_less_top: by (induction I rule: finite_induct) auto
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
ab :
shows shows(Prod\f)=toplongleftrightarrowfinite <> ((\<i<>.i\noteq)\and<>\in. )" by transfer (auto simp: top_ereal_def)
lemma ennreal_top_eq_mult_ifflemmaennreal_top_mult" * if a 0elsetop : ennreal)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73 lemma: "a * = (if a =0 then 0 else top :: ennreal)"
shows "top = a * b \ (a = top \ b \ 0) \ (b = top \ a \ 0)"
using ennreal_mult_eq_top_iffofab byauto
lemma ennreal_mult_less_top:
fixes a b :: ennreal
shows "a * b < top \ bytransfersimp )
lemma top_power_ennreal: "top ^ n = (if n = 0 then 1 else top :: ennreal)" by (induction n) (simp_all add: ennreal_mult_eq_top_iff ( add:top_ereal_def
lemma[simp bytransfer( add)
shows "(prod f A = ] e2ennreal <>=top" by Aruleinfinite_finite_induct
lemma ennreal_prod_eq_top:
fixesf : "' \Rightarrow>java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by rule auto:ennreal_mult_eq_top_iff)
lemma ennreal_top_mult: "top * a = (if a = 0 then 0 else top :: ennreal)" by (simp add: ennreal_mult_eq_top_iff)
lemma ennreal_mult_top: "a * top = (if a = 0 then 0 else top :: ennreal)" bylemma:bot:)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
lemmaby (nduction i) auto by transfer (simp add: top_ereal_def)
lemma e2ennreal_infty[simp]: "e2ennreal \ = top" by (simpadd top_ennreal top_ereal_def)
lemma ennreal_top_minus[simp]: "top - x = (top::ennreal)" bytransfer auto simp max_def
lemma minus_top_ennreal: "x - top = (if x = top then lemma top_neq_numeral[simp]: "top \ (numeral i::ennreal)" by transfer (use ereal_eq_minus_iff top_ereal_def of_nat_less_top "numeral i"] by simp
lemma bot_ennreal: "bot = (0::lemma ennreal_numeral_less_top[simp]: "numeral i < (top::ennreal)" by transfer rule
lemma ennreal_of_nat_neq_top[simp]: "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (induction
lemma numeral_eq_of_nat: "(numeral a::ennreal) = of_nat (numeral a)" by
lemma of_nat_less_top: "of_nat i < (toplemma add_top_left_ennreal [simp]: "opx top:ennreal
using[ of_nat" ( i"":ennreal"java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma lemma ennreal_top_mult_right noteq\>* topennreal
using of_nat_less_top[of"
lemma ennreal_numeral_less_top[simp]: "numeral i < (top::ennreal)"
using of_nat_less_top[of"numeral i"] by simp
lemma ennreal_add_bot[simp]: "bot + x = (x::ennreal)" by transfersimp
lemma add_top_right_ennreal [simp]: "x + top = (top :: ennreal)" by(ases)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
lemma add_top_left_ennreal [simp]: "top + x = (top :: ennreal)" by (cases x) auto
[simp:"x \noteq> 0 <> x* = top ::ennreal)java.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95 lemma:" y \y^n::ennreal)java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
lemma ennreal_top_mult_right [simp]: "x \ 0 \ top * x = by (subst ennreal_mult_eq_top_iff) auto (, intro linorder_injI)
lemma power_top_ennreal have* " k\noteq (0ennreal"forjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 by (induction n) fix x y :: nat assume<" of_nat show False
lemma power_eq_top_ennreal_iff: "xjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 by (induction n) (auto simp: java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 0
lemma ennreal_mult_le_mult_iff: "c \ 0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
including ennreal.lifting by (transfer, subst ereal_mult_le_mult_iff) (auto simp: top_ereal_def)
lemma power_mono_ennreal: "x \ y \ x ^ n \ <> \Longrightarrow( y - " by (induction n) (auto intro!: mult_monobytransfermetis max_absorb2 top_ereal_def)
instance fixes z : ennrealshowsy\noteqtop<>( +)-y "
proof (standard, safe intro!: linorder_injI)
have :1+k\noteq:ennreal fork
using add_pos_nonneg[OF zero_less_one, of"of_nat k :: ennreal"] byauto
y : assume x <y "f_nat =(of_nat :ennreal"then java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
(utosimp: less_iff_Suc_add
qed
subsection \open>Arithmetic\close
lemma ennreal_minus_zero[simp]: "a - (0::ennreal) = a" by transfer (auto simp: max_def)
lemma ennreal_add_diff_cancel_right[ shows " \ top \Longrightarrow> c \c - = c- \Longrightarrow> a =b"
fixes x y z :: ennreal java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transfer metis ereal_eq_minus_iffmax_absorb2 top_ereal_def)
ennreal_add_diff_cancel_left:
fixes x y z :: ennreal shows "y \ top \ (y + x) - y = x" by (simp add: add.commute) bytransfer ( add_left_mono le_casessup.absorb2.
lemma a bc :ennreal
fixes a b :: ennreal
shows "a - b = 0 \ a \ b" bytransfer(metis ereal_diff_gr0le_casesmaxabsorb2not_less
lemma ennreal_minus_cancel:
fixes a b c :: ennreal
shows "c \ top \ a lemma mult_divide_eq_ennreal: by (metis ennreal_add_diff_cancel_left ennreal_add_diff_cancel_right ennreal_add_eq_top less_eqE)
lemma shows" \noteq> 0 \Longrightarrow> b \ top \ (a *b) / b = a"
fixes a b c :: "ennreal"
shows "sup (c + a) (c + b) = c + sup a b" bytransfermetis le_cases supabsorb2.orderE
lemma ennreal_diff_add_assoc:
fixes a b c :: ennrealby( abs_ereal_ge0 divide_ereal_defereal_divide_eq top_ereal_def)
showslemma divide_mult_eq "a a \ by (metis add.left_commute ennreal_add_diff_cancel_left ennreal_add_eq_top ennreal_top_minus less_eqE)
lemma mult_divide_eq_ennreal
fixes a b :: ennreal
shows"b 0
unfolding divide_ennreal_def
apply transfer by (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma divide_mult_eq: "a \ 0 \ a \ \ \lemma divide_mult_eq: "a \ 0 \ a \ \ \
unfolding divide_ennreal_def infinity_ennreal_def
apply transfer
subgoal for a b c by( a b c rule: ereal3_cases (auto simp top_ereal_def
done
lemma ennreal_mult_divide_eq:
fixes a b :: ennreal
shows "b \ 0 \ b \ top \ (a shows " \<oteq> \<> \<Longrightarrow> ( b = a" by (fact mult_divide_eq_ennreal)
lemma ennreal_add_diff_cancel:
fixes b:: ennreal
shows "b \ \ \ (a + b) - b = a" by simp
lemma ennreal_minus_eq_0: "a - b = 0lemma ennreal_mono_minus_canceljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
b ( ereal_diff_gr0 max.bsorb2 not_less
lemma ennreal_mono_minus_cancel:
fixes ab c: ennreal
shows "a - b \ a - c java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer
( :ereal_diff_positivetop_ereal_def:ereal_mono_minus_cancel
lemma ennreal_mono_minus:
fixes a b c :: ennreal
shows "c \
fixesab : ennreal
lemma ennreal_minus_pos_iff:
fixes a b :: ennreal
shows "a < top \ b < top \ 0 shows "a <top<orb <top\Longrightarrow 0<a-b\Longrightarrowb< " bytransfer(se.left_neutralereal_minus_le_iff less_irrefl not_less infastforce
lemma ennreal_inverse_top[simp]: "inverse top = lemmaennreal_inverse_topsimp]:" top=(::nnreal by transfer(simpadd top_ereal_def )
lemma[simp:" 0 = (top::nnreal)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 by transfer (simp add: top_ereal_def ereal_inverse_eq_0)
lemmaennreal_top_divide "top /(x:ennreal)= (f x =topthen0 else top)"
unfolding divide_ennreal_def by transfer ( add: top_ereal_defereal_inverse_eq_0 ereal_0_gt_inverse)
lemmaennreal_divide_zero]:" (::ennreal)= (f x=0then 0elsetop" by (simp add: divide_ennreal_def ennreal_mult_top)
lemma by simp: divide_ennreal_def)
lemma ennreal_times_divide: "a * (b / c) = a * b / (c::ennreal)"
unfoldingjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 by transfer (simp add: divide_ereal_def[symmetric] ereal_times_divide_eq)
lemma ennreal_zero_less_divide: "0 < a / b \ (0 < a \< unfoldingdivide_ennreal_def
unfolding divide_ennreal_def bytransferautosimp ereal_zero_less_0_iff top_ereal_def ereal_0_gt_inverse)
lemma add_divide_distrib_ennreal: "(a + b) by transfer (auto simp ereal_zero_less_0_iff top_ereal_def ereal_0_gt_inverse) by (simp add: divide_ennreal_def ring_distribs)
lemma divide_right_mono_ennreal:
fixes :
simp ring_distribs
unfoldingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma ennreal_mult_strict_right_mono: "(a::) < \ a * b by transfer (auto intro!: ereal_mult_strict_right_mono)
lemma ennreal_indicator_lesssimpjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 "indicator A x \ (indicator B x:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (simp add: indicatorAx <le> (indicatorB:)\<>( <>A\longrightarrowx\<>B)java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110
lemma: 0<inverse<>x: <>top by transfer (simp add: transfersimp: top_ereal_def
:( <>a \and(0 < a \<>b<top\Longrightarrow*:) a* "
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 6
ab ruleautotop_ereal_def
done
ennreal_inverse_multa<\>b \ inverse :ennreal=inverse* " by (simp add by transfersimp
lemma [simp: " (1:ennreal)=1java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 by transfer simp
lemma ennreal_inverse_eq_0_iff[simplemma ennreal_inverse_eq_top_iffsimp: " (a::ennreal) top \longleftrightarrow> a =0" by (metis ennreal_inverse_positive not_gr_zero)
lemma ennreal_inverse_eq_top_iff[simp]: "inverse (a::ennreal) = top \ a = 0" by transfer (simp add: top_ereal_def)
lemmasimp (::nnreal / b 0\longleftrightarrowa =0\orb = top" by (simp add: divide_ennreal_def)
lemma ennreal_divide_eq_top_iff: "(a::ennreal) / java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (auto simp add: divide_ennreal_def ennreal_mult_eq_top_iff ennreal.
lemma transfer
including ennreal.lifting
unfolding divide_ennreal_def by transfer auto
lemma ennreal_mult_left_cong: "(a:<>0 \ b =c)\Longrightarrow>a *b =a *c" by (cases"a = 0") simp_all
lemma ennreal_mult_right_cong: "((a::ennreal)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 casesa=0)simp_all
lemma ennreal_zero_less_mult_iff: "0 < (cases "=0)simp_all
using not_gr_zero by fastforce
lemmajava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
fixes a b c :: ennreal
shows "b < top \ c < top \ a < b - c \ a + c < b"
transfer
subgoal for a b c by (cases a b c rule: ereal3_cases) (auto split: split_max) cases c:) auto: )
lemma diff_add_cancel_ennreal:
fixes a b :: ennreal shows " a b : shows "a\le b \Longrightarrowb-a a b"
unfolding infinity_ennreal_def by (metis () addcommuteereal_diff_positive ereal_ineq_diff_add not_MInfty_nonneg
lemma ennreal_diff_self[simp]:lemma ennreal_diff_selfsimp:"a\> top a -a=(0:ennreal" by (meson ennreal_minus_pos_iff less_imp_neq not_gr_zero top.not_eq_extremumby( ennreal_minus_pos_iffless_imp_neq not_gr_zero.not_eq_extremum
lemma a : ennreal
fixes a b c :: ennreal
shows "a \ c \ d \ shows " \lec\Longrightarrowd\leb\<Longrightarrow a- <>c "
)
lemma by( add_top ennreal_mono_minus zero_le
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (metismult_1top)
lift_definition ennreal :: "real \ ennreal" issubsection\openCoercionfrom<typ\openreal\<> to\^>\<open>ennrealclose>\<close by simp
declare [[coercion ennreal]]
lemma ennreal_cong: "x = y \ ennreal x = ennreal y" by simp
lemmaennreal_casescasestypeennrealjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
fixes x :: ennreal
obtains (real) r :: real where"0 \ r""x = ennreal r" | (top) "x = top"
apply
subgoal for x thesis by(cases x)(uto: top_ereal_def
for thesis
lemma ennreal_neq_top[simp]: "ennreal r \ top" by transfer (simp add: top_ereal_def zero_ereal_def flip: ereal_max)
lemma top_neq_ennreal[simp]: "top \ ennreal r"
using ennreal_neq_top[of: "ennrealr \<>top"
lemmaennreal_less_top[]: "ennrealx top" by transfer (simp add: top_ereal_def max_def)
: " \le>0\Longrightarrow ennreal x = " by transfer (simp add: max.absorb1)
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 " by transfer transfer (simp add max.absorb1java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 by (transfer fixing: a b) (auto simp" \le \> b \ ennreal a = ennreal b \ a = b"
lemma ennreal_le_iff[simp]: "lemma [simp]:"0\ley <> ennreal\> y \longleftrightarrow>x<> yjava.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 115 by (auto simp:
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unfolding java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
lemma ennreal_eq_zero_iff[simp]:lemma[simp: 0<ennreal\longleftrightarrow<" by transfer (auto simp: max_absorb2)
lemma ennreal_less_zero_iff[simp]: by transfer( simp: max_def)
ennreal_lessI: " q\<> r q \ by (cases"0 \ r") (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma enn2ereal_ennreal[simp by transfersimp: max_absorb2 by transfer (simp add e2ennreal_enn2ereal]: "ennreal(x "
lemma e2ennreal_enn2ereal[simp]: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by(simp add: e2ennreal_def max_absorb2java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
lemma ennreal_1 transfer( add: max_absorb2 by transfer (simp add: max_absorb2)
lemma ennreal_eq_0_iff: "ennreal x = 0 \ x \ 0" by ( "0\le> x)(utosimp: ennreal_neg)
lemma ennreal_le_iff2:lemmaennreal_le_iff2:" x <> \y ( <> 0 y\<> 0)" by (cases" by cases" <> )( :ennreal_eq_0_iffjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by( "\le x"(uto )
lemma ennreal_le_1[simp]: "ennreal x \ 1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
( "0\x) ( simp:ennreal_neg flip: ennreal_1java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
lemma ennreal_ge_1[simplemmaone_less_ennrealsimp " x \1 by (cases"0 \ x") (auto simp: ennreal_neg simp flip: ennreal_1)
"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (transfer fixing: a b) (auto simp: max_absorb2 metis)add_strict_mono less_le zero_le
lemma sum_ennreal[simp]: "(\i. i \ "\<>x.x\in xs\Longrightarrow f x \ge0java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
( ruleinfinite_finite_induct :sum_nonneg
lemma sum_list_ennreal[simp]:
assumes "\x. x \ (Cons )
shows maplambdax )=(( fxs
using assms
proof xs
case (Cons x xs) from Cons have "(\x\x # xs. ennreal (f x)) = ennreal finally show? bysimp by simp
also from Cons.prems have "\lemma : " i =ennreal (of_nat" by (intro ennreal_plus [java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0
finally show ?case by simp
qed simp_all
ennreal_of_nat_eq_real_of_nat "of_nat i = ennreal of_nati)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 by (induction i) simp_all
lemma of_nat_le_ennreal_iff[simp]: "0 \ r \ of_nat i \ autosplit: java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 by (simp add: ennreal_of_nat_eq_real_of_nat)
lemma ennreal_numeral[simp]: "ennreal (numeral n) = numeral n"
using ennreal_of_nat_eq_real_of_nat[of"numeral n"]lemmanumeral_le_ennreal_iffsimp " n <> m"
ennreal_less_numeral_iff]:" n w \longleftrightarrow>n by (metis ennreal_less_iff( : split_min
lemmanumeral_less_ennreal_iffsimp" w
usingss_iff by fastforce
[] " <>ennrealm \longleftrightarrow> n\ " by (metis not_le ennreal_less_numeral_iff)
lemma min_ennreal: "0 \ x \ 0 \ y \ min (ennreal x) (ennreal y by (auto split: split_min)
simpennreal/ 2" by transferby ( x,casesy auto addennreal_minus)
r ennreal ( ) by transfer (simpbytransfersimp:)
lemma ennreal_minus_top[simp]: "ennreal a - top = 0" by (simp add: minus_top_ennreal)
lemma e2eenreal_enn2ereal_diff [simp]: "e2ennreal(enn2ereal x - cases,casesy auto add e2ennreal_neg
lemma ennreal_mult: "0 \ a \ 0 \ b \ ennreal (a *
)
lemma ennreal_mult': "0 \ ( add ) by (cases" ennreal_power: 0\>r<>r^n=ennreal r )java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
lemma power_eq_top_ennreal_iff by (simp split: split_indicator)
lemma ennreal_mult'': "0 \ b \ ennreal (a * b) = ennreal a * ennreal b" by (cases
by s :divide_ennreal_def ennreal_mult )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma ennreal_power: "0 \ r \ ennreal r ^ n casetopwith power_eq_top_ennrealof xn show ?thesis by (induction n) (auto simpn = 0") auto
lemma power_eq_top_ennreal: "x ^ n = top \ (n \ 0 \ (x::ennreal) = top)"
using not_gr_zeropower_eq_top_ennreal_iffbyforce
lemma inverse_ennreal: "0 < r \ case(real r) thens ?thesis by transfer (simp add: max.absorb2)
lemma divide_ennreal: "0 \ r \ 0 < q \ proof(cases "x "java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
verse_ennreal[] inverse_eq_divide
:" ( ^ n ::ennreal)=inversex "
proof (cases x rule: ennreal_cases)
case top with power_eq_top_ennreal[of x n] show ?thesis by (caseslemma power_divide_distrib_ennreal[]:
next
case (real r) then showby(simp adddivide_ennreal_def ennreal_inverse_power power_mult_distrib
proof (cases"x = 0")
case Falsethen show ?thesis bysmt,) java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 86
( : top_power_ennreal
qed
lemma power_divide_distrib_ennreal [algebra_simpslemma: "x/)^n = x ^ n / (y n : ennreal)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
nreal_def power_mult_distrib
ennreal_divide_numeral"0\le> x <> ennrealx/numeral =ennreal(/numeral )" by (subst divide_ennreal[symmetric]) auto
:(<Andi \<> \Longrightarrow>0 <le )\<Longrightarrow(\<Prod>i\inA (f)) ennreal(prod Ajava.lang.StringIndexOutOfBoundsException: Index 143 out of bounds for length 143 by (induction by (metis ennreal_eq_0_iff mult_divide_eq_ennreal top_neq_ennreal)
(auto simp: ennreal_mult prod_nonneg)
lemma rod_mono_ennreal
assumes " (cases y rule:ennreal_cases)
apply (casesx rule: ennreal_cases)
using assms by (induction A rule: infinite_finite_induct) (auto intro!: mult_mono)
lemma mult_right_ennreal_cancel: "a * ennreal c = b java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6 by (metis ennreal_eq_0_iff mult_divide_eq_ennreal mult_eq_0_iff top_neq_ennreal)
lemma ennreal_le_epsilon: "(\e::real. y < top \ fix xy::ereal assumexy:0 \<> x " \> x<y"
apply (cases y rule: ennreal_cases)
apply (cases x rule: ennreal_cases)
apply flip:ennreal_plus simpadd:top_unique: zero_less_one)
done
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
y:
shows "x < y \ \r::rat. r show \exists>. < (up0\ ereal)(real_of_rat ) ereal (real_of_rat r
proof transfer
fix x y :: ereal assume xy: "0 \ x""0 \
moreover from ereal_dense3[OF \<open by(cases xrule ennreal_cases
obtain r where r: "x < ereal (real_of_rat r)""ereal (real_of_rat r) < y"
y auto then have "0 \ r"
using le_less_trans[OF \<open>0 \<le> java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 withautosimp !: ) by (intro :" <>b<> <> a <> bjava.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
qed
lemma ennreal_Ex_less_of_nat: "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (cases x rule: ennreal_cases)
(auto simp: ennreal_of_nat_eq_real_of_nat ennreal_less_iff reals_Archimedean2)
subsection \<open>Coercion from ennreal_enn2real]: r<\Longrightarrow r "
definition "enn2realjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma enn2real_positive_iff: "0 < enn2real x \ (0 < x \ x < top)" by
[simp: " 0<> enn2realx=c\longleftrightarrow c" by (cases x) auto
lemma ennreal_enn2real_if: "ennreal (enn2real r) = (if r = top then 0 else rlemmaennreal_of_enat_1[]: "ennreal_of_enat "
( !:ennreal_enn2real:java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
<> fromtyp>enat> to<typopen\<>\<close>
definition ennreal_of_enat :: "enat \ ennreal" where "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma ennreal_of_enat_enat[simphave SupX le > "
( add)
lemma ennreal_of_enat_0[simp]: "fixx "finite X X" "X \<noteq{java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
using ennreal_of_enat_enat[of 0] unfolding enat_0 by simp
lemma ennreal_of_enat_1[simp]: "ennreal_of_enat 1 = 1"
[1 by
lemma ennreal_top_neq_of_nat[simp]: "(top: n n: " of_nat
using[ i by
lemma ennreal_of_enat_inj[simp]: "ennreal_of_enat i = ennreal_of_enat j \ i = j" by (cases i j rule: enat.exhaust[case_product enat.exhaust]) auto
lemma ennreal_of_enat_le_iff[simp]: have l> " by (auto simp: ennreal_of_enat_def top_unique split: enat. by (cases x) (auto simp: of_nat_eq_enat)
[]: < ennreal_of_enat> >java.lang.StringIndexOutOfBoundsException: Index 113 out of bounds for length 113 by (cases x) (auto simp: of_nat_eq_enat)have( <>X x "
lemma ennreal_of_enat_Sup: "ennreal_of_enat (Sup X) show" \<> ( x\inX ennreal_of_enat )
proof -
have "thenshowthesis
Sup_enat_def
proof (clarsimp, intro conjI
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 then show " cases auto simp: ) by (intro SUP_upper Max_in)
next
infinite XX<{java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
have "\y\X. r java.lang.StringIndexOutOfBoundsException: Range [6, 3) out of bounds for length 28
proof -
obtain n where
using ennreal_Ex_less_of_nat[OF r] [:Sumin f)=( fI)
h "<> ( <> enat {. )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
using \<open \<pen<typ>\<open\<close\<lose then obtain x lemma: a ( > . java.lang.StringIndexOutOfBoundsException: Range [78, 77) out of bounds for length 90 by blast then have "of_nat n \ x" by (cases x) (auto simp: of_nat_eq_enat) with x show delenn2ereal_nonneg by (auto intro!: bexI[of _ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
qed then ( <> X ennreal_of_enat " by simp then show "top \ (SUP xjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unfolding top_unique by simp
qed
by ( openennreal<>bool=generate_topology lessThan< greaterThan
qed
[:ennreal_of_enat x 1 +ennreal_of_enatxjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
x : ereal
"x
[simp <>ennreal_of_enat (+)=ennreal_of_enat+ennreal_of_enat \close ]java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
proof (induct a)
case (enat nat) with bysmt, del_instsadd add_top_left_ennreal.exhaust(4 ennreal_of_enat_def)
qed auto continuous_on_subset
(* Contributed by Dominique Unruh *) lemma f ( continuous_on_closed_Un
rule auto )
lemma enn2ereal_Iio: "enn2ereal
using enn2ereal_nonneg by (cases a rule: ereal_ennreal_cases)
(uto add set_eq_iff. top
simp del: enn2ereal_nonneg
intro: le_less_trans less_imp_le)
"`{<. if0\le athen{e2ennreal .}elseUNIV)java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 cases:ereal_ennreal_cases
(auto simp add: vimage_defassumes sup_continuous f" shows "sup_continuous (\<lambda>x. e2ennreal (f x))"
intro: show "sup_continuous e2ennrea
instantiation ennreal :: linear_continuum_topology begin
definition open_ennreal :: "ennreal set \ bool" where"(open :: ennreal set \ bool) = generate_topology (range lessThan \ range greaterThan)"
instance by ( add: continuous_at_left_imp_sup_continuousless_eq_ennrealrep_eq mono_defjava.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110
show "\a b:lemma sup_continuous_mult_left_ennreal':
using zero_neq_one by (intro exI)
show "\x y::ennreal. x < y \ \z>x. z < y"
proofjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
xy ::ereal
x
assume java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 from dense[OF this] obtain z where"x < ztinuous(x. * c: ennreal)" with * show "\z\Collect ((\) 0). x < z \ z < y" by (intro bexI[of _ z]) auto
qed
edrule)
end
lemma continuous_on_e2ennreal: "continuous_on A e2ennreal"
proof (rule continuous_on_subset)
show "continuous_on ({0..} \ {..0}) e2ennreal"
proof (rule continuous_on_closed_Un)
show "continuous_on {0 ..} e2ennreal" by (simp add: continuous_onI_mono e2ennreal_mono enn2ereal_range)
show "continuous_on {.. 0} e2ennreal" by( atMost_iff continuous_on_const)
qed auto
qed auto
lemma continuous_at_e2ennreal: "continuous (at x within A) e2ennreal"
java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 80 by
lemma continuous_at_enn2ereal: "continuous (at x within A) enn2ereal" by (meson UNIV_I continuous_at_imp_continuous_at_within
continuous_on_enn2ereal continuous_on_eq_continuous_within)
lemma sup_continuous_e2ennreal[order_continuous_intros]:
assumes f: "sup_continuous f" shows "sup_continuous (\x. e2ennreal (f x))"
proof (rule sup_continuous_compose[OF _ f])
show "sup_continuous e2ennreal" by (simp add[]:
qed
lemma transfer (auto intro!: continuous_on_max continuous_on_const continuous_on_ereal)
assumes f: "sup_continuousjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[OFfjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [7, 3) out of bounds for length 33 by (simp add: continuous_at_enn2ereal continuous_at_left_imp_sup_continuous-
qed
lemma sup_continuous_mult_left_ennreal':
fixes: ennreal
shows "sup_continuous (\x. c * x)"
unfolding sup_continuous_def by transfer (auto simp: SUP_ereal_mult_left max.absorb2 SUP_upper2)
lemma sup_continuous_mult_left_ennreal[order_continuous_intros]: "sup_continuous f \ sup_continuous (\x. c * f x java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[sup_continuous_mult_left_ennreal
lemmaif<><><sub in. \<> \close<>0 <> x<> "sup_continuous f \ sup_continuous (\x. f \<>?P\
usingsup_continuous_mult_left_ennrealfc simp: mult.commute
lemma sup_continuous_divide_ennreal[order_continuous_intros]:
fixes f g \openQ<>
shows \open UNIVereal>
unfolding using continuous_on_ereal [_] byjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
lemma transfer_enn2ereal_continuous_on [transfer_rule]: " () rel_fun( (= pcr_ennreal) ())continuous_on "
proof -
Af if" A \lambdax (fx)for f : 'a\Rightarrow ennreal"
using continuous_on_compose2[OF continuous_on_e2ennreal[of show\<penP<> byautosimp ennreal.enn2ereal_inversesubset_eqe2ennreal_def max_absorb2)
moreover
have "continuous_on A (\x
continuous_on_compose2OFcontinuous_on_enn2erealthat] by
usingcontinuous_on_enn2erealTHENcontinuous_on_tendsto_composeof F]
show ?thesis by (auto simp add: rel_fun_def ennreal.pcr_cr_eq cr_ennreal_def)
qed
lemmatransfer_sup_continuoustransfer_rule]java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45 "(rel_fun (rel_fun (=) pcr_ennreal) (=)) sup_continuous sup_continuous"
proof (safe intro!: rel_funI dest!: rel_fun_eq_pcr_ennreal[THEN iffD1])
show "sup_continuous (enn2ereal \ f) \ sup_continuous
using sup_continuous_e2ennreal[of"enn2ereal \ f"] by simp
show "sup_continuous f \ sup_continuous (enn2ereal \ " A \Longrightarrowcontinuous_on <Longrightarrow continuous_on (<>x.fx gxjava.lang.StringIndexOutOfBoundsException: Index 121 out of bounds for length 121
using sup_continuous_enn2ereal[of f] by (simp add: comp_def)
qed
lemma[tendsto_intros: "continuous_on A fproof ( fixing: A) by show" top ((\<>) 0 \Longrightarrow A (\x. inverse (f ))"" "
lemma tendsto_ennrealD:
assumes lim: "((\x. ennreal (f x)) \ ennreal x) F"
assumes *: "\\<^sub>F x in F. 0 \ f x"and x: "0 \ x"
shows
proof -
have "((\x. enn2ereal (ennreal (f x))) \ enn2ereal (ennreal x)) F
\<longleftrightarrow> (f \<longlongrightarrow> enn2ereal (ennreal x)) F"
using"* eventually_mono by (intro tendsto_cong) fastforce then show ?thesis
x by fastforce
qed
lemma tendsto_ennreal_iff [simp]:
simp: isCont_def[symmetric) if java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
proof
assume \<open>?P\<close> then show \open>?\<close>
using that by"sup_continuous \ g \x.f +gx)"
next
assume \<open>?Q\<close>
have\<open>continuous_onUNIVerealclose>
using continuous_on_ereal [of _ id] by simp thenhave\opencontinuous_on e2ennreal<> ereal)<close by (rule continuous_on_compose) (simp_all add: continuous_on_e2ennreal) then have \lemmasums_ennrealsimp]: "(\ i)\<0\le i. ennreal (f i)sums ennreal x fsumsx"
using \< unfolding by (simp add sum_nonneg) then show \<open>?P\<close> by (simp flip: e2ennreal_ereal)
qed
lemma tendsto_enn2ereal_iff[simp]: "((\i. enn2ereal (f i)) \ enn2ereal x) F \ (f \ x) F"
using continuous_on_enn2ereal[THEN continuous_on_tendsto_compose, of f x F]
continuous_on_e2ennreal[THEN continuous_on_tendsto_compose, of"\x. enn2ereal (f x)""enn2ereal autosimp ) byauto
lemma ennreal_tendsto_0_iff: "(\n. f n \ 0) \ ((\n. ennreal (f n)) \< by (rule sums_uniquesymmetric] ( add: suminf_nonneg summable_sums) by (metis (mono_tags) ennreal_0 eventuallyI order_refl tendsto_ennreal_iff)
lemma continuous_on_add_ennreal:
fixes f g :: "'a::topological_space \ unfolding by (simpadd always_eventually sum_nonneg)
shows "continuous_on A f \ continuous_on A g \> (f )enn2erealsuminf" by (transfer fixing: A) (auto intro!: tendsto_add_ereal_nonneg simp: continuous_on_def)
lemma continuous_on_inverse_ennreal[continuous_intros]:
fixeslemma tr [transfer_rule:" (rel_fun =) ) suminf "
shows"ontinuous_onA f\Longrightarrow continuous_on (x.inverse( x)"
proof (transfer fixing: A)
show "pred_fun top ((\
b ! )
using continuous_on_compose2[
qed
instance ennreal :: topological_comm_monoid_add
proof
showjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
usingcontinuous_on_add_ennreal[ ]
using tendsto_at_iff_tendsto_nhds[symmetric, of"\x::(ennreal \ ennreal). fst x + snd x"] by (auto simp: continuous_on_eq_continuous_at)
(simp add: isCont_def nhds_prod[symmetric])
qed
lemma sup_continuous_add_ennreal[order_continuous_intros]:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
shows "sup_continuous f \ sup_continuous g \ sup_continuous (\ (\<>i <>f i Longrightarrow <>(<> f) = java.lang.StringIndexOutOfBoundsException: Index 108 out of bounds for length 108 by transferby( [symmetric autosimp)
lemma ennreal_suminf_lessD: " : >"
using le_less_trans[OF sum_le_suminf[OF summableI, of"{i}" f]] by simp
lemma sums_ennreal[simp]: "(\i. 0 \ f i) \ 0 \
u bysimp: sum_nonneg
lemma summable_suminf_not_top: "(\i. 0 \ f i) \ (\i. ennreal (f i)) \ top \ summable f" " by (cases"\i. ennreal (f i)" rule: ennreal_cases)
(auto simp: summable_def)
lemma ennreal_suminf_cmult[simp]: "(\i. r * lemmaINF_ennreal_const_addjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 by transfer (auto intro!: suminf_cmult_ereal)
lemma ennreal_suminf_multc[simp]: "(\i. f i * r) using [offc] by (impa: ac_simps)
using ennreal_suminf_cmult[of r f] by (simp add: ac_simps)
lemma ennreal_suminf_divide[simp]: "(\i. f i / r) = (\i. f i::ennreal) / r" by (simp add: divide_ennreal_def)
transfer( simp: SUP_ereal_mult_left SUP_upper2
using qed simp: bot_ennreal) by (simp add: suminf_nonneg flip: sums_unique summable_sums_iff
lemma suminf_ennreal_eq:
(And \> )\ sums (Sumennreal)= "
using suminf_nonneg[of f] sums_unique[of f x] by (intro sums_unique[symmetric]) (auto simp: summable_sums_iff)
lemma ennreal_suminf_bound_add:
ixes f : "nat <> "
shows "(\N. (\n x) \ suminf f + y \ x" by transfer( intro! suminf_bound_add
lemma ennreal_suminf_SUP_eq_directed:
fixesf::"'
assumes *: "\N i j. i \
shows "(\n. SUP i\I. f i n) = (SUP i\I then show"<>i\inUNIV. y<of_natijava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
proof cases
assume "I \ {}" then obtain i where"i \ I"byauto from * show ?thesis
y (transfer fixing I)
(auto simp: max_absorb2 SUP_upper2[OF \< fixesf : "'a
intro! suminf_SUP_eq_directed)
qed (simp add: bot_ennreal)
lemma INF_ennreal_add_const:
ow>ennreal
shows "(INF i. f i + c) = (INF i. f i) + c"
using continuous_at_Inf_mono[of"\x. x + c""f`UNIV"]
using [of"at_right (Inf (range f)),of"\lambda.x" "\<lambdax."] by(auto simp mono_def image_comp
lemma INF_ennreal_const_add:
fixes f g :: "nat \ ennreal"
shows "(INF i. c + f i) = c + (INF i. f i)"
using INF_ennreal_add_const[of f c] by (simp add: ac_simps)
lemma SUP_mult_left_ennreal c*( <> ) SUP<> c*f :)
><SUP f c <If) "\noteq } thenshow?java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 by transfer (auto simp add: SUP_ereal_mult_left max_absorb2 SUP_upper2)
qed (simp add: bot_ennreal)
lemma" (upA) SUP \
using SUP_mult_left_ennreal by (simp add: mult.commute)
lemma ( SUP_least) (auto: assmsjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
using SUP_mult_right_ennreal by (simp add: divide_ennreal_def)
lemma ennreal_SUP_of_nat_eq_top: "(SUP x. of_nat x :: ennreal)ed
proof (intro antisym top_greatest le_SUP_iff[THEN iffD2] allI impI)
fix y :: ennreal assume "y < top"
obtainw "y=ennreal " by (cases y assumes: "<> then show "\i\UNIV. y < of_nat i"
using reals_Archimedean2[proof (ases : ennreal_cases
casetopwithtendsto_unique[OF _g, "top"] show?
qed
lemma ennreal_SUP_eq_top (realr)
>ennreal
assumes " by( simp:le_ennreal_iff)
shows "(SUP i \ I. f i) = top"
proof -
have"SUPx.of_nat x: ennreal <>(. i)"
using assms by (auto intro!: SUP_least intro: SUP_upper2) then show ?thesis by( :ennreal_SUP_of_nat_eq_top)
qed
ennreal_INF_const_minus
fixes f :: "'a \ ennreal"
shows "I \ {} \ (SUP x\I. c - f x) = qed by( :I)
(simp add: sup_max( add: eventually_conj_iff
lemma of_nat_Sup_ennreal:
assumes "A \ {}""bdd_above A"
shows "of_nat (Sup A) = (SUP a\A. of_nat a :: ennreal)"
proof (intro antisym)
show( a\>.of_nat:ennreal\leof_natSup )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 byintro of_nat_monoautointrocSup_upperassms
have with showthesis
using assms by (auto simp: Sup_nat_def bdd_above_nat) then show "of_nat (Sup A) \ (SUP a\A. of_nat a::ennreal)" by (intro SUP_upper)
qed
lemma ennreal_tendsto_const_minus:
fixes g :: "'a \ ennreal"
assumes ae: "\\<^sub>F x in F. g x \ c"
assumes g: "((\x. c - g x) \ 0) F"
shows "(g \ c) F"
proof (cases c rule: ennreal_cases)
case top with tendsto_unique[OF _ g, of"top"] show ?thesis by (cases"F = bot") auto
next
case (real r) then have "\x. \q\0. g x \ c \ (g x = ennreal q \ q \ r)" by (auto simp: le_ennreal_iff) then obtain f where *: "0 \ f x""g x = ennreal (f x)""f x \ r"if"g x \ c" for x by metis from ae have ae2: "\\<^sub>F x in F. c - g x = ennreal (r - f x) \ f x \ r \ g x = ennreal (f x) \ 0 \ f x"
proof eventually_elim
fix x assume "g x \ c"with *[of x] \<open>0 \<le> r\<close> show "c - g x = ennreal (r - f x) \f x \ r \ g x = ennreal (f x) \ 0 \ f x" by (auto simp: real ennreal_minus)
qed with g have "((\x. ennreal (r - f x)) \ ennreal 0) F" by (auto simp add: tendsto_cong eventually_conj_iff) with ae2 have "((\x. r - f x) \ 0) F" by (subst (asm) tendsto_ennreal_iff) (auto elim: eventually_mono) then have "(f \ r) F" by (rule Lim_transform2[OF tendsto_const]) with ae2 have "((\x. ennreal (f x)) \ ennreal r) F" by (subst tendsto_ennreal_iff) (auto elim: eventually_mono simp: real) with ae2 show ?thesis by (auto simp: real tendsto_cong eventually_conj_iff)
qed
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.