@@ -863,6 +863,58 @@ Qed.
863863
864864End independent_RVs_lemmas.
865865
866+ Local Open Scope ereal_scope.
867+ (**md see Achim Klenke's Probability Theory, Ch.2, remark 2.15 *)
868+ Lemma independence_RVsP {R : realType} d (T : measurableType d)
869+ {I0 : choiceType} {d'} (T' : measurableType d') (P : probability T R)
870+ (I : set I0) (X : I0 -> {mfun T >-> T'}) :
871+ independent_RVs (P := P) I X <->
872+ forall J : {fset I0}, [set` J] `<=` I ->
873+ forall A : I0 -> set T', (forall j, I j -> A j \in measurable) ->
874+ P (\big[setI/setT]_(j <- J) (X j @^-1` A j))
875+ = \prod_(j <- J) P (X j @^-1` A j).
876+ Proof .
877+ split.
878+ move=> [H1 +] J JI A IA.
879+ apply => // j jJ /=.
880+ rewrite inE/=.
881+ exists (A j).
882+ exact/set_mem/IA/JI.
883+ by rewrite setTI.
884+ move=> H; split.
885+ move=> j Ij _ [B mB] <-.
886+ rewrite setTI.
887+ exact: measurable_sfunP.
888+ move=> J JI E JE.
889+ pose A : I0 -> set T' := fun i => match pselect (i \in J) with
890+ left H => sval (cid2 (set_mem (JE i H))) | right _ => setT end.
891+ have H1 (j : I0) : I j -> A j \in d'.-measurable.
892+ move=> Ij.
893+ rewrite /A.
894+ case: pselect => [|]; last by rewrite inE.
895+ move=> jJ.
896+ rewrite inE.
897+ by case: cid2.
898+ have := H _ JI A H1 => {}H.
899+ apply: eq_trans.
900+ apply: eq_trans; last exact: H.
901+ congr (P _).
902+ rewrite big_seq [RHS]big_seq.
903+ apply: eq_bigr => j jJ.
904+ rewrite /A.
905+ case: pselect; last by [].
906+ move=> jJ'.
907+ case: cid2 => //= ? ?.
908+ by rewrite setTI.
909+ rewrite big_seq [RHS]big_seq.
910+ apply: eq_bigr => j jJ.
911+ rewrite /A.
912+ case: pselect; last by [].
913+ move=> jJ'.
914+ case: cid2 => //= ?.
915+ by rewrite setTI => ? ->.
916+ Qed .
917+
866918Section independent_generators.
867919Context {R : realType} d (T : measurableType d).
868920Context {I0 : choiceType}.
0 commit comments