@@ -440,10 +440,73 @@ Qed.
440
440
HB.instance Definition _ :=
441
441
isMeasurableFun.Build _ _ _ _ bool_to_real measurable_bool_to_real.
442
442
443
+ HB.instance Definition _ := MeasurableFun.on bool_to_real.
444
+
443
445
Definition btr : {RV P >-> R} := bool_to_real.
444
446
445
447
End bool_to_real.
446
448
449
+ Section independent_RVs_btr.
450
+ Context {R : realType} d (T : measurableType d).
451
+ Variable P : probability T R.
452
+ Local Open Scope ring_scope.
453
+
454
+ Lemma independent_RVs_btr
455
+ (I : set nat) (X : nat -> {mfun T >-> bool}) :
456
+ independent_RVs P I X -> independent_RVs P I (fun i : nat => btr P (X i)).
457
+ Proof .
458
+ move=> PIX; split.
459
+ - move=> i Ii.
460
+ rewrite /g_sigma_algebra_preimage/= /preimage_set_system/= => _ [A mA <-].
461
+ by rewrite setTI; exact/measurable_sfunP.
462
+ - move=> J JI E/= JEfX; apply PIX => // j jJ.
463
+ have := JEfX _ jJ; rewrite !inE.
464
+ rewrite /g_sigma_algebra_preimage /preimage_set_system/= => -[A mA <-].
465
+ by exists ((fun x => x%:R) @^-1` A).
466
+ Qed .
467
+
468
+ End independent_RVs_btr.
469
+
470
+ Section mfunM.
471
+ Context {d} (T : measurableType d) {R : realType}.
472
+
473
+ HB.instance Definition _ (f g : {mfun T >-> R}) :=
474
+ @isMeasurableFun.Build d _ _ _ (f \* g)%R (measurable_funM (@measurable_funP _ _ _ _ f) ((@measurable_funP _ _ _ _ g))).
475
+
476
+ End mfunM.
477
+
478
+ Section move.
479
+
480
+ Lemma sumr_map {R : realType} U d (T : measurableType d) (l : seq U) Q
481
+ (f : U -> {mfun T >-> R}) (x : T) :
482
+ (\sum_(i <- l | Q i) f i) x = \sum_(i <- l | Q i) f i x.
483
+ Proof . by elim/big_ind2 : _ => //= _ g _ h <- <-. Qed .
484
+
485
+ Lemma prodr_map {R : realType} U d (T : measurableType d) (l : seq U) Q
486
+ (f : U -> {mfun T >-> R}) (x : T) :
487
+ (\prod_(i <- l | Q i) f i) x = \prod_(i <- l | Q i) f i x.
488
+ Proof . by elim/big_ind2 : _ => //= _ h _ g <- <-. Qed .
489
+
490
+ Definition sumrfct {R : realType} d {T : measurableType d} (s : seq {mfun T >-> R}) : T -> R :=
491
+ fun x => \sum_(f <- s) f x.
492
+
493
+ Lemma measurable_sumrfct {R : realType} d {T : measurableType d} (s : seq {mfun T >-> R}) :
494
+ measurable_fun setT (sumrfct s).
495
+ Proof .
496
+ apply/measurable_EFinP => /=; apply/measurableT_comp => //.
497
+ exact: measurable_sum.
498
+ Qed .
499
+
500
+ HB.instance Definition _ {R : realType} d {T : measurableType d} (s : seq {mfun T >-> R}) :=
501
+ isMeasurableFun.Build _ _ _ _ (sumrfct s) (measurable_sumrfct s).
502
+
503
+ Lemma sum_mfunE {R : realType} d {T : measurableType d} (s : seq {mfun T >-> R}) x :
504
+ ((\sum_(f <- s) f) x = sumrfct s x)%R.
505
+ Proof . by rewrite/sumrfct; elim/big_ind2 : _ => //= u a v b <- <-. Qed .
506
+
507
+
508
+ End move.
509
+
447
510
Section bernoulli.
448
511
449
512
Local Open Scope ereal_scope.
@@ -549,32 +612,6 @@ transitivity (\sum_(i < n) p%:E).
549
612
by rewrite sumEFin big_const_ord iter_addr addr0 mulrC mulr_natr.
550
613
Qed .
551
614
552
- Definition sumrfct (s : seq {mfun T >-> R}) := (fun x => \sum_(f <- s) f x)%R.
553
-
554
- Lemma measurable_sumrfct s : measurable_fun setT (sumrfct s).
555
- Proof .
556
- rewrite /sumrfct.
557
- pose n := size s.
558
- apply/measurable_EFinP => /=.
559
- have -> : (EFin \o (fun x : T => (\sum_(f <- s) f x)%R)) = (fun x : T => \sum_(i < n) (s`_i x)%:E)%R.
560
- apply: funext => x /=.
561
- rewrite sumEFin.
562
- congr (_%:E).
563
- rewrite big_tnth//.
564
- apply: eq_bigr => i _ /=.
565
- by rewrite (tnth_nth 0%R).
566
- apply: emeasurable_sum => i.
567
- by apply/measurable_EFinP.
568
- Qed .
569
-
570
- HB.about isMeasurableFun.Build.
571
- HB.instance Definition _ s :=
572
- isMeasurableFun.Build _ _ _ _ (sumrfct s) (measurable_sumrfct s).
573
-
574
- Lemma sumrfctE' (s : seq {mfun T >-> R}) x :
575
- ((\sum_(f <- s) f) x = sumrfct s x)%R.
576
- Proof . by rewrite/sumrfct; elim/big_ind2 : _ => //= u a v b <- <-. Qed .
577
-
578
615
Lemma bernoulli_trial_ge0 (X : {dRV P >-> bool}^nat) n : is_bernoulli_trial n X ->
579
616
(forall t, 0 <= bernoulli_trial n X t)%R.
580
617
Proof .
@@ -583,55 +620,23 @@ rewrite /bernoulli_trial.
583
620
have -> : (\sum_(i < n) btr P (X i))%R = (\sum_(s <- map (btr P \o X) (iota 0 n)) s)%R.
584
621
by rewrite big_map -[in RHS](subn0 n) big_mkord.
585
622
have -> : (\sum_(s <- [seq (btr P \o X) i | i <- iota 0 n]) s)%R t = (\sum_(s <- [seq (btr P \o X) i | i <- iota 0 n]) s t)%R.
586
- by rewrite sumrfctE' .
623
+ by rewrite sum_mfunE .
587
624
rewrite big_map.
588
625
by apply: sumr_ge0 => i _/=; rewrite /bool_to_real/= ler0n.
589
626
Qed .
590
627
591
628
(* this seems to be provable like in https://www.cs.purdue.edu/homes/spa/courses/pg17/mu-book.pdf page 65 *)
592
629
Axiom taylor_ln_le : forall (delta : R), ((1 + delta) * ln (1 + delta) >= delta + delta^+2 / 3)%R.
593
630
594
- Lemma expR_prod d' {U : measurableType d'} (X : seq {mfun U >-> R}) (f : {mfun U >-> R} -> R) :
595
- (\prod_(x <- X) expR (f x) = expR (\sum_(x <- X) f x))%R.
596
- Proof .
597
- elim: X => [|h t ih]; first by rewrite !big_nil expR0.
598
- by rewrite !big_cons ih expRD.
599
- Qed .
600
-
601
- Lemma expR_sum U l Q (f : U -> R) : (expR (\sum_(i <- l | Q i) f i) = \prod_(i <- l | Q i) expR (f i))%R.
602
- Proof .
603
- elim: l; first by rewrite !big_nil expR0.
604
- move=> a l ih.
605
- rewrite !big_cons.
606
- case: ifP => //= aQ.
607
- by rewrite expRD ih.
608
- Qed .
609
-
610
- Lemma sumr_map U d' (V : measurableType d') (l : seq U) Q (f : U -> {mfun V >-> R}) (x : V) :
611
- ((\sum_(i <- l | Q i) f i) x = \sum_(i <- l | Q i) f i x)%R.
612
- Proof .
613
- elim: l; first by rewrite !big_nil.
614
- move=> a l ih.
615
- rewrite !big_cons.
616
- case: ifP => aQ//=.
617
- by rewrite -ih.
618
- Qed .
619
-
620
- Lemma prodr_map U d' (V : measurableType d') (l : seq U) Q (f : U -> {mfun V >-> R}) (x : V) :
621
- ((\prod_(i <- l | Q i) f i) x = \prod_(i <- l | Q i) f i x)%R.
622
- Proof .
623
- elim: l; first by rewrite !big_nil.
624
- move=> a l ih.
625
- rewrite !big_cons.
626
- case: ifP => aQ//=.
627
- by rewrite -ih.
628
- Qed .
629
-
630
631
Lemma independent_mmt_gen_fun (X : {dRV P >-> bool}^nat) n t :
631
632
let mmtX (i : nat) : {RV P >-> R} := expR \o t \o* (btr P (X i)) in
632
633
independent_RVs P `I_n X -> independent_RVs P `I_n mmtX.
633
634
Proof .
634
- Admitted . (* from Reynald's PR, independent_RVs2_comp, "when applying a function, the sigma algebra only gets smaller" *)
635
+ rewrite /= => PnX.
636
+ apply: independent_RVs_comp => //.
637
+ apply: independent_RVs_scale => //=.
638
+ exact: independent_RVs_btr.
639
+ Qed .
635
640
636
641
Lemma expectation_prod_independent_RVs (X : {RV P >-> R}^nat) n :
637
642
independent_RVs P `I_n X ->
@@ -695,9 +700,6 @@ rewrite -EFinD; congr (_ + _)%:E; rewrite mulrC//.
695
700
by rewrite expR0 mulr1.
696
701
Qed .
697
702
698
- Lemma iter_mule (n : nat) (x y : \bar R) : iter n ( *%E x) y = (x ^+ n * y)%E.
699
- Proof . by elim: n => [|n ih]; rewrite ?mul1e// [LHS]/= ih expeS muleA. Qed .
700
-
701
703
Lemma binomial_mmt_gen_fun (X_ : {dRV P >-> bool}^nat) n (t : R) :
702
704
is_bernoulli_trial n X_ ->
703
705
let X := bernoulli_trial n X_ : {RV P >-> R} in
@@ -712,16 +714,6 @@ rewrite big_const iter_mule mule1 cardT size_enum_ord -EFin_expe powR_mulrn//.
712
714
by rewrite addr_ge0// ?subr_ge0// mulr_ge0// expR_ge0.
713
715
Qed .
714
716
715
- (* TODO: add to the PR by reynald that adds the \prod notation to master *)
716
- Lemma prod_EFin U l Q (f : U -> R) : \prod_(i <- l | Q i) ((f i)%:E) = (\prod_(i <- l | Q i) f i)%:E.
717
- Proof .
718
- elim: l; first by rewrite !big_nil.
719
- move=> a l ih.
720
- rewrite !big_cons.
721
- case: ifP => //= aQ.
722
- by rewrite EFinM ih.
723
- Qed .
724
-
725
717
Lemma mmt_gen_fun_expectation (X_ : {dRV P >-> bool}^nat) (t : R) n :
726
718
(0 <= t)%R ->
727
719
is_bernoulli_trial n X_ ->
@@ -803,12 +795,6 @@ rewrite le_eqVlt; apply/orP; left; apply/eqP; congr (expR _)%:E.
803
795
by rewrite opprD addrA subrr add0r mulrC mulrN mulNr mulrA.
804
796
Qed .
805
797
806
- (* TODO: move *)
807
- Lemma ln_div : {in Num.pos &, {morph ln (R:=R) : x y / (x / y)%R >-> (x - y)%R}}.
808
- Proof .
809
- by move=> x y; rewrite !posrE => x0 y0; rewrite lnM ?posrE ?invr_gt0// lnV ?posrE.
810
- Qed .
811
-
812
798
Lemma norm_expR : normr \o expR = (expR : R -> R).
813
799
Proof . by apply/funext => x /=; rewrite ger0_norm ?expR_ge0. Qed .
814
800
@@ -910,14 +896,6 @@ rewrite -mulrN -mulrA [in leRHS]mulrC expRM ge0_ler_powR// ?nnegrE.
910
896
Qed .
911
897
Local Open Scope ereal_scope.
912
898
913
- Lemma measurable_fun_le D (f g : T -> R) : d.-measurable D -> measurable_fun D f ->
914
- measurable_fun D g -> measurable (D `&` [set x | f x <= g x]%R).
915
- Proof .
916
- move=> mD mf mg.
917
- under eq_set => x do rewrite -lee_fin.
918
- apply: emeasurable_fun_le => //; apply: measurableT_comp => //.
919
- Qed .
920
-
921
899
(* Rajani -> corollary 2.7 / mu-book -> corollary 4.7 *)
922
900
Corollary bernoulli_trial_inequality4 (X : {dRV P >-> bool}^nat) (delta : R) n :
923
901
is_bernoulli_trial n X -> (0 < delta < 1)%R ->
0 commit comments