@@ -2176,7 +2176,6 @@ by apply/seteqP; split => /= x /=; rewrite in_itv/= andbT.
21762176Qed .
21772177
21782178(**md lemmas about the function $x \mapsto (1 - x)^n$ *)
2179- (* TODO: move? *)
21802179Section about_onemXn.
21812180Context {R : realType}.
21822181Implicit Types x y : R.
@@ -2315,9 +2314,11 @@ rewrite -restrict_EFin; apply/integrable_restrict => //=.
23152314by rewrite setTI; exact: integrable_XMonemX.
23162315Qed .
23172316
2317+ Local Open Scope ereal_scope.
2318+
23182319Lemma integral_XMonemX_restrict U a b :
2319- ( \int[mu]_(x in U) (XMonemX a b \_ `[0, 1] x)%:E =
2320- \int[mu]_(x in U `&` `[0%R, 1%R]) (XMonemX a b x)%:E)% E.
2320+ \int[mu]_(x in U) (XMonemX a b \_ `[0, 1] x)%:E =
2321+ \int[mu]_(x in U `&` `[0%R, 1%R]) (XMonemX a b x)%:E.
23212322Proof .
23222323rewrite [RHS]integral_mkcondr /=; apply: eq_integral => x xU /=.
23232324by rewrite restrict_EFin.
@@ -2333,8 +2334,10 @@ Local Notation XMonemX := (@XMonemX R).
23332334
23342335Definition beta_fun a b : R := \int[mu]_x (XMonemX a.-1 b.-1 \_`[0,1]) x.
23352336
2337+ Local Open Scope ereal_scope.
2338+
23362339Lemma EFin_beta_fun a b :
2337- (( beta_fun a b)%:E = \int[mu]_x (XMonemX a.-1 b.-1 \_`[0,1] x)%:E)% E.
2340+ (beta_fun a b)%:E = \int[mu]_x (XMonemX a.-1 b.-1 \_`[0,1] x)%:E.
23382341Proof .
23392342rewrite fineK//; apply: integrable_fin_num => //=.
23402343under eq_fun.
@@ -2344,10 +2347,12 @@ under eq_fun.
23442347by apply/integrable_restrict => //=; rewrite setTI; exact: integrable_XMonemX.
23452348Qed .
23462349
2350+ Local Close Scope ereal_scope.
2351+
23472352Lemma beta_fun_sym a b : beta_fun a b = beta_fun b a.
23482353Proof .
23492354rewrite -[LHS]Rintegral_mkcond Rintegration_by_substitution_onem//=.
2350- - rewrite subrr -[RHS]Rintegral_mkcond; apply: eq_Rintegral => x x01.
2355+ - rewrite onem1 -[RHS]Rintegral_mkcond; apply: eq_Rintegral => x x01.
23512356 by rewrite XMonemXC.
23522357- by rewrite ltr01 lexx.
23532358- exact: within_continuous_XMonemX.
@@ -2368,17 +2373,17 @@ rewrite Rintegral_cst//= mul1r lebesgue_measure_itv/= lte_fin ltr01.
23682373by rewrite oppr0 adde0.
23692374Qed .
23702375
2371- Lemma beta_fun1S b : beta_fun 1 b.+1 = b.+1%:R^-1.
2376+ Lemma beta_fun1Sn b : beta_fun 1 b.+1 = b.+1%:R^-1.
23722377Proof .
23732378rewrite /beta_fun -Rintegral_mkcond.
23742379under eq_Rintegral do rewrite XMonemX0n.
23752380by rewrite Rintegral_onemXn.
23762381Qed .
23772382
23782383Lemma beta_fun11 : beta_fun 1 1 = 1.
2379- Proof . by rewrite (beta_fun1S O) invr1. Qed .
2384+ Proof . by rewrite (beta_fun1Sn O) invr1. Qed .
23802385
2381- Lemma beta_funSSS a b :
2386+ Lemma beta_funSSnSm a b :
23822387 beta_fun a.+2 b.+1 = a.+1%:R / b.+1%:R * beta_fun a.+1 b.+2.
23832388Proof .
23842389rewrite -[LHS]Rintegral_mkcond.
@@ -2408,12 +2413,12 @@ transitivity (a.+1%:R / b.+1%:R * \int[mu]_(x in `[0, 1]) XMonemX a b.+1 x).
24082413by rewrite Rintegral_mkcond.
24092414Qed .
24102415
2411- Lemma beta_funSS a b : beta_fun a.+1 b.+1 =
2416+ Lemma beta_funSnSm a b : beta_fun a.+1 b.+1 =
24122417 a`!%:R / (\prod_(b.+1 <= i < (a + b).+1) i)%:R * beta_fun 1 (a + b).+1.
24132418Proof .
24142419elim: a b => [b|a ih b].
24152420 by rewrite fact0 mul1r add0n /index_iota subnn big_nil invr1 mul1r.
2416- rewrite beta_funSSS [in LHS]ih !mulrA; congr *%R; last by rewrite addSnnS.
2421+ rewrite beta_funSSnSm [in LHS]ih !mulrA; congr *%R; last by rewrite addSnnS.
24172422rewrite -mulrA mulrCA 2!mulrA.
24182423rewrite -natrM (mulnC a`!) -factS -mulrA -invfM; congr (_ / _).
24192424rewrite big_add1 [in RHS]big_nat_recl/=; last by rewrite addSn ltnS leq_addl.
@@ -2423,7 +2428,7 @@ Qed.
24232428Lemma beta_fun_fact a b :
24242429 beta_fun a.+1 b.+1 = (a`! * b`!)%:R / (a + b).+1`!%:R.
24252430Proof .
2426- rewrite beta_funSS beta_fun1S natrM -!mulrA; congr *%R.
2431+ rewrite beta_funSnSm beta_fun1Sn natrM -!mulrA; congr *%R.
24272432(* (b+1 b+2 ... b+1 b+a)^-1 / (a+b+1) = b! / (a+b+1)! *)
24282433rewrite factS [in RHS]mulnC natrM invfM mulrA; congr (_ / _).
24292434rewrite -(@invrK _ b`!%:R) -invfM; congr (_^-1).
@@ -2502,23 +2507,23 @@ Qed.
25022507
25032508Local Notation mu := lebesgue_measure.
25042509
2505- Let int_beta_pdf01 : (\int[mu]_(x in `[0%R, 1%R]) (beta_pdf x)%:E =
2506- \int[mu]_x (beta_pdf x)%:E :> \bar R)%E.
2510+ Local Open Scope ereal_scope.
2511+
2512+ Let int_beta_pdf01 : \int[mu]_(x in `[0%R, 1%R]) (beta_pdf x)%:E =
2513+ \int[mu]_x (beta_pdf x)%:E :> \bar R.
25072514Proof .
25082515rewrite integral_mkcond/=; apply: eq_integral => /=x _.
25092516by rewrite /beta_pdf/= !patchE; case: ifPn => [->//|_]; rewrite mul0r.
25102517Qed .
25112518
2519+ Local Close Scope ereal_scope.
2520+
25122521Lemma integrable_beta_pdf : mu.-integrable [set: _] (EFin \o beta_pdf).
25132522Proof .
25142523apply/integrableP; split.
25152524 by apply/measurable_EFinP; exact: measurable_beta_pdf.
2516- under eq_integral.
2517- move=> /= x _.
2518- rewrite ger0_norm//; last by rewrite beta_pdf_ge0.
2519- over.
2520- simpl.
2521- rewrite -int_beta_pdf01.
2525+ under eq_integral=> /= x _ do rewrite ger0_norm ?beta_pdf_ge0//.
2526+ rewrite /= -int_beta_pdf01.
25222527apply: (@le_lt_trans _ _ (\int[mu]_(x in `[0%R, 1%R]) (beta_fun a b)^-1%:E)%E).
25232528 apply: ge0_le_integral => //=.
25242529 - by move=> x _; rewrite lee_fin beta_pdf_ge0.
@@ -2547,14 +2552,6 @@ Unshelve. all: by end_near. Qed.
25472552
25482553End beta_pdf.
25492554
2550- (* TODO: move? *)
2551- Lemma invr_nonneg_proof (R : numDomainType) (p : {nonneg R}) :
2552- (0 <= (p%:num)^-1)%R.
2553- Proof . by rewrite invr_ge0. Qed .
2554-
2555- Definition invr_nonneg (R : numDomainType) (p : {nonneg R}) :=
2556- NngNum (invr_nonneg_proof p).
2557-
25582555Section beta.
25592556Local Open Scope ring_scope.
25602557Context {R : realType}.
@@ -2611,7 +2608,7 @@ HB.instance Definition _ := isMeasure.Build _ _ _ beta_num
26112608 beta_num0 beta_num_ge0 beta_num_sigma_additive.
26122609
26132610Definition beta_prob :=
2614- @ mscale _ _ _ (invr_nonneg (NngNum (beta_fun_ge0 a b))) beta_num.
2611+ mscale ( (NngNum (beta_fun_ge0 a b))%:num^-1)%:nng beta_num.
26152612
26162613HB.instance Definition _ := Measure.on beta_prob.
26172614
@@ -2686,20 +2683,24 @@ rewrite /XMonemX !expr0 mul1r.
26862683by rewrite /uniform_pdf x10 subr0 invr1.
26872684Qed .
26882685
2686+ Local Open Scope ereal_scope.
2687+
26892688Lemma integral_beta_prob_bernoulli_prob_lty {R : realType} a b (f : R -> R) U :
26902689 measurable_fun setT f ->
26912690 (forall x, x \in `[0, 1]%R -> 0 <= f x <= 1)%R ->
2692- ( \int[beta_prob a b]_x `|bernoulli_prob (f x) U| < +oo :> \bar R)%E .
2691+ \int[beta_prob a b]_x `|bernoulli_prob (f x) U| < +oo.
26932692Proof .
26942693move=> mf /= f01.
2695- apply: (@le_lt_trans _ _ (\int[beta_prob a b]_x cst 1 x))%E .
2694+ apply: (@le_lt_trans _ _ (\int[beta_prob a b]_x cst 1 x)).
26962695 apply: ge0_le_integral => //=.
26972696 apply: measurableT_comp => //=.
26982697 by apply: (measurableT_comp (measurable_bernoulli_prob2 _)).
26992698 by move=> x _; rewrite gee0_abs// probability_le1.
27002699by rewrite integral_cst//= mul1e -ge0_fin_numE// beta_prob_fin_num.
27012700Qed .
27022701
2702+ Local Close Scope ereal_scope.
2703+
27032704Lemma integral_beta_prob_bernoulli_prob_onemX_lty {R : realType} n a b U :
27042705 (\int[beta_prob a b]_x `|bernoulli_prob (`1-x ^+ n) U| < +oo :> \bar R)%E.
27052706Proof .
0 commit comments