Skip to content

Commit eed7915

Browse files
Monotone functions are measurable (#1788)
* mono is measurable --------- Co-authored-by: Reynald Affeldt <[email protected]>
1 parent 1f46280 commit eed7915

File tree

2 files changed

+42
-14
lines changed

2 files changed

+42
-14
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@
6666
+ definition `giry_prod`
6767
+ lemmas `measurable_giry_prod`, `giry_int_prod1`, `giry_int_prod2`
6868

69+
- in `measurable_realfun.v`:
70+
+ lemmas `measurable_funN`
71+
+ lemmas `nondecreasing_measurable`, `nonincreasing_measurable`
72+
6973
### Changed
7074

7175
- in `charge.v`:

theories/measurable_realfun.v

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,15 @@ Notation measurable_oppr := oppr_measurable (only parsing).
906906
#[deprecated(since="mathcomp-analysis 1.4.0", note="use `normr_measurable` instead")]
907907
Notation measurable_normr := normr_measurable (only parsing).
908908

909+
Lemma measurable_funX d (T : measurableType d) {R : realType} D (f : T -> R) n :
910+
measurable_fun D f -> measurable_fun D (fun x => f x ^+ n).
911+
Proof.
912+
move=> mf.
913+
exact: (@measurable_comp _ _ _ _ _ _ setT (fun x : R => x ^+ n) _ f).
914+
Qed.
915+
#[deprecated(since="mathcomp-analysis 1.4.0", note="use `measurable_funX` instead")]
916+
Notation measurable_fun_pow := measurable_funX (only parsing).
917+
909918
Section measurable_fun_realType.
910919
Context d (T : measurableType d) (R : realType).
911920
Implicit Types (D : set T) (f g : T -> R).
@@ -932,6 +941,9 @@ Lemma measurable_funB D f g : measurable_fun D f ->
932941
measurable_fun D g -> measurable_fun D (f \- g).
933942
Proof. by move=> ? ?; apply: measurable_funD =>//; exact: measurableT_comp. Qed.
934943

944+
Lemma measurable_funN D f : measurable_fun D f -> measurable_fun D (\- f).
945+
Proof. by move=> ?; rewrite -/(GRing.opp \o f); exact: measurableT_comp. Qed.
946+
935947
Lemma measurable_funM D f g :
936948
measurable_fun D f -> measurable_fun D g -> measurable_fun D (f \* g).
937949
Proof.
@@ -942,11 +954,9 @@ have ->: f \* g = (fun x => 2%:R^-1 * (f x + g x) ^+ 2)
942954
by rewrite -[_ + (_ ^+ 2)]addrA addrCA addrK [RHS]mulrC -mulr_natr mulfK.
943955
apply: measurable_funB; first apply: measurable_funB.
944956
- apply: measurableT_comp => //.
945-
by apply: measurableT_comp (exprn_measurable _) _; exact: measurable_funD.
946-
- apply: measurableT_comp => //.
947-
exact: measurableT_comp (exprn_measurable _) _.
948-
apply: measurableT_comp => //.
949-
exact: measurableT_comp (exprn_measurable _) _.
957+
by apply: measurable_funX; exact: measurable_funD.
958+
- by apply: measurableT_comp => //; exact: measurable_funX.
959+
by apply: measurableT_comp => //; exact: measurable_funX.
950960
Qed.
951961

952962
Lemma measurable_fun_ltr D f g : measurable_fun D f -> measurable_fun D g ->
@@ -1073,6 +1083,29 @@ Qed.
10731083

10741084
End measurable_fun_realType.
10751085

1086+
Section mono_measurable.
1087+
Context {R : realType}.
1088+
1089+
Lemma nondecreasing_measurable (D : set R) (f : R -> R) : measurable D ->
1090+
nondecreasing_fun f -> measurable_fun D f.
1091+
Proof.
1092+
move=> mD f_nd.
1093+
apply: (measurability (@RGenCInfty.G R)) => [|/= _ [_] [r] -> <-].
1094+
exact: RGenCInfty.measurableE.
1095+
apply: measurableI => //; apply: is_interval_measurable => s t/=.
1096+
rewrite !in_itv/= !andbT => fs ft u /andP[su ut].
1097+
by rewrite in_itv/= andbT (le_trans fs)// f_nd.
1098+
Qed.
1099+
1100+
Lemma nonincreasing_measurable (D : set R) (f : R -> R) : measurable D ->
1101+
nonincreasing_fun f -> measurable_fun D f.
1102+
Proof.
1103+
move=> mD f_ni; rewrite -(opprK f); apply/measurable_funN.
1104+
by apply: nondecreasing_measurable => // s t st; rewrite lerN2 f_ni.
1105+
Qed.
1106+
1107+
End mono_measurable.
1108+
10761109
Lemma measurable_ln (R : realType) : measurable_fun [set: R] (@ln R).
10771110
Proof.
10781111
rewrite -set_itvNyy (@itv_bndbnd_setU _ _ _ (BRight 0))//.
@@ -1176,15 +1209,6 @@ under eq_fun do rewrite -mulr_natr.
11761209
by do 2 apply: measurable_funM => //.
11771210
Qed.
11781211

1179-
Lemma measurable_funX d (T : measurableType d) {R : realType} D (f : T -> R) n :
1180-
measurable_fun D f -> measurable_fun D (fun x => f x ^+ n).
1181-
Proof.
1182-
move=> mf.
1183-
exact: (@measurable_comp _ _ _ _ _ _ setT (fun x : R => x ^+ n) _ f).
1184-
Qed.
1185-
#[deprecated(since="mathcomp-analysis 1.4.0", note="use `measurable_funX` instead")]
1186-
Notation measurable_fun_pow := measurable_funX (only parsing).
1187-
11881212
Lemma measurable_powR (R : realType) p : measurable_fun [set: R] (@powR R ^~ p).
11891213
Proof.
11901214
apply: measurable_fun_ifT => //.

0 commit comments

Comments
 (0)