22From mathcomp Require Import all_ssreflect interval_inference.
33From mathcomp Require Import ssralg poly ssrnum ssrint interval finmap.
44From mathcomp Require Import mathcomp_extra boolp classical_sets functions.
5- From mathcomp Require Import cardinality fsbigop.
5+ From mathcomp Require Import cardinality fsbigop interval_inference .
66From HB Require Import structures.
77From mathcomp Require Import exp numfun lebesgue_measure lebesgue_integral.
88From mathcomp Require Import reals ereal topology normedtype sequences.
@@ -214,7 +214,7 @@ Section mutual_independence_properties.
214214Context {R : realType} d {T : measurableType d} (P : probability T R).
215215Local Open Scope ereal_scope.
216216
217- (**md see Achim Klenke's Probability Thery , Ch.2, sec.2.1, thm.2.13(i) *)
217+ (**md see Achim Klenke's Probability Theory , Ch.2, sec.2.1, thm.2.13(i) *)
218218Lemma mutual_independence_fset {I0 : choiceType} (I : {fset I0})
219219 (F : I0 -> set_system T) :
220220 (forall i, i \in I -> F i `<=` measurable /\ (F i) [set: T]) ->
@@ -238,7 +238,7 @@ rewrite -big_seq => ->.
238238by rewrite !big_seq; apply: eq_bigr => i iJ; rewrite /E' iJ.
239239Qed .
240240
241- (**md see Achim Klenke's Probability Thery , Ch.2, sec.2.1, thm.2.13(ii) *)
241+ (**md see Achim Klenke's Probability Theory , Ch.2, sec.2.1, thm.2.13(ii) *)
242242Lemma mutual_independence_finiteS {I0 : choiceType} (I : set I0)
243243 (F : I0 -> set_system T) :
244244 mutual_independence P I F <->
@@ -256,7 +256,7 @@ split=> [i Ii|J JI E EF].
256256by have [_] := indeF _ JI; exact.
257257Qed .
258258
259- (**md see Achim Klenke's Probability Thery , Ch.2, sec.2.1, thm.2.13(iii) *)
259+ (**md see Achim Klenke's Probability Theory , Ch.2, sec.2.1, thm.2.13(iii) *)
260260Theorem mutual_independence_finite_g_sigma {I0 : choiceType} (I : set I0)
261261 (F : I0 -> set_system T) :
262262 (forall i, i \in I -> setI_closed (F i `|` [set set0])) ->
@@ -438,7 +438,7 @@ apply/negP/set0P; exists j; split => //.
438438exact/set_mem.
439439Qed .
440440
441- (**md see Achim Klenke's Probability Thery , Ch.2, sec.2.1, thm.2.13(iv) *)
441+ (**md see Achim Klenke's Probability Theory , Ch.2, sec.2.1, thm.2.13(iv) *)
442442Lemma mutual_independence_bigcup (K0 I0 : pointedType) (K : {fset K0})
443443 (I_ : K0 -> set I0) (I : set I0) (F : I0 -> set_system T) :
444444 trivIset [set` K] (fun i => I_ i) ->
@@ -483,36 +483,28 @@ Qed.
483483
484484End mutual_independence_properties.
485485
486- Section g_sigma_algebra_mapping_lemmas .
486+ Section g_sigma_algebra_preimage_lemmas .
487487Context d {T : measurableType d} {R : realType}.
488488
489- Lemma g_sigma_algebra_mapping_comp (X : {mfun T >-> R}) (f : R -> R) :
489+ Lemma g_sigma_algebra_preimage_comp (X : {mfun T >-> R}) (f : R -> R) :
490490 measurable_fun setT f ->
491- g_sigma_algebra_mapping (f \o X)%R `<=` g_sigma_algebra_mapping X.
492- Proof .
493- move=> mf.
494- rewrite /g_sigma_algebra_mapping.
495- rewrite preimage_set_system_comp.
496- move=> A /= [] B [C mC <-{B}] <-{A}.
497- red.
498- exists ([set: R] `&` f @^-1` C) => //.
499- by apply: mf.
500- Qed .
491+ g_sigma_algebra_preimage (f \o X)%R `<=` g_sigma_algebra_preimage X.
492+ Proof . exact: preimage_set_system_compS. Qed .
501493
502- Lemma g_sigma_algebra_mapping_funrpos (X : {mfun T >-> R}) :
503- g_sigma_algebra_mapping X^\+%R `<=` d.-measurable.
494+ Lemma g_sigma_algebra_preimage_funrpos (X : {mfun T >-> R}) :
495+ g_sigma_algebra_preimage X^\+%R `<=` d.-measurable.
504496Proof .
505497by move=> A/= -[B mB] <-; have := measurable_funrpos (measurable_funP X); exact.
506498Qed .
507499
508- Lemma g_sigma_algebra_mapping_funrneg (X : {mfun T >-> R}) :
509- g_sigma_algebra_mapping X^\-%R `<=` d.-measurable.
500+ Lemma g_sigma_algebra_preimage_funrneg (X : {mfun T >-> R}) :
501+ g_sigma_algebra_preimage X^\-%R `<=` d.-measurable.
510502Proof .
511503by move=> A/= -[B mB] <-; have := measurable_funrneg (measurable_funP X); exact.
512504Qed .
513505
514- End g_sigma_algebra_mapping_lemmas .
515- Arguments g_sigma_algebra_mapping_comp {d T R X} f.
506+ End g_sigma_algebra_preimage_lemmas .
507+ Arguments g_sigma_algebra_preimage_comp {d T R X} f.
516508
517509Section independent_RVs.
518510Context {R : realType} d (T : measurableType d).
@@ -522,7 +514,7 @@ Variable P : probability T R.
522514
523515Definition independent_RVs (I : set I0)
524516 (X : forall i : I0, {mfun T >-> T' i}) : Prop :=
525- mutual_independence P I (fun i => g_sigma_algebra_mapping (X i)).
517+ mutual_independence P I (fun i => g_sigma_algebra_preimage (X i)).
526518
527519End independent_RVs.
528520
@@ -541,7 +533,7 @@ Context {I0 : choiceType}.
541533Context {d' : I0 -> _} (T' : forall i : I0, measurableType (d' i)).
542534Variable P : probability T R.
543535
544- (**md see Achim Klenke's Probability Thery , Ch.2, sec.2.1, thm.2.16 *)
536+ (**md see Achim Klenke's Probability Theory , Ch.2, sec.2.1, thm.2.16 *)
545537Theorem independent_generators (I : set I0) (F : forall i : I0, set_system (T' i))
546538 (X : forall i, {RV P >-> T' i}) :
547539 (forall i, i \in I -> setI_closed (F i)) ->
@@ -559,9 +551,9 @@ have closed_preimage i : I i -> setI_closed (preimage_set_system setT (X i) (F i
559551 - exact/mem_set.
560552 - by rewrite setTI.
561553have gen_preimage i : I i ->
562- <<s preimage_set_system setT (X i) (F i) >> = g_sigma_algebra_mapping (X i).
554+ <<s preimage_set_system setT (X i) (F i) >> = g_sigma_algebra_preimage (X i).
563555 move=> Ii.
564- rewrite /g_sigma_algebra_mapping AsF; last exact/mem_set.
556+ rewrite /g_sigma_algebra_preimage AsF; last exact/mem_set.
565557 by rewrite -g_sigma_preimageE.
566558rewrite /independent_RVs.
567559suff: mutual_independence P I (fun i => <<s preimage_set_system setT (X i) (F i) >>).
@@ -585,78 +577,79 @@ Lemma independent_RVs2_comp (X Y : {RV P >-> R}) (f g : {mfun R >-> R}) :
585577Proof .
586578move=> indeXY; split => /=.
587579- move=> [] _ /= A.
588- + by rewrite /g_sigma_algebra_mapping /= /preimage_set_system/= => -[B mB <-];
580+ + by rewrite /g_sigma_algebra_preimage /= /preimage_set_system/= => -[B mB <-];
589581 exact/measurableT_comp.
590- + by rewrite /g_sigma_algebra_mapping /= /preimage_set_system/= => -[B mB <-];
582+ + by rewrite /g_sigma_algebra_preimage /= /preimage_set_system/= => -[B mB <-];
591583 exact/measurableT_comp.
592584- move=> J _ E JE.
593585 apply indeXY => //= i iJ; have := JE _ iJ.
594586 by move: i {iJ} =>[|]//=; rewrite !inE => Eg;
595- exact: g_sigma_algebra_mapping_comp Eg.
587+ exact: g_sigma_algebra_preimage_comp Eg.
596588Qed .
597589
598590Lemma independent_RVs2_funrposneg (X Y : {RV P >-> R}) :
599591 independent_RVs2 P X Y -> independent_RVs2 P X^\+ Y^\-.
600592Proof .
601593move=> indeXY; split=> [[|]/= _|J J2 E JE].
602- - exact: g_sigma_algebra_mapping_funrneg .
603- - exact: g_sigma_algebra_mapping_funrpos .
594+ - exact: g_sigma_algebra_preimage_funrneg .
595+ - exact: g_sigma_algebra_preimage_funrpos .
604596- apply indeXY => //= i iJ; have := JE _ iJ.
605597 move/J2 : iJ; move: i => [|]// _; rewrite !inE.
606- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
598+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr (- x) 0)%R).
607599 exact: measurable_funrneg.
608- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R) => //.
600+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr x 0)%R) => //.
609601 exact: measurable_funrpos.
610602Qed .
611603
612604Lemma independent_RVs2_funrnegpos (X Y : {RV P >-> R}) :
613605 independent_RVs2 P X Y -> independent_RVs2 P X^\- Y^\+.
614606Proof .
615607move=> indeXY; split=> [/= [|]// _ |J J2 E JE].
616- - exact: g_sigma_algebra_mapping_funrpos .
617- - exact: g_sigma_algebra_mapping_funrneg .
608+ - exact: g_sigma_algebra_preimage_funrpos .
609+ - exact: g_sigma_algebra_preimage_funrneg .
618610- apply indeXY => //= i iJ; have := JE _ iJ.
619611 move/J2 : iJ; move: i => [|]// _; rewrite !inE.
620- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
612+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr x 0)%R).
621613 exact: measurable_funrpos.
622- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
614+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr (- x) 0)%R).
623615 exact: measurable_funrneg.
624616Qed .
625617
626618Lemma independent_RVs2_funrnegneg (X Y : {RV P >-> R}) :
627619 independent_RVs2 P X Y -> independent_RVs2 P X^\- Y^\-.
628620Proof .
629621move=> indeXY; split=> [/= [|]// _ |J J2 E JE].
630- - exact: g_sigma_algebra_mapping_funrneg .
631- - exact: g_sigma_algebra_mapping_funrneg .
622+ - exact: g_sigma_algebra_preimage_funrneg .
623+ - exact: g_sigma_algebra_preimage_funrneg .
632624- apply indeXY => //= i iJ; have := JE _ iJ.
633625 move/J2 : iJ; move: i => [|]// _; rewrite !inE.
634- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
626+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr (- x) 0)%R).
635627 exact: measurable_funrneg.
636- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
628+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr (- x) 0)%R).
637629 exact: measurable_funrneg.
638630Qed .
639631
640632Lemma independent_RVs2_funrpospos (X Y : {RV P >-> R}) :
641633 independent_RVs2 P X Y -> independent_RVs2 P X^\+ Y^\+.
642634Proof .
643635move=> indeXY; split=> [/= [|]//= _ |J J2 E JE].
644- - exact: g_sigma_algebra_mapping_funrpos .
645- - exact: g_sigma_algebra_mapping_funrpos .
636+ - exact: g_sigma_algebra_preimage_funrpos .
637+ - exact: g_sigma_algebra_preimage_funrpos .
646638- apply indeXY => //= i iJ; have := JE _ iJ.
647639 move/J2 : iJ; move: i => [|]// _; rewrite !inE.
648- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
640+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr x 0)%R).
649641 exact: measurable_funrpos.
650- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
642+ + apply: (g_sigma_algebra_preimage_comp (fun x => maxr x 0)%R).
651643 exact: measurable_funrpos.
652644Qed .
653645
654646End independent_RVs_lemmas.
655647
656- Definition preimage_classes I (d : I -> measure_display)
657- (Tn : forall k, semiRingOfSetsType (d k)) (T : Type) (fn : forall k, T -> Tn k) :=
658- <<s \bigcup_k preimage_set_system setT (fn k) measurable >>.
659- Arguments preimage_classes {I} d Tn {T} fn.
648+ Definition preimage_classes I0 (I : set I0) (d_ : forall i : I, measure_display)
649+ (T_ : forall k : I, semiRingOfSetsType (d_ k)) (T : Type )
650+ (f_ : forall k : I, T -> T_ k) :=
651+ <<s \bigcup_(k : I) preimage_set_system setT (f_ k) measurable >>.
652+ Arguments preimage_classes {I0} I d_ T_ {T} f_.
660653
661654Lemma measurable_prod d [T : measurableType d] [R : realType] [D : set T] [I : eqType]
662655 (s : seq I) [h : I -> T -> R] :
@@ -726,7 +719,7 @@ rewrite /independent_RVs2 /independent_RVs /mutual_independence /= => -[_].
726719move/(_ [fset false; true]%fset (@subsetT _ _)
727720 (fun b => if b then Y @^-1` B2 else X @^-1` B1)).
728721rewrite !big_fsetU1 ?inE//= !big_seq_fset1/=.
729- apply => -[|] /= _; rewrite !inE; rewrite /g_sigma_algebra_mapping .
722+ apply => -[|] /= _; rewrite !inE; rewrite /g_sigma_algebra_preimage .
730723by exists B2 => //; rewrite setTI.
731724by exists B1 => //; rewrite setTI.
732725Qed .
@@ -967,23 +960,23 @@ pose AY := dyadic_approx setT (EFin \o Y).
967960pose BX := integer_approx setT (EFin \o X).
968961pose BY := integer_approx setT (EFin \o Y).
969962have mA (Z : {RV P >-> R}) m k : (k < m * 2 ^ m)%N ->
970- g_sigma_algebra_mapping Z (dyadic_approx setT (EFin \o Z) m k).
971- move=> mk; rewrite /g_sigma_algebra_mapping /dyadic_approx mk setTI.
963+ g_sigma_algebra_preimage Z (dyadic_approx setT (EFin \o Z) m k).
964+ move=> mk; rewrite /g_sigma_algebra_preimage /dyadic_approx mk setTI.
972965 rewrite /preimage_set_system/=; exists [set` dyadic_itv R m k] => //.
973966 rewrite setTI/=; apply/seteqP; split => z/=.
974967 by rewrite inE/= => Zz; exists (Z z).
975968 by rewrite inE/= => -[r rmk] [<-].
976969have mB (Z : {RV P >-> R}) k :
977- g_sigma_algebra_mapping Z (integer_approx setT (EFin \o Z) k).
978- rewrite /g_sigma_algebra_mapping /integer_approx setTI /preimage_set_system/=.
970+ g_sigma_algebra_preimage Z (integer_approx setT (EFin \o Z) k).
971+ rewrite /g_sigma_algebra_preimage /integer_approx setTI /preimage_set_system/=.
979972 by exists `[k%:R, +oo[%classic => //; rewrite setTI preimage_itvcy.
980973have m1A (Z : {RV P >-> R}) : forall k, (k < n * 2 ^ n)%N ->
981974 measurable_fun setT
982- (\1_(dyadic_approx setT (EFin \o Z) n k) : g_sigma_algebra_mappingType Z -> R).
975+ (\1_(dyadic_approx setT (EFin \o Z) n k) : g_sigma_algebra_preimageType Z -> R).
983976 move=> k kn.
984- exact/(@measurable_indicP _ (g_sigma_algebra_mappingType Z))/mA.
977+ exact/(@measurable_indicP _ (g_sigma_algebra_preimageType Z))/mA.
985978rewrite !inE => /orP[|]/eqP->{i} //=.
986- have : @measurable_fun _ _ (g_sigma_algebra_mappingType X) _ setT (X_ n).
979+ have : @measurable_fun _ _ (g_sigma_algebra_preimageType X) _ setT (X_ n).
987980 rewrite nnsfun_approxE//.
988981 apply: measurable_funD => //=.
989982 apply: measurable_sum => //= k'; apply: measurable_funM => //.
@@ -992,7 +985,7 @@ rewrite !inE => /orP[|]/eqP->{i} //=.
992985 by apply: measurable_indic; exact: mB.
993986 rewrite /measurable_fun => /(_ measurableT _ (measurable_set1 x)).
994987 by rewrite setTI.
995- have : @measurable_fun _ _ (g_sigma_algebra_mappingType Y) _ setT (Y_ n).
988+ have : @measurable_fun _ _ (g_sigma_algebra_preimageType Y) _ setT (Y_ n).
996989 rewrite nnsfun_approxE//.
997990 apply: measurable_funD => //=.
998991 apply: measurable_sum => //= k'; apply: measurable_funM => //.
@@ -1053,7 +1046,7 @@ exact/measurable_EFinP/measurable_funM.
10531046Qed .
10541047
10551048(* TODO: rename to expectationM when deprecation is removed *)
1056- Lemma expectation_prod (X Y : {RV P >-> R}) :
1049+ Lemma expectation_mul (X Y : {RV P >-> R}) :
10571050 independent_RVs2 P X Y ->
10581051 (X : _ -> _) \in Lfun P 1 -> (Y : _ -> _) \in Lfun P 1 ->
10591052 'E_P [X * Y] = 'E_P [X] * 'E_P [Y].
0 commit comments