Require Import Reals Sums Lra Lia.
Require Import Coquelicot.Coquelicot.
Require Import LibUtils.
Require Import Expectation ConditionalExpectation RandomVariableLpR.
Require Import infprod.
Require Import PushNeg.
Require Import List Permutation.
Require Import Morphisms EquivDec Program.
Require Import ProductSpace.
Require Import Utils.
Import ListNotations.
Require Import Classical.
Require Import slln.
Require Import DVector.
Set Bullet Behavior "
Strict Subproofs".
Require Import LM.hilbert Classical IndefiniteDescription.
Section Dvoretzky.
Context
{
Ts :
Type}
{
dom:
SigmaAlgebra Ts}
{
prts:
ProbSpace dom}.
Global Instance R_nonempty :
NonEmpty R
:=
R0.
Declare Scope rv.
Infix ".+" :=
rvplus (
left associativity,
at level 50) :
rv.
Infix ".-" :=
rvminus (
left associativity,
at level 50) :
rv.
Infix ".*" :=
rvmult (
left associativity,
at level 40) :
rv.
Infix ".*." :=
rvscale (
no associativity,
at level 40) :
rv.
Notation "
x .²" := (
rvsqr x) (
at level 1) :
rv.
Local Open Scope rv.
Lemma frf_vals_offset
(
offset:
R)
(
vals :
list R) :
map (
fun ab :
R *
R =>
fst ab +
snd ab) (
list_prod vals [
offset]) =
map (
fun v =>
v +
offset)
vals.
Proof.
induction vals; simpl; trivial.
now f_equal.
Qed.
Definition ConditionalExpectation_rv (
g f :
Ts ->
R)
{
rvf:
RandomVariable dom borel_sa f}
{
rvg:
RandomVariable dom borel_sa g} :
Ts ->
Rbar :=
ConditionalExpectation prts (
pullback_rv_sub dom borel_sa g rvg)
f.
Definition FiniteConditionalExpectation_rv (
g f :
Ts ->
R)
{
rvf:
RandomVariable dom borel_sa f}
{
rvg:
RandomVariable dom borel_sa g}
{
isfe :
IsFiniteExpectation prts f} :
Ts ->
R :=
FiniteConditionalExpectation prts (
pullback_rv_sub dom borel_sa g rvg)
f.
Lemma Dvoretzky_rel (
n:
nat) (
theta:
R) (
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
R ->
R)
(
F :
nat ->
R)
(
rvy :
RandomVariable dom borel_sa (
Y n))
(
svy2 :
IsFiniteExpectation prts (
rvsqr (
Y n)))
(
rvx :
RandomVariable dom borel_sa (
X n))
{
isfexm:
IsFiniteExpectation prts (
rvsqr (
rvminus (
X n) (
const theta)) )}
(
rvt :
RandomVariable borel_sa borel_sa (
fun r:
R =>
T n r))
(
svt:
IsFiniteExpectation prts (
fun r:
Ts =>
T n (
X n r)))
(
svt2:
IsFiniteExpectation prts (
rvsqr (
fun r:
Ts =>
T n (
X n r))))
(
rvx2 :
RandomVariable dom borel_sa (
X (
S n)))
{
isfex2m:
IsFiniteExpectation prts (
rvsqr (
rvminus (
X (
S n)) (
const theta)) )}
{
isfety:
IsFiniteExpectation prts (((
fun r :
Ts =>
T n (
X n r)) .*
Y n))} :
(
forall (
n:
nat),
F n >= 0) ->
(
forall (
n:
nat) (
r:
R),
Rle (
Rabs ((
T n r) -
theta)) (
F n *
Rabs (
r-
theta))) ->
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
fun r =>
T n (
X n r)) (
Y n))) ->
almostR2 prts eq (
ConditionalExpectation_rv (
X n) (
Y n)) (
const 0) ->
Rle (
FiniteExpectation prts (
rvsqr (
rvminus (
X (
S n)) (
const theta)) ))
((
Rsqr (
F n)) *
FiniteExpectation prts (
rvsqr (
rvminus (
X n) (
const (
theta))))
+
FiniteExpectation prts (
rvsqr (
Y n))).
Proof.
intros.
specialize (
H1 n).
assert (
rv_eq (
rvminus (
X (
S n)) (
const theta))
(
rvminus (
rvplus (
fun r =>
T n (
X n r)) (
Y n)) (
const theta))).
{
now rewrite H1.
}
rewrite (
FiniteExpectation_ext_alt _ _ _ (
rvsqr_proper _ _ H3)).
assert (
eqq1:
rv_eq (
rvsqr (
rvminus (
rvplus (
fun r :
Ts =>
T n (
X n r)) (
Y n)) (
const theta)))
(
rvplus (
rvsqr (
rvminus (
fun r :
Ts =>
T n (
X n r)) (
const theta)))
(
rvplus
(
rvscale 2 (
rvmult (
rvminus (
fun r :
Ts =>
T n (
X n r)) (
const theta))
(
Y n)))
(
rvsqr (
Y n))))).
{
intros r.
unfold rvsqr,
rvplus,
rvminus,
rvopp,
rvscale,
Rsqr,
rvmult,
const.
unfold rvplus.
lra.
}
rewrite (
FiniteExpectation_ext_alt _ _ _ eqq1).
assert (
rvtx:
RandomVariable dom borel_sa (
fun r:
Ts =>
T n (
X n r)))
by now apply (
compose_rv (
dom2 :=
borel_sa)).
erewrite (
FiniteExpectation_plus'
_ _ _ ).
erewrite (
FiniteExpectation_plus'
_ _ _ ).
erewrite (
FiniteExpectation_scale'
_ _ _).
rewrite <-
Rplus_assoc.
apply Rplus_le_compat_r.
{
Unshelve.
-
shelve.
-
rewrite rvsqr_minus_foil.
apply IsFiniteExpectation_plus;
try typeclasses eauto.
apply IsFiniteExpectation_minus;
try typeclasses eauto.
apply IsFiniteExpectation_scale.
rewrite rvmult_comm.
assert (
eqq2:
rv_eq (
const theta .* (
fun r :
Ts =>
T n (
X n r)))
(
rvscale theta (
fun r :
Ts =>
T n (
X n r))))
by reflexivity.
rewrite eqq2.
now apply IsFiniteExpectation_scale.
-
apply IsFiniteExpectation_plus;
try typeclasses eauto.
apply IsFiniteExpectation_scale.
rewrite rvmult_comm.
rewrite rvmult_rvminus_distr.
apply IsFiniteExpectation_minus;
try typeclasses eauto.
+
now rewrite rvmult_comm.
+
rewrite rvmult_comm.
assert (
eqq2:
rv_eq (
const theta .*
Y n)
(
rvscale theta (
Y n)))
by reflexivity.
rewrite eqq2.
apply IsFiniteExpectation_scale.
now apply IsFiniteExpectation_rvsqr_lower.
-
apply IsFiniteExpectation_scale.
rewrite rvmult_comm.
rewrite rvmult_rvminus_distr.
apply IsFiniteExpectation_minus;
try typeclasses eauto.
+
now rewrite rvmult_comm.
+
rewrite rvmult_comm.
assert (
eqq2:
rv_eq (
const theta .*
Y n)
(
rvscale theta (
Y n)))
by reflexivity.
rewrite eqq2.
apply IsFiniteExpectation_scale.
now apply IsFiniteExpectation_rvsqr_lower.
-
rewrite rvmult_comm.
rewrite rvmult_rvminus_distr.
apply IsFiniteExpectation_minus;
try typeclasses eauto.
+
now rewrite rvmult_comm.
+
rewrite rvmult_comm.
assert (
eqq2:
rv_eq (
const theta .*
Y n)
(
rvscale theta (
Y n)))
by reflexivity.
rewrite eqq2.
apply IsFiniteExpectation_scale.
now apply IsFiniteExpectation_rvsqr_lower.
}
Unshelve.
replace (
FiniteExpectation prts (((
fun r :
Ts =>
T n (
X n r)) .-
const theta) .*
Y n))
with 0.
shelve.
{
symmetry.
assert (
isfef:
IsFiniteExpectation prts (
Y n))
by now apply IsFiniteExpectation_rvsqr_lower.
eapply FiniteCondexp_factor_out_zero_swapped
with (
sub := (
pullback_rv_sub dom borel_sa (
X n)
rvx)) (
rvf :=
rvy);
trivial.
-
apply rvminus_rv.
+
apply (
compose_rv (
dom2 :=
borel_sa));
trivial.
apply pullback_rv.
+
typeclasses eauto.
-
revert H2.
apply almost_impl;
apply all_almost;
intros ??.
unfold ConditionalExpectation_rv in H2.
rewrite (
FiniteCondexp_eq _ _ _)
in H2.
invcs H2.
reflexivity.
}
Unshelve.
specialize (
H n).
field_simplify.
rewrite <- (
FiniteExpectation_scale _ (
Rsqr (
F n))).
apply FiniteExpectation_le;
try typeclasses eauto.
intros x.
unfold rvsqr,
rvscale.
specialize (
H0 n (
X n x)).
rewrite <-
Rabs_right with (
r:=
F n)
in H0;
trivial.
rewrite <-
Rabs_mult in H0.
apply Rsqr_le_abs_1 in H0.
rewrite Rsqr_mult in H0.
unfold rvminus,
rvopp,
rvplus,
rvscale,
const.
replace (-1 *
theta)
with (-
theta)
by lra.
apply H0.
Qed.
Lemma exp_sum (
a :
nat ->
R) (
n :
nat) :
exp(
sum_n a n) =
part_prod (
fun j =>
mkposreal (
exp (
a j)) (
exp_pos (
a j)))
n.
Proof.
Lemma part_prod_le2 (
a b :
nat ->
posreal) (
n :
nat) :
(
forall j,
a j <=
b j) ->
part_prod a n <=
part_prod b n.
Proof.
Lemma Ropp_sum_Ropp (
a :
nat ->
R) (
n :
nat) :
sum_n a n = -
sum_n (
fun j :
nat => -
a j)
n.
Proof.
Definition l1_divergent (
a :
nat ->
R) :=
is_lim_seq (
sum_n a)
p_infty.
Lemma a1_pos_pf {
a :
R} :
(0 <=
a < 1) -> 0 < 1-
a.
Proof.
lra.
Qed.
Lemma Fprod_0 (
a :
nat ->
R)
(
abounds :
forall n, 0 <=
a n < 1) :
l1_divergent a ->
is_lim_seq (
part_prod (
fun n => (
mkposreal (1 -
a n) (
a1_pos_pf (
abounds n))))) 0.
Proof.
Lemma pos1 (
a :
R) :
0 <=
a -> 0 < 1 +
a.
Proof.
lra.
Qed.
Lemma prod_exp_bound (
a :
nat ->
R)
(
apos :
forall n, 0 <=
a n) :
(
forall m,
part_prod (
fun n =>
mkposreal (1 +
a n) (
pos1 (
a n) (
apos n)))
m <=
exp (
sum_n a m)).
Proof.
Lemma Fprod_B (
b :
nat ->
R)
(
bpos :
forall n, 0 <=
b n) :
Rbar_le
(
Lim_seq (
part_prod (
fun n => (
mkposreal (1 +
b n) (
pos1 (
b n) (
bpos n))))))
(
Lim_seq (
fun m =>
exp (
sum_n b m))).
Proof.
Lemma Fprod_B2 (
b :
nat ->
R)
(
bpos :
forall n, 0 <=
b n) :
ex_series b ->
exists (
B:
R),
Rbar_le
(
Lim_seq (
part_prod (
fun n => (
mkposreal (1 +
b n) (
pos1 (
b n) (
bpos n))))))
B.
Proof.
Lemma Dvoretzky_8_F_le_1 (
theta:
R)
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
R ->
R)
(
F :
nat ->
posreal)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
(
rvx :
forall n,
RandomVariable dom borel_sa (
X n))
(
rvt :
forall n,
RandomVariable borel_sa borel_sa (
fun r:
R =>
T n r))
(
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
{
isfexm:
forall n,
IsFiniteExpectation prts (
rvsqr (
rvminus (
X n) (
const theta)) )}
(
svt:
forall n,
IsFiniteExpectation prts (
fun r:
Ts =>
T n (
X n r)))
{
isfety:
forall n,
IsFiniteExpectation prts (((
fun r :
Ts =>
T n (
X n r)) .*
Y n))}
(
svt2:
forall n,
IsFiniteExpectation prts (
rvsqr (
fun r:
Ts =>
T n (
X n r)))) :
(
forall (
n:
nat),
F n >= 0) ->
(
forall (
n:
nat) (
r:
R),
Rle (
Rabs ((
T n r) -
theta)) (
F n *
Rabs (
r-
theta))) ->
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
fun r =>
T n (
X n r)) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation_rv (
X n) (
Y n)) (
fun x :
Ts =>
const 0
x)) ->
(
forall n,
F n <= 1) ->
ex_series (
fun n =>
FiniteExpectation prts (
rvsqr (
Y n))) ->
is_lim_seq (
part_prod F) 0 ->
is_lim_seq (
fun n =>
FiniteExpectation prts (
rvsqr (
rvminus (
X n) (
const theta)))) 0.
Proof.
End Dvoretzky.
Section Derman_Sacks.
Context
{
Ts :
Type}
{
dom:
SigmaAlgebra Ts}
{
prts:
ProbSpace dom}.
Lemma DS_1_helper (
a b c delta zeta :
nat ->
R) (
N0 N :
nat)
(
b1pos :
forall n, 0 <=
b n) :
(
forall n,
(
n>=
N0)%
nat ->
zeta (
S n) <=
Rmax (
a n) ((1+
b n)*
zeta n +
delta n -
c n)) ->
(
N >
N0)%
nat ->
let B :=
part_prod (
fun i =>
mkposreal _ (
pos1 (
b i) (
b1pos i)))
in
forall (
n:
nat),
(
n >
N)%
nat ->
zeta (
S n) <=
Rmax (((
B n)/(
B (
N-1)%
nat))*(
zeta N) +
(
B n) *
sum_n_m (
fun j => (
delta j -
c j)/(
B j))
N n)
(
Rmax_list
(
map (
fun k =>
(
B n)/(
B k)*(
a k) +
(
B n) *
sum_n_m (
fun j => (
delta j -
c j)/(
B j)) (
S k)
n)
(
seq N (
S (
n-
N))%
nat))).
Proof.
Lemma DS_1_part1 (
a b c delta zeta :
nat ->
R) (
N0 N:
nat)
(
b1pos :
forall n, 0 <=
b n) :
(
forall n, 0 <=
a n) ->
(
N >
N0)%
nat ->
(
forall n, 0 <=
c n) ->
(
forall n, 0 <=
zeta n) ->
is_lim_seq a 0 ->
ex_series b ->
ex_series delta ->
is_lim_seq (
sum_n c)
p_infty ->
(
forall n, (
n>=
N0)%
nat ->
zeta (
S n) <=
Rmax (
a n) ((1+
b n)*
zeta n +
delta n -
c n)) ->
let B :=
part_prod (
fun i =>
mkposreal _ (
pos1 (
b i) (
b1pos i)))
in
exists (
N1 :
nat),
forall n,
(
n >
max N N1)%
nat ->
zeta (
S n) <= (
Rmax_list
(
map (
fun k =>
(
B n)/(
B k)*(
a k) +
(
B n) *
sum_n_m (
fun j => (
delta j -
c j)/(
B j)) (
S k)
n)
(
seq N (
S (
n-
N))%
nat))).
Proof.
Lemma DS_1_part2 (
a b c delta zeta :
nat ->
R) (
N0 N:
nat)
(
b1pos :
forall n, 0 <=
b n) :
(
forall n, 0 <=
a n) ->
(
N >
N0)%
nat ->
(
forall n, 0 <=
c n) ->
(
forall n, 0 <=
zeta n) ->
is_lim_seq a 0 ->
ex_series b ->
ex_series delta ->
is_lim_seq (
sum_n c)
p_infty ->
(
forall n, (
n>=
N0)%
nat ->
zeta (
S n) <=
Rmax (
a n) ((1+
b n)*
zeta n +
delta n -
c n)) ->
let B :=
part_prod (
fun i =>
mkposreal _ (
pos1 (
b i) (
b1pos i)))
in
exists (
N1 :
nat),
forall n,
(
n >
max N N1)%
nat ->
zeta (
S n) <=
(
Lim_seq B) *
(
Sup_seq (
fun n =>
a (
n +
N)%
nat) +
(
Rmax_list
(
map (
fun k =>
Rabs
(
sum_n_m (
fun j => (
delta j)/(
B j)) (
S k)
n))
(
seq N (
S (
n-
N))%
nat)))).
Proof.
Lemma DS_lemma1 (
a b c delta zeta :
nat ->
R)
(
b1pos :
forall n, 0 <=
b n) :
(
forall n, 0 <=
a n) ->
(
forall n, 0 <=
c n) ->
(
forall n, 0 <=
zeta n) ->
is_lim_seq a 0 ->
ex_series b ->
ex_series delta ->
is_lim_seq (
sum_n c)
p_infty ->
(
exists (
N0:
nat),
(
forall n, (
n>=
N0)%
nat ->
zeta (
S n) <=
Rmax (
a n) ((1+
b n)*
zeta n +
delta n -
c n))) ->
is_lim_seq zeta 0.
Proof.
Lemma DS_Dvor_11_12_Y_fun (
a :
nat ->
Ts ->
R) {
Y :
nat ->
Ts ->
R}
(
isfe :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
(
rvy :
forall n,
RandomVariable _ borel_sa (
Y n))
:
(
forall n omega, 0 <=
a n omega) ->
ex_series (
fun n =>
FiniteExpectation prts (
rvsqr (
Y n))) ->
exists α :
nat->
R,
is_lim_seq (
fun n => α
n) 0 /\
almost _ (
fun omega =>
exists N:
nat,
forall n, (
N <=
n)%
nat ->
rvabs (
Y n)
omega <=
Rmax (α
n) (
a n omega)).
Proof.
Lemma DS_Dvor_11_12_Y (
a :
nat ->
R) {
Y :
nat ->
Ts ->
R}
(
isfe :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
(
rvy :
forall n,
RandomVariable _ borel_sa (
Y n))
:
(
forall n, 0 <=
a n) ->
is_lim_seq a 0 ->
ex_series (
fun n =>
FiniteExpectation prts (
rvsqr (
Y n))) ->
exists α :
nat ->
R,
is_lim_seq α 0 /\
almost _ (
fun omega =>
exists N:
nat,
forall n, (
N <=
n)%
nat ->
rvabs (
Y n)
omega <=
Rmax (α
n) (
a n)).
Proof.
Global Instance IsFiniteExpectation_mult_sign (
X :
Ts ->
R)
f
{
rvX:
RandomVariable dom borel_sa X}
{
rvf:
RandomVariable dom borel_sa f}
{
isfe:
IsFiniteExpectation prts X} :
IsFiniteExpectation prts (
rvmult X (
rvsign f)).
Proof.
Lemma DS_Dvor_ash_6_2_1 (
X Y T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
rvX :
forall (
n:
nat),
RandomVariable dom borel_sa (
X n)}
{
rvY :
forall (
n:
nat),
RandomVariable dom borel_sa (
Y n)}
{
rvT :
forall (
n:
nat),
RandomVariable dom borel_sa (
T n)}
(
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
(
HC :
forall n,
almostR2 _ eq
(
ConditionalExpectation _ (
filt_sub (
S n)) (
Y (
S n)))
(
const 0)) :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
ex_series (
fun n =>
FiniteExpectation prts (
rvsqr (
Y n))) ->
let Z :=
fun n =>
rvmult (
Y n) (
rvsign (
T n))
in
almost _ (
fun (
x :
Ts) =>
ex_series (
fun n =>
Z n x)).
Proof.
intros.
assert (
adaptY :
IsAdapted borel_sa Y (
fun n =>
F (
S n))).
{
unfold IsAdapted;
intros.
specialize (
H n).
assert (
rv_eq (
Y n) (
rvminus (
X (
S n)) (
T n))).
{
rewrite H.
intro x.
unfold rvminus,
rvplus,
rvopp,
rvscale;
lra.
}
rewrite H1.
apply rvminus_rv.
-
apply adaptX.
-
apply (
RandomVariable_sa_sub (
isfilt n)).
apply adaptT.
}
assert (
adaptZ :
IsAdapted borel_sa Z (
fun n =>
F (
S n))).
{
unfold IsAdapted;
intros.
unfold Z.
apply rvmult_rv;
trivial.
apply rvsign_rv;
trivial.
apply (
RandomVariable_sa_sub (
isfilt n)).
apply adaptT.
}
assert (
rvZ :
forall n,
RandomVariable dom borel_sa (
Z n)).
{
intros.
unfold Z.
apply rvmult_rv;
trivial.
apply rvsign_rv;
trivial.
}
assert (
isfilt1 :
IsFiltration (
fun n =>
F (
S n))).
{
unfold IsFiltration;
intros.
apply isfilt.
}
assert (
isfesqrZ :
forall k :
nat,
IsFiniteExpectation prts (
rvsqr (
Z k))).
{
intros.
unfold Z.
apply IsFiniteExpectation_proper with
(
x :=
rvmult (
rvmult (
Y k) (
rvsign (
T k))) (
rvmult (
Y k) (
rvsign (
T k)))).
-
intros ?.
unfold rvmult,
rvsign,
rvsqr.
now unfold Rsqr.
-
rewrite <-
rvmult_assoc.
apply IsFiniteExpectation_mult_sign;
try typeclasses eauto.
rewrite rvmult_assoc.
rewrite (
rvmult_comm (
rvsign (
T k))).
rewrite <-
rvmult_assoc.
apply IsFiniteExpectation_mult_sign;
try typeclasses eauto.
}
apply Ash_6_2_1_filter with
(
filt_sub0 :=
fun n =>
filt_sub (
S n))
(
rv :=
rvZ)
(
isfesqr:=
isfesqrZ) ;
trivial.
-
intros.
assert (
isfef :
IsFiniteExpectation prts (
Y (
S n)))
by (
intros;
now apply IsFiniteExpectation_rvsqr_lower).
assert (
rvs:
RandomVariable (
F (
S n))
borel_sa (
rvsign (
T (
S n)))).
{
apply rvsign_rv.
apply adaptT.
}
assert (
isfe2 :
IsFiniteExpectation prts (
rvmult (
Y (
S n)) (
rvsign (
T (
S n)))))
by typeclasses eauto.
generalize (
Condexp_factor_out prts (
filt_sub (
S n))(
Y (
S n)) (
rvsign (
T (
S n))));
intros.
apply almost_prob_space_sa_sub_lift in H1.
revert H1.
apply almost_impl.
specialize (
HC n).
revert HC.
apply almost_impl,
all_almost;
intros ??.
unfold impl;
intros.
unfold Z.
rewrite H2.
unfold Rbar_rvmult.
rewrite H1.
unfold const.
now rewrite Rbar_mult_0_r.
-
assert (
Z2leY2:
forall n0,
rv_le (
rvsqr (
Z n0)) (
rvsqr (
Y n0))).
{
intros n0 x.
unfold Z,
rvsqr,
rvmult,
rvsign.
replace (
Rsqr (
Y n0 x))
with ((
Rsqr (
Y n0 x)) * 1)
by lra.
rewrite Rsqr_mult.
apply Rmult_le_compat_l.
-
apply Rle_0_sqr.
-
destruct (
Rlt_dec 0 (
T n0 x)).
+
rewrite sign_eq_1;
unfold Rsqr;
lra.
+
destruct (
Rlt_dec (
T n0 x) 0).
*
rewrite sign_eq_m1;
unfold Rsqr;
lra.
*
assert (
T n0 x = 0)
by lra.
rewrite H1.
rewrite sign_0;
unfold Rsqr;
lra.
}
apply ex_series_nneg_bounded with (
g :=
fun n =>
FiniteExpectation prts (
rvsqr (
Y n)));
trivial.
+
intros.
apply FiniteExpectation_pos.
apply nnfsqr.
+
intros.
now apply FiniteExpectation_le.
Qed.
Theorem Dvoretzky_DS
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
R}
(
hpos1 :
forall n, 0 <=
alpha n)
(
hpos2 :
forall n, 0 <=
beta n )
(
hpos3 :
forall n, 0 <=
gamma n)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
(
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
:
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
rvabs (
T n)
omega) <=
Rmax (
alpha n) ((1+
beta n)*(
rvabs (
X n)
omega) -
gamma n)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
is_lim_seq alpha 0 ->
ex_finite_lim_seq (
sum_n beta) ->
is_lim_seq (
sum_n gamma)
p_infty ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega) 0).
Proof.
intros.
rewrite ex_finite_lim_series in H2.
rewrite ex_finite_lim_series in H4.
assert (
rvt:
forall n :
nat,
RandomVariable dom borel_sa (
T n)).
{
intros.
generalize (
adaptT n).
apply RandomVariable_proper_le;
try reflexivity.
apply filt_sub.
}
assert (
rvx:
forall n :
nat,
RandomVariable dom borel_sa (
X n)).
{
intros.
generalize (
adaptX n).
apply RandomVariable_proper_le;
try reflexivity.
apply filt_sub.
}
assert (
svy :
forall n,
IsFiniteExpectation prts (
Y n)).
{
intros.
apply (
IsLp_Finite prts 2);
trivial.
-
lra.
-
red.
rewrite rvpower2.
+
now rewrite rvsqr_abs.
+
apply nnfabs.
}
destruct (
DS_Dvor_11_12_Y alpha svy2)
as [α [α0 [
E [
HE Hα]]]];
trivial.
pose (
Z :=
fun n =>
rvmult (
Y n) (
rvsign (
T n))).
pose (
A :=
fun n =>
Rmax (α
n) (
alpha n)).
assert (
ZleY:
forall n0,
rv_le (
rvabs (
Z n0)) (
rvabs (
Y n0))).
{
intros n0 x.
unfold Z,
rvabs,
rvmult,
rvsign.
replace (
Rabs (
Y n0 x))
with ((
Rabs (
Y n0 x)) * 1)
by lra.
rewrite Rabs_mult.
apply Rmult_le_compat_l.
-
apply Rabs_pos.
-
destruct (
Rlt_dec 0 (
T n0 x)).
+
rewrite sign_eq_1;
trivial.
rewrite Rabs_R1;
lra.
+
destruct (
Rlt_dec (
T n0 x) 0).
*
rewrite sign_eq_m1;
trivial.
rewrite Rabs_m1;
lra.
*
assert (
T n0 x = 0)
by lra.
rewrite H6.
rewrite sign_0;
try (
rewrite Rabs_R0);
lra.
}
assert (
Haux :
almost _ (
fun omega =>
exists N,
forall n, (
N <=
n)%
nat ->
rvabs (
X (
S n))
omega <=
Rmax (2*
A n)
(((1+
beta n)*(
rvabs (
X n)
omega) +
Z n omega -
gamma n)))).
{
exists E.
split;
trivial.
intros w Hw.
destruct (
Hα
w Hw)
as [
N HN].
clear Hα.
exists N;
intros.
rv_unfold.
rewrite H.
specialize (
HN n H6).
clear H6.
clear Hw.
rewrite Rmax_Rle.
destruct (
Rle_dec (
Rabs(
T n w)) (
A n)).
--
left.
replace (2*
A n)
with (
A n +
A n)
by lra.
eapply Rle_trans; [
apply Rle_abs|].
rewrite Rabs_Rabsolu.
eapply Rle_trans;[
apply Rabs_triang|].
apply Rplus_le_compat;
trivial.
--
right.
apply Rnot_le_gt in n0.
eapply Rle_trans;[
apply Rle_abs|].
apply Rle_trans with (
r2 :=
Rabs(
T n w) +
Z n w).
**
rewrite Rabs_Rabsolu.
rewrite Rabs_sign.
rewrite (
sign_sum_alt HN n0).
rewrite Rmult_plus_distr_l.
rewrite <-
Rabs_sign.
right.
unfold Z;
lra.
**
unfold Rminus.
rewrite Rplus_assoc.
rewrite (
Rplus_comm (
Z n w) (-
gamma n)).
rewrite <-
Rplus_assoc.
specialize (
H1 n w).
rewrite Rmax_Rle in H1.
destruct H1.
***
exfalso.
apply Rgt_lt in n0.
unfold A in n0.
rewrite Rmax_Rlt in n0.
destruct n0 as [
_ ?
H];
lra.
***
apply Rplus_le_compat_r.
eapply Rle_trans; [
apply H1|
now right].
}
generalize (
DS_Dvor_ash_6_2_1 X Y T isfilt filt_sub);
intros.
specialize (
H6 svy2).
cut_to H6;
trivial.
simpl in H6.
revert H6;
apply almost_impl.
revert Haux;
apply almost_impl.
apply all_almost;
intros ??.
intro zser.
assert (
is_lim_seq (
fun n =>
Rabs (
X n x)) 0).
-
apply (
DS_lemma1 (
fun n => 2 *
A n)
beta gamma (
fun n =>
Z n x)
(
fun n =>
Rabs (
X n x)));
trivial.
+
intros;
unfold A.
apply Rmult_le_pos;
try lra.
apply Rle_trans with (
r2 :=
alpha n).
*
apply hpos1.
*
apply Rmax_r.
+
intros;
apply Rabs_pos.
+
replace (
Finite 0)
with (
Rbar_mult 2 0)
by apply Rbar_mult_0_r.
apply is_lim_seq_scal_l.
unfold A.
now apply is_lim_seq_max.
-
apply is_lim_seq_spec in H7.
apply is_lim_seq_spec.
unfold is_lim_seq'
in *;
intros.
specialize (
H7 eps).
destruct H7.
exists x0;
intros.
specialize (
H7 n H8).
rewrite Rminus_0_r.
now rewrite Rminus_0_r,
Rabs_Rabsolu in H7.
Qed.
Theorem Dvoretzky_DS_extended
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
rvabs (
T n)
omega) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs (
X n)
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega)))->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega) 0).
Proof.
intros.
rewrite ex_finite_lim_series in H2.
setoid_rewrite ex_finite_lim_series in H4.
assert (
rvt:
forall n :
nat,
RandomVariable dom borel_sa (
T n)).
{
intros.
generalize (
adaptT n).
apply RandomVariable_proper_le;
try reflexivity.
apply filt_sub.
}
assert (
rvx:
forall n :
nat,
RandomVariable dom borel_sa (
X n)).
{
intros.
generalize (
adaptX n).
apply RandomVariable_proper_le;
try reflexivity.
apply filt_sub.
}
assert (
svy :
forall n,
IsFiniteExpectation prts (
Y n)).
{
intros.
apply (
IsLp_Finite prts 2);
trivial.
-
lra.
-
red.
rewrite rvpower2.
+
now rewrite rvsqr_abs.
+
apply nnfabs.
}
destruct (
DS_Dvor_11_12_Y_fun alpha svy2)
as [α [α0 [
E [
HE Hα]]]];
trivial.
pose (
Z :=
fun n =>
rvmult (
Y n) (
rvsign (
T n))).
pose (
A :=
fun n omega =>
Rmax (α
n) (
alpha n omega)).
assert (
ZleY:
forall n0,
rv_le (
rvabs (
Z n0)) (
rvabs (
Y n0))).
{
intros n0 x.
unfold Z,
rvabs,
rvmult,
rvsign.
replace (
Rabs (
Y n0 x))
with ((
Rabs (
Y n0 x)) * 1)
by lra.
rewrite Rabs_mult.
apply Rmult_le_compat_l.
-
apply Rabs_pos.
-
destruct (
Rlt_dec 0 (
T n0 x)).
+
rewrite sign_eq_1;
trivial.
rewrite Rabs_R1;
lra.
+
destruct (
Rlt_dec (
T n0 x) 0).
*
rewrite sign_eq_m1;
trivial.
rewrite Rabs_m1;
lra.
*
assert (
T n0 x = 0)
by lra.
rewrite H6.
rewrite sign_0;
try (
rewrite Rabs_R0);
lra.
}
assert (
Haux :
almost _ (
fun omega =>
exists N,
forall n, (
N <=
n)%
nat ->
rvabs (
X (
S n))
omega <=
Rmax (2*
A n omega)
(((1+
beta n omega)*(
rvabs (
X n)
omega) +
Z n omega -
gamma n omega)))).
{
exists E.
split;
trivial.
intros w Hw.
destruct (
Hα
w Hw)
as [
N HN].
clear Hα.
exists N;
intros.
rv_unfold.
rewrite H.
specialize (
HN n H6).
clear H6.
clear Hw.
rewrite Rmax_Rle.
destruct (
Rle_dec (
Rabs(
T n w)) (
A n w)).
--
left.
replace (2*
A n w)
with (
A n w +
A n w)
by lra.
eapply Rle_trans; [
apply Rle_abs|].
rewrite Rabs_Rabsolu.
eapply Rle_trans;[
apply Rabs_triang|].
apply Rplus_le_compat;
trivial.
--
right.
apply Rnot_le_gt in n0.
eapply Rle_trans;[
apply Rle_abs|].
apply Rle_trans with (
r2 :=
Rabs(
T n w) +
Z n w).
**
rewrite Rabs_Rabsolu.
rewrite Rabs_sign.
rewrite (
sign_sum_alt HN n0).
rewrite Rmult_plus_distr_l.
rewrite <-
Rabs_sign.
right.
unfold Z;
lra.
**
unfold Rminus.
rewrite Rplus_assoc.
rewrite (
Rplus_comm (
Z n w) (-
gamma n w)).
rewrite <-
Rplus_assoc.
specialize (
H1 n w).
rewrite Rmax_Rle in H1.
destruct H1.
***
exfalso.
apply Rgt_lt in n0.
unfold A in n0.
rewrite Rmax_Rlt in n0.
destruct n0 as [
_ ?
H];
lra.
***
apply Rplus_le_compat_r.
eapply Rle_trans; [
apply H1|
now right].
}
generalize (
DS_Dvor_ash_6_2_1 X Y T isfilt filt_sub);
intros.
specialize (
H6 svy2).
cut_to H6;
trivial.
simpl in H6.
revert H6;
apply almost_impl.
revert Haux;
apply almost_impl.
revert H3;
apply almost_impl.
revert H4;
apply almost_impl.
revert H5;
apply almost_impl.
apply all_almost;
intros ?? ?? ??.
assert (
is_lim_seq (
fun n =>
Rabs (
X n x)) 0).
-
apply (
DS_lemma1 (
fun n => 2 *
A n x) (
fun n =>
beta n x)
(
fun n =>
gamma n x) (
fun n =>
Z n x)
(
fun n =>
Rabs (
X n x)));
trivial.
+
intros;
unfold A.
apply Rmult_le_pos;
try lra.
apply Rle_trans with (
r2 :=
alpha n x).
*
apply hpos1.
*
apply Rmax_r.
+
intros;
apply Rabs_pos.
+
replace (
Finite 0)
with (
Rbar_mult 2 0)
by apply Rbar_mult_0_r.
apply is_lim_seq_scal_l.
unfold A.
apply is_lim_seq_max;
trivial.
-
apply is_lim_seq_spec in H8.
apply is_lim_seq_spec.
unfold is_lim_seq'
in *;
intros.
specialize (
H8 eps).
destruct H8.
exists x0;
intros.
specialize (
H8 n H9).
rewrite Rminus_0_r.
now rewrite Rminus_0_r,
Rabs_Rabsolu in H8.
Qed.
Theorem Dvoretzky_DS_theta (
theta :
R)
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
R}
(
hpos1 :
forall n, 0 <=
alpha n)
(
hpos2 :
forall n, 0 <=
beta n )
(
hpos3 :
forall n, 0 <=
gamma n)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
(
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n)))
:
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
Rabs (
T n omega -
theta)) <=
Rmax (
alpha n) ((1+
beta n)*(
Rabs (
X n omega -
theta)) -
gamma n)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
is_lim_seq alpha 0 ->
ex_finite_lim_seq (
sum_n beta) ->
is_lim_seq (
sum_n gamma)
p_infty ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega)
theta).
Proof.
intros.
pose (
X' :=
fun n =>
rvminus (
X n) (
const theta)).
pose (
T' :=
fun n =>
rvminus (
T n) (
const theta)).
assert (
adaptX' :
IsAdapted borel_sa X'
F).
{
unfold IsAdapted,
X';
intros.
apply rvminus_rv;
trivial.
typeclasses eauto.
}
assert (
adaptT' :
IsAdapted borel_sa T'
F).
{
unfold IsAdapted,
T';
intros.
apply rvminus_rv;
trivial.
typeclasses eauto.
}
generalize (
Dvoretzky_DS X'
Y T'
isfilt filt_sub hpos1 hpos2 hpos3 _ _);
intros.
cut_to H6;
trivial.
-
revert H6.
apply almost_impl,
all_almost;
intros ??.
unfold X'
in H6.
unfold rvminus,
const,
rvplus,
rvopp,
rvscale in H6.
apply is_lim_seq_ext with
(
u :=
fun n => (
X n x + -1 *
theta) +
theta).
+
intros;
lra.
+
apply is_lim_seq_plus with (
l1 := 0) (
l2 :=
theta);
trivial.
*
apply is_lim_seq_const.
*
unfold is_Rbar_plus;
simpl.
now rewrite Rplus_0_l.
-
intros n x.
unfold X',
T'.
rv_unfold.
rewrite H;
lra.
-
intros.
unfold T',
X',
rvabs.
now do 2
rewrite rvminus_unfold.
Qed.
Theorem Dvoretzky_DS_extended_theta (
theta :
R)
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega,
Rabs (
T n omega -
theta) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
Rabs (
X n omega -
theta)) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega)))->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega)
theta).
Proof.
intros.
pose (
X' :=
fun n =>
rvminus (
X n) (
const theta)).
pose (
T' :=
fun n =>
rvminus (
T n) (
const theta)).
assert (
adaptX' :
IsAdapted borel_sa X'
F).
{
unfold IsAdapted,
X';
intros.
apply rvminus_rv;
trivial.
typeclasses eauto.
}
assert (
adaptT' :
IsAdapted borel_sa T'
F).
{
unfold IsAdapted,
T';
intros.
apply rvminus_rv;
trivial.
typeclasses eauto.
}
generalize (
Dvoretzky_DS_extended X'
Y T'
isfilt filt_sub hpos1 hpos2 hpos3 rvy);
intros.
cut_to H6;
trivial.
-
revert H6.
apply almost_impl,
all_almost;
intros ??.
unfold X'
in H6.
unfold rvminus,
const,
rvplus,
rvopp,
rvscale in H6.
apply is_lim_seq_ext with
(
u :=
fun n => (
X n x + -1 *
theta) +
theta).
+
intros;
lra.
+
apply is_lim_seq_plus with (
l1 := 0) (
l2 :=
theta);
trivial.
*
apply is_lim_seq_const.
*
unfold is_Rbar_plus;
simpl.
now rewrite Rplus_0_l.
-
intros n x.
unfold X',
T'.
rv_unfold.
rewrite H;
lra.
-
intros.
unfold T',
X',
rvabs.
now do 2
rewrite rvminus_unfold.
Qed.
Theorem Dvoretzky_DS_scale_prop
(
X :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
alpha beta gamma :
nat ->
R}
(
hpos1 :
forall n , 0 <=
alpha n)
(
hpos2 :
forall n , 0 <=
beta n )
(
hpos3 :
forall n , 0 <=
gamma n) :
(
forall n omega,
Rabs (
T n omega) <=
Rmax (
alpha n) ((1+
beta n -
gamma n)*(
Rabs (
X n omega)))) ->
is_lim_seq alpha 0 ->
ex_series beta ->
is_lim_seq (
sum_n gamma)
p_infty ->
exists (
alpha2 gamma2 :
nat ->
R),
(
forall n, 0 <=
alpha2 n) /\
(
forall n, 0 <=
gamma2 n) /\
is_lim_seq alpha2 0 /\
is_lim_seq (
sum_n gamma2)
p_infty /\
forall n omega,
Rabs (
T n omega) <=
Rmax (
alpha2 n) ((1+
beta n)*(
Rabs (
X n omega)) -
gamma2 n).
Proof.
Lemma no_best_diverge_fun (
gamma :
nat ->
Ts ->
R) :
(
forall n omega, 0 <=
gamma n omega) ->
(
forall omega,
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
exists (
rho :
nat ->
Ts ->
posreal),
forall omega,
is_lim_seq (
fun n =>
rho n omega) 0 /\
is_lim_seq (
sum_n (
fun n =>
rho n omega *
gamma n omega))
p_infty.
Proof.
intros gpos glim.
generalize (
fun omega =>
no_best_diverge (
fun n =>
gamma n omega)
(
fun n =>
gpos n omega)
(
glim omega));
intros.
apply ClassicalChoice.choice in H.
destruct H as [
f ?].
exists (
fun n omega =>
f omega n).
apply H.
Qed.
Lemma no_best_diverge_stochastic (
gamma :
nat ->
Ts ->
R) :
(
forall n omega, 0 <=
gamma n omega) ->
almost _ (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
exists (
rho :
nat ->
Ts ->
posreal),
almost _ (
fun omega =>
is_lim_seq (
fun n =>
rho n omega) 0) /\
almost _ (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
rho n omega *
gamma n omega))
p_infty).
Proof.
intros gpos glim.
destruct glim as [
p [
pone pH]].
destruct (
no_best_diverge_fun
(
fun n ts =>
if classic_dec p ts then
gamma n ts
else 1))
as [
rho HH].
-
intros;
match_destr.
lra.
-
intros;
match_destr.
+
now apply pH.
+
generalize is_lim_seq_INR;
intros HH.
apply is_lim_seq_incr_1 in HH.
revert HH.
apply is_lim_seq_proper;
trivial;
intros ?.
rewrite sum_n_const;
lra.
-
exists rho;
split.
+
exists p;
split;
trivial;
intros.
now destruct (
HH x)
as [
HH1 _].
+
exists p;
split;
trivial;
intros.
destruct (
HH x)
as [
_ HH2].
match_destr_in HH2;
tauto.
Qed.
Theorem Dvoretzky_DS_scale_prop_stochastic
(
X :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n omega , 0 <=
alpha n omega)
(
hpos2 :
forall n omega, 0 <=
beta n omega)
(
hpos3 :
forall n omega, 0 <=
gamma n omega) :
(
forall n omega,
Rabs (
T n omega) <=
Rmax (
alpha n omega) ((1+
beta n omega -
gamma n omega)*(
Rabs (
X n omega)))) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost _ (
fun omega =>
ex_series (
fun n =>
beta n omega)) ->
almost _ (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
exists (
alpha2 gamma2 :
nat ->
Ts ->
R),
(
forall n omega, 0 <=
alpha2 n omega) /\
(
forall n omega, 0 <=
gamma2 n omega) /\
almost _ (
fun omega =>
is_lim_seq (
fun n =>
alpha2 n omega) 0) /\
almost _ (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma2 n omega))
p_infty) /\
forall n omega,
Rabs (
T n omega) <=
Rmax (
alpha2 n omega) ((1+
beta n omega)*(
Rabs (
X n omega)) -
gamma2 n omega).
Proof.
Let DS_X (
X0:
Ts->
R) (
T Y:
nat->
Ts->
R) (
n:
nat) :=
match n with
| 0%
nat =>
X0
|
S m => (
rvplus (
T m) (
Y m))
end.
Corollary Dvoretzky_DS_extended_simpl
(
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa (
DS_X X0 T Y)
F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
rvabs (
T n)
omega) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs (
DS_X X0 T Y n)
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n => (
DS_X X0 T Y)
n omega) 0).
Proof.
intros.
eapply (
Dvoretzky_DS_extended (
DS_X X0 T Y)
Y T isfilt filt_sub hpos1 hpos2 hpos3 rvy);
simpl;
trivial
;
reflexivity.
Qed.
Corollary Dvoretzky_DS_extended_vector
(
X Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat),
vector R (
S n) ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa (
fun n ts =>
T n ((
vector_create 0 (
S n) (
fun m _ _ =>
X m ts)))
ts)
F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
fun ts =>
T n (
vector_create 0 (
S n) (
fun m _ _ =>
X m ts))
ts) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n v omega, (
rvabs (
T n v)
omega) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs (
X n)
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega) 0).
Proof.
intros.
eapply (
Dvoretzky_DS_extended
X Y
(
fun n ts =>
T n (
vector_create 0 (
S n) (
fun m _ _ =>
X m ts))
ts)
isfilt filt_sub
hpos1 hpos2 hpos3
);
trivial.
intros;
apply H1.
Qed.
Corollary Dvoretzky_DS_extended1
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
R ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa (
fun n ts =>
T n (
X n ts)
ts)
F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
fun ts =>
T n (
X n ts)
ts) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n v omega, (
rvabs (
T n v)
omega) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs (
X n)
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega) 0).
Proof.
intros.
eapply (
Dvoretzky_DS_extended
X Y
(
fun n ts =>
T n (
X n ts)
ts)
isfilt filt_sub
hpos1 hpos2 hpos3
);
trivial.
-
intros;
apply H1.
Qed.
Fixpoint DS_X1 (
X0:
Ts->
R) (
T:
nat->(
R*
Ts)->
R) (
Y:
nat->
Ts->
R) (
n:
nat) :
Ts ->
R :=
match n with
| 0%
nat =>
X0
|
S m => (
rvplus (
fun ts =>
T m ((
DS_X1 X0 T Y m ts),
ts)) (
Y m))
end.
Corollary Dvoretzky_DS_extended_simple1
(
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
nat -> (
R *
Ts) ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa (
DS_X1 X0 T Y)
F}
{
rvT:
IsAdapted borel_sa T (
fun n =>
product_sa borel_sa (
F n))}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
Rabs (
T n (
DS_X1 X0 T Y n omega,
omega))) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs ((
DS_X1 X0 T Y n))
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n => (
DS_X1 X0 T Y n omega)) 0).
Proof.
Fixpoint DS_Xn_v (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R) (
n:
nat) :
Ts ->
vector R (
S n) :=
match n with
| 0%
nat =>
fun ts =>
vector_singleton (
X0 ts)
|
S m =>
let prefix :=
DS_Xn_v X0 T Y m in
fun ts =>
vector_add_to_end
(
T (
S m) (
prefix ts,
ts) +
Y m ts) (
prefix ts)
end.
Definition DS_Xn (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R) (
n:
nat) :
Ts ->
R
:=
fun ts =>
vector_nth n (
Nat.lt_succ_diag_r _) (
DS_Xn_v X0 T Y n ts).
Definition DS_Tn (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R) (
n:
nat)
ts :
R
:=
T (
S n) (
DS_Xn_v X0 T Y n ts,
ts).
Corollary Dvoretzky_DS_extended_simple_vec
(
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat), (
vector R n*
Ts)->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa (
DS_Xn X0 T Y)
F}
{
adaptT :
IsAdapted borel_sa (
DS_Tn X0 T Y)
F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
Rabs (
DS_Tn X0 T Y n omega)) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
rvabs ((
DS_Xn X0 T Y n))
omega) -
gamma n omega)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n => (
DS_Xn X0 T Y n omega)) 0).
Proof.
Lemma DS_Xn_v_same_prefix_plus_helper (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R)
(
m n i:
nat)
pf1 pf2 ts :
vector_nth i pf1 (
DS_Xn_v X0 T Y (
m+
n)
ts) =
vector_nth i pf2 (
DS_Xn_v X0 T Y n ts).
Proof.
Lemma DS_Xn_v_same_prefix_le_helper (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R)
(
m n i:
nat)
pf1 pf2 ts : (
n <=
m)%
nat ->
vector_nth i pf1 (
DS_Xn_v X0 T Y m ts) =
vector_nth i pf2 (
DS_Xn_v X0 T Y n ts).
Proof.
Theorem DS_Xn_v_same_prefix (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n*
Ts)->
R) (
Y:
nat->
Ts->
R)
(
m n i:
nat)
pf1 pf2 ts :
vector_nth i pf1 (
DS_Xn_v X0 T Y m ts) =
vector_nth i pf2 (
DS_Xn_v X0 T Y n ts).
Proof.
Fixpoint DS_Xnd_v (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n)->
R) (
Y:
nat->
Ts->
R) (
n:
nat) :
Ts ->
vector R (
S n) :=
match n with
| 0%
nat =>
fun ts =>
vector_singleton (
X0 ts)
|
S m =>
let prefix :=
DS_Xnd_v X0 T Y m in
fun ts =>
vector_add_to_end
(
T (
S m) (
prefix ts) +
Y m ts) (
prefix ts)
end.
Definition DS_Xdn (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n)->
R) (
Y:
nat->
Ts->
R) (
n:
nat) :
Ts ->
R
:=
fun ts =>
vector_nth n (
Nat.lt_succ_diag_r _) (
DS_Xnd_v X0 T Y n ts).
Definition DS_Tdn (
X0:
Ts->
R) (
T:
forall (
n:
nat), (
vector R n)->
R) (
Y:
nat->
Ts->
R) (
n:
nat)
ts :
R
:=
T (
S n) (
DS_Xnd_v X0 T Y n ts).
Instance vector_singleton_rv :
RandomVariable borel_sa (
Rvector_borel_sa 1)
vector_singleton.
Proof.
Instance DS_Xdn_v_rv (
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat),
vector R n->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
rvT:(
forall n,
RandomVariable (
Rvector_borel_sa n)
borel_sa (
T n))}
{
adaptX :
IsAdapted borel_sa (
DS_Xdn X0 T Y)
F} :
forall n,
RandomVariable (
F n) (
Rvector_borel_sa (
S n)) (
DS_Xnd_v X0 T Y n).
Proof.
Instance DS_Tdn_adapted (
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat),
vector R n->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
rvT:(
forall n,
RandomVariable (
Rvector_borel_sa n)
borel_sa (
T n))}
{
adaptX :
IsAdapted borel_sa (
DS_Xdn X0 T Y)
F} :
IsAdapted borel_sa (
DS_Tdn X0 T Y)
F.
Proof.
Corollary Dvoretzky_DS_simple_vec
(
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat),
vector R n->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
rvT:(
forall n,
RandomVariable (
Rvector_borel_sa n)
borel_sa (
T n))}
{
adaptX :
IsAdapted borel_sa (
DS_Xdn X0 T Y)
F}
{
alpha beta gamma :
nat ->
R}
(
hpos1 :
forall n, 0 <=
alpha n)
(
hpos2 :
forall n, 0 <=
beta n)
(
hpos3 :
forall n, 0 <=
gamma n)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
Rabs (
DS_Tdn X0 T Y n omega)) <=
Rmax (
alpha n) ((1+
beta n)*(
rvabs ((
DS_Xdn X0 T Y n))
omega) -
gamma n)) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
is_lim_seq alpha 0 ->
ex_finite_lim_seq (
sum_n beta) ->
is_lim_seq (
sum_n gamma)
p_infty ->
almost _ (
fun omega =>
is_lim_seq (
fun n => (
DS_Xdn X0 T Y n omega)) 0).
Proof.
Theorem Dvoretzky_DS_extended_alt
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega,
Rabs (
T n omega) <=
Rmax (
alpha n omega) ((1+
beta n omega -
gamma n omega)*(
Rabs (
X n omega)))) ->
ex_series (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_series (
fun n =>
beta n omega))->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega) 0).
Proof.
Theorem Dvoretzky_DS_extended_alt_theta (
theta :
R)
(
X Y :
nat ->
Ts ->
R)
(
T :
nat ->
Ts ->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa X F}
{
adaptT :
IsAdapted borel_sa T F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
(
forall (
n:
nat),
rv_eq (
X (
S n)) (
rvplus (
T n) (
Y n))) ->
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega,
Rabs (
T n omega -
theta) <=
Rmax (
alpha n omega) ((1+
beta n omega -
gamma n omega)*(
Rabs (
X n omega -
theta)))) ->
ex_series (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_series (
fun n =>
beta n omega))->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n =>
X n omega)
theta).
Proof.
Corollary Dvoretzky_DS_extended_alt_simple_vec_theta (
theta :
R)
(
X0:
Ts->
R)
(
Y :
nat ->
Ts ->
R)
(
T :
forall (
n:
nat), (
vector R n*
Ts)->
R)
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
{
adaptX :
IsAdapted borel_sa (
DS_Xn X0 T Y)
F}
{
adaptT :
IsAdapted borel_sa (
DS_Tn X0 T Y)
F}
{
alpha beta gamma :
nat ->
Ts ->
R}
(
hpos1 :
forall n x, 0 <=
alpha n x)
(
hpos2 :
forall n x, 0 <=
beta n x )
(
hpos3 :
forall n x, 0 <=
gamma n x)
(
rvy :
forall n,
RandomVariable dom borel_sa (
Y n))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
Y n))} :
let X := (
DS_Xn X0 T Y)
in
let T' := (
DS_Tn X0 T Y)
in
(
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
Y n))
(
fun x :
Ts =>
const 0
x)) ->
(
forall n omega, (
Rabs (
T'
n omega -
theta)) <=
Rmax (
alpha n omega) ((1+
beta n omega-
gamma n omega)*(
Rabs (
X n omega -
theta)))) ->
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
Y n)))) ->
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0) ->
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))) ->
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty) ->
almost _ (
fun omega =>
is_lim_seq (
fun n => (
X n omega))
theta).
Proof.
End Derman_Sacks.
Section Results.
Corollary Dvoretzky_DS_simple_vec_theta
{
Ts :
Type}
{
dom:
SigmaAlgebra Ts}
{
prts:
ProbSpace dom}
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
(
X0:
Ts ->
R)
(
W :
nat ->
Ts ->
R)
(
rvW :
forall n,
RandomVariable dom borel_sa (
W n))
(
T :
forall n,
vector R n->
R)
{
rvT:
forall n, (
RandomVariable (
Rvector_borel_sa n)
borel_sa (
T n))}
{
adaptX :
let X' :=
DS_Xdn X0 T W in IsAdapted borel_sa X'
F}
(
H7 :
forall n,
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
W n)) (
const 0))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
W n))}
(
H8 :
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
W n)))))
{
alpha beta gamma :
nat ->
R}
(
H10 :
forall n, 0 <=
alpha n)
(
H11 :
forall n, 0 <=
beta n)
(
H12 :
forall n, 0 <=
gamma n)
(
H13 :
is_lim_seq alpha 0)
(
H14 :
ex_finite_lim_seq (
sum_n beta))
(
H15 :
is_lim_seq (
sum_n gamma)
p_infty)
(
theta :
R)
(
H16 :
let T' :=
DS_Tdn X0 T W in
let X' :=
DS_Xdn X0 T W in
forall n omega, (
Rabs (
T'
n omega -
theta)) <=
Rmax (
alpha n) ((1+
beta n)*(
Rabs (
X'
n omega -
theta)) -
gamma n))
:
let X' :=
DS_Xdn X0 T W in
almost _ (
fun omega =>
is_lim_seq (
fun n => (
X'
n omega))
theta).
Proof.
Corollary Dvoretzky_DS_extended_simple_vec_theta
{
Ts :
Type}
{
dom:
SigmaAlgebra Ts}
{
prts:
ProbSpace dom}
{
F :
nat ->
SigmaAlgebra Ts}
(
isfilt :
IsFiltration F)
(
filt_sub :
forall n,
sa_sub (
F n)
dom)
(
X0:
Ts->
R)
(
W :
nat ->
Ts ->
R)
(
rvW :
forall n,
RandomVariable dom borel_sa (
W n))
(
T :
forall (
n:
nat), (
vector R n*
Ts)->
R)
{
adaptX :
let X' :=
DS_Xn X0 T W in IsAdapted borel_sa X'
F}
{
adaptT :
let T' :=
DS_Tn X0 T W in IsAdapted borel_sa T'
F}
(
H7 :
forall (
n:
nat),
almostR2 prts eq (
ConditionalExpectation _ (
filt_sub n) (
W n)) (
const 0))
{
svy2 :
forall n,
IsFiniteExpectation prts (
rvsqr (
W n))}
(
H8 :
ex_finite_lim_seq (
sum_n (
fun n =>
FiniteExpectation _ (
rvsqr (
W n)))))
{
alpha beta gamma :
nat ->
Ts ->
R}
(
H10 :
forall n x, 0 <=
alpha n x)
(
H11 :
forall n x, 0 <=
beta n x )
(
H12 :
forall n x, 0 <=
gamma n x)
(
H13 :
almost prts (
fun omega =>
is_lim_seq (
fun n =>
alpha n omega) 0))
(
H14 :
almost prts (
fun omega =>
ex_finite_lim_seq (
sum_n (
fun n =>
beta n omega))))
(
H15 :
almost prts (
fun omega =>
is_lim_seq (
sum_n (
fun n =>
gamma n omega))
p_infty))
(
theta :
R)
(
H16:
let T' :=
DS_Tn X0 T W in
let X' :=
DS_Xn X0 T W in
forall n omega, (
Rabs (
T'
n omega -
theta)) <=
Rmax (
alpha n omega) ((1+
beta n omega)*(
Rabs (
X'
n omega -
theta)) -
gamma n omega))
:
let X' :=
DS_Xn X0 T W in
almost _ (
fun omega =>
is_lim_seq (
fun n => (
X'
n omega))
theta).
Proof.
End Results.