Skip to content

Commit b933262

Browse files
committed
fix
1 parent 69e9946 commit b933262

1 file changed

Lines changed: 54 additions & 18 deletions

File tree

theories/kernel.v

Lines changed: 54 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
593594
Proof.
594595
Abort.
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+
596635
Section star_is_sfinite_kernel.
597636
Variables (d d' : _) (R : realType) (X : measurableType d) (Y : measurableType d')
598637
(Z : measurableType (d, d').-prod).
599638
Variable k : sfinite_kernel R [the measurableType _ of (X * Y)%type] Z.
600639
Variable 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.
604643
Proof.
605644
have [k_ hk_] := @sfinite_kernelP _ _ _ _ _ k.
606645
have [l_ hl_] := @sfinite_kernelP _ _ _ _ _ l.
607646
pose K := [the kernel _ _ _ of sum_of_kernels k_].
608647
pose 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_//.
619658
have 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 =
641680
suff: 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.
659695
exists (fun i => [the finite_kernel _ _ _ of mstar (k_ (f i).1) (l_ (f i).2)]) => x U.
660696
rewrite (reindex_esum [set: nat] [set: nat * nat] f)//.
661697
by rewrite nneseries_esum// fun_true.
662-
Admitted.
698+
Qed.
663699

664700
HB.instance Definition _ :=
665701
isSFiniteKernel.Build d ((d, d').-prod)%mdisp R X Z (mstar k l) star_sfinite.

0 commit comments

Comments
 (0)