@@ -94,8 +94,9 @@ HB.mixin Record isSFiniteKernel (d d' : measure_display)
9494 (R : realType) (X : measurableType d) (Y : measurableType d')
9595 (k : X -> {measure set Y -> \bar R})
9696 of isKernel d d' R X Y k := {
97- sfinite_kernelP : exists k_ : (finite_kernel R X Y)^nat, forall x,
98- k x = [the measure _ _ of mseries (k_ ^~ x) 0]
97+ sfinite_kernelP : exists k_ : (finite_kernel R X Y)^nat, forall x U,
98+ measurable U ->
99+ k x U = [the measure _ _ of mseries (k_ ^~ x) 0] U
99100}.
100101
101102#[short(type=sfinite_kernel)]
@@ -593,29 +594,67 @@ Lemma eq_measure (d : measure_display) (T : measurableType d) (R : realType)
593594Proof .
594595Abort .
595596
597+ Section eq_measure_integral_new.
598+ Local Open Scope ereal_scope.
599+ Variables (d : measure_display) (T : measurableType d) (R : realType)
600+ (D : set T).
601+ Implicit Types m : {measure set T -> \bar R}.
602+
603+ Let eq_measure_integral0 m2 m1 (f : T -> \bar R) :
604+ (forall A, measurable A -> A `<=` D -> m1 A = m2 A) ->
605+ [set sintegral m1 h | h in
606+ [set h : {nnsfun T >-> R} | (forall x, (h x)%:E <= (f \_ D) x)]] `<=`
607+ [set sintegral m2 h | h in
608+ [set h : {nnsfun T >-> R} | (forall x, (h x)%:E <= (f \_ D) x)]].
609+ Proof .
610+ move=> m12 _ [h hfD <-] /=; exists h => //; apply: eq_fsbigr => r _.
611+ have [hrD|hrD] := pselect (h @^-1` [set r] `<=` D); first by rewrite m12.
612+ suff : r = 0%R by move=> ->; rewrite !mul0e.
613+ apply: contra_notP hrD => /eqP r0 t/= htr.
614+ have := hfD t.
615+ rewrite /patch/=; case: ifPn; first by rewrite inE.
616+ move=> tD.
617+ move: r0; rewrite -htr => ht0.
618+ by rewrite le_eqVlt eqe (negbTE ht0)/= lte_fin// ltNge// fun_ge0.
619+ Qed .
620+
621+ Lemma eq_measure_integral_new m2 m1 (f : T -> \bar R) :
622+ (forall A, measurable A -> A `<=` D -> m1 A = m2 A) ->
623+ \int[m1]_(x in D) f x = \int[m2]_(x in D) f x.
624+ Proof .
625+ move=> m12; rewrite /integral funepos_restrict funeneg_restrict.
626+ congr (ereal_sup _ - ereal_sup _)%E; rewrite eqEsubset; split;
627+ apply: eq_measure_integral0 => A /m12 //.
628+ by move=> /[apply].
629+ by move=> /[apply].
630+ Qed .
631+
632+ End eq_measure_integral_new.
633+ Arguments eq_measure_integral_new {d T R D} m2 {m1 f}.
634+
596635Section star_is_sfinite_kernel.
597636Variables (d d' : _) (R : realType) (X : measurableType d) (Y : measurableType d')
598637 (Z : measurableType (d, d').-prod).
599638Variable k : sfinite_kernel R [the measurableType _ of (X * Y)%type] Z.
600639Variable l : sfinite_kernel R X Y.
601640
602- Lemma star_sfinite : exists k_ : (finite_kernel R X Z)^nat, forall x,
603- mstar k l x = [the measure _ _ of mseries (k_ ^~ x) O].
641+ Lemma star_sfinite : exists k_ : (finite_kernel R X Z)^nat, forall x U, measurable U ->
642+ mstar k l x U = [the measure _ _ of mseries (k_ ^~ x) O] U .
604643Proof .
605644have [k_ hk_] := @sfinite_kernelP _ _ _ _ _ k.
606645have [l_ hl_] := @sfinite_kernelP _ _ _ _ _ l.
607646pose K := [the kernel _ _ _ of sum_of_kernels k_].
608647pose L := [the kernel _ _ _ of sum_of_kernels l_].
609- have H1 x U : star k l x U = star K L x U.
648+ have H1 x U : measurable U -> star k l x U = star K L x U.
649+ move=> mU.
610650 rewrite /star /L /K /=.
611- have -> : l x = [the measure _ _ of mseries (fun x0 : nat => l_ x0 x) 0].
612- apply/eq_measure/funeqP => V.
651+ transitivity (\int[
652+ [the measure _ _ of mseries (fun x0 : nat => l_ x0 x) 0]
653+ ]_y k (x, y) U).
654+ apply eq_measure_integral_new => A mA _ .
613655 by rewrite hl_.
614656 apply eq_integral => y _.
615- suff: k (x, y) = [the measure _ _ of mseries (fun x0 : nat => k_ x0 (x, y)) 0].
616- by move=> ->.
617- apply/eq_measure/funeqP => V.
618- by rewrite hk_.
657+ by rewrite hk_//.
619658have H2 x U : star K L x U =
620659 \int[mseries (l_ ^~ x) 0]_y (\sum_(i <oo) k_ i (x, y) U).
621660 rewrite /star /L /=.
@@ -641,13 +680,10 @@ have H5 x U : \sum_(i <oo) \sum_(j <oo) \int[l_ j x]_y k_ i (x, y) U =
641680suff: exists k_0 : (finite_kernel R X Z) ^nat, forall x U,
642681 \esum_(i in setT) star (k_ i.1) (l_ i.2) x U = \sum_(i <oo) k_0 i x U.
643682 move=> [kl_ hkl_].
644- exists kl_ => x.
645- apply/eq_measure/funext => U.
683+ exists kl_ => x U mU.
646684 rewrite /=.
647- rewrite /mstar/= /mseries H1 H2 H3; last first.
648- admit.
649- rewrite H4//; last first.
650- admit.
685+ rewrite /mstar/= /mseries H1// H2 H3//.
686+ rewrite H4//.
651687 rewrite H5// -hkl_ /=.
652688 rewrite (_ : setT = setT `*`` (fun=> setT)); last by apply/seteqP; split.
653689 rewrite -(@esum_esum _ _ _ _ _ (fun i j => star (k_ i) (l_ j) x U))//.
@@ -659,7 +695,7 @@ have /ppcard_eqP[f] : ([set: nat] #= [set: nat * nat])%card.
659695exists (fun i => [the finite_kernel _ _ _ of mstar (k_ (f i).1) (l_ (f i).2)]) => x U.
660696rewrite (reindex_esum [set: nat] [set: nat * nat] f)//.
661697by rewrite nneseries_esum// fun_true.
662- Admitted .
698+ Qed .
663699
664700HB.instance Definition _ :=
665701 isSFiniteKernel.Build d ((d, d').-prod)%mdisp R X Z (mstar k l) star_sfinite.
0 commit comments