@@ -906,6 +906,15 @@ Notation measurable_oppr := oppr_measurable (only parsing).
906906#[deprecated(since="mathcomp-analysis 1.4.0", note="use `normr_measurable` instead")]
907907Notation 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+
909918Section measurable_fun_realType.
910919Context d (T : measurableType d) (R : realType).
911920Implicit 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).
933942Proof . 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+
935947Lemma measurable_funM D f g :
936948 measurable_fun D f -> measurable_fun D g -> measurable_fun D (f \* g).
937949Proof .
@@ -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.
943955apply: 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.
950960Qed .
951961
952962Lemma measurable_fun_ltr D f g : measurable_fun D f -> measurable_fun D g ->
@@ -1073,6 +1083,29 @@ Qed.
10731083
10741084End 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+
10761109Lemma measurable_ln (R : realType) : measurable_fun [set: R] (@ln R).
10771110Proof .
10781111rewrite -set_itvNyy (@itv_bndbnd_setU _ _ _ (BRight 0))//.
@@ -1176,15 +1209,6 @@ under eq_fun do rewrite -mulr_natr.
11761209by do 2 apply: measurable_funM => //.
11771210Qed .
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-
11881212Lemma measurable_powR (R : realType) p : measurable_fun [set: R] (@powR R ^~ p).
11891213Proof .
11901214apply: measurable_fun_ifT => //.
0 commit comments