@@ -454,11 +454,13 @@ near: x; exists d => // z; rewrite /ball_/= => + zb.
454454by rewrite gtr0_norm// ?subr_gt0.
455455Unshelve. all: by end_near. Qed .
456456
457- Lemma parameterized_integral_continuous a b (f : R -> R) : a < b ->
457+ Lemma parameterized_integral_continuous a b (f : R -> R) : a <= b ->
458458 mu.-integrable `[a, b] (EFin \o f) ->
459459 {within `[a, b], continuous (fun x => int a x f)}.
460460Proof .
461- move=> ab intf; apply/(continuous_within_itvP _ ab); split; first last.
461+ rewrite le_eqVlt => /predU1P[<- _|ab intf].
462+ by rewrite set_itv1; exact: continuous_subspace1.
463+ apply/(continuous_within_itvP _ ab); split; first last.
462464 exact: parameterized_integral_cvg_at_left.
463465 apply/cvg_at_right_filter.
464466 rewrite {2}/int /parameterized_integral interval_set1 Rintegral_set1.
@@ -1048,7 +1050,7 @@ Context {R : realType}.
10481050Notation mu := lebesgue_measure.
10491051Implicit Types (F G f : R -> R) (a b : R).
10501052
1051- Lemma integration_by_substitution_decreasing F G a b : (a < b)%R ->
1053+ Lemma integration_by_substitution_decreasing F G a b : (a <= b)%R ->
10521054 {in `[a, b] &, {homo F : x y /~ (x < y)%R}} ->
10531055 {in `]a, b[, continuous F^`()} ->
10541056 cvg (F^`() x @[x --> a^'+]) ->
@@ -1058,6 +1060,7 @@ Lemma integration_by_substitution_decreasing F G a b : (a < b)%R ->
10581060 \int[mu]_(x in `[F b, F a]) (G x)%:E =
10591061 \int[mu]_(x in `[a, b]) (((G \o F) * - F^`()) x)%:E.
10601062Proof .
1063+ rewrite le_eqVlt => /predU1P[<- *|]; first by rewrite !set_itv1 !integral_set1.
10611064move=> ab decrF cF' /cvg_ex[/= r F'ar] /cvg_ex[/= l F'bl] Fab cG.
10621065have cF := derivable_oo_LRcontinuous_within Fab.
10631066have FbFa : (F b < F a)%R by apply: decrF; rewrite //= in_itv/= (ltW ab) lexx.
@@ -1083,15 +1086,15 @@ have PGFbFa : derivable_oo_LRcontinuous PG (F b) (F a).
10831086 apply: (continuous_FTC1 xFa intG _ _).1 => /=.
10841087 by move: xFbFa; rewrite lte_fin in_itv/= => /andP[].
10851088 exact: (within_continuous_continuous _ _ xFbFa).
1086- - have := parameterized_integral_continuous FbFa intG.
1089+ - have := parameterized_integral_continuous (ltW FbFa) intG.
10871090 by move=> /(continuous_within_itvP _ FbFa)[].
10881091 - exact: parameterized_integral_cvg_at_left.
10891092rewrite (@continuous_FTC2 _ _ PG _ _ FbFa cG); last 2 first.
10901093- split.
10911094 + move=> x /[dup]xFbFa; rewrite in_itv/= => /andP[Fbx xFa].
10921095 apply: (continuous_FTC1 xFa intG Fbx _).1.
10931096 by move: cG => /(continuous_within_itvP _ FbFa)[+ _ _]; exact.
1094- + have := parameterized_integral_continuous FbFa intG.
1097+ + have := parameterized_integral_continuous (ltW FbFa) intG.
10951098 by move=> /(continuous_within_itvP _ FbFa)[].
10961099 + exact: parameterized_integral_cvg_at_left.
10971100- move=> x xFbFa.
@@ -1180,7 +1183,7 @@ apply: eq_integral_itv_bounded.
11801183- by move=> x /[!inE] xab; rewrite mulrN !fctE fE.
11811184Unshelve. all: end_near. Qed .
11821185
1183- Lemma integration_by_substitution_oppr G a b : (a < b)%R ->
1186+ Lemma integration_by_substitution_oppr G a b : (a <= b)%R ->
11841187 {within `[(- b)%R, (- a)%R], continuous G} ->
11851188 \int[mu]_(x in `[(- b)%R, (- a)%R]) (G x)%:E =
11861189 \int[mu]_(x in `[a, b]) ((G \o -%R) x)%:E.
@@ -1199,7 +1202,7 @@ rewrite (@integration_by_substitution_decreasing -%R)//.
11991202 + by rewrite -at_rightN; exact: cvg_at_right_filter.
12001203Qed .
12011204
1202- Lemma integration_by_substitution_increasing F G a b : (a < b)%R ->
1205+ Lemma integration_by_substitution_increasing F G a b : (a <= b)%R ->
12031206 {in `[a, b] &, {homo F : x y / (x < y)%R}} ->
12041207 {in `]a, b[, continuous F^`()} ->
12051208 cvg (F^`() x @[x --> a^'+]) ->
@@ -1209,6 +1212,7 @@ Lemma integration_by_substitution_increasing F G a b : (a < b)%R ->
12091212 \int[mu]_(x in `[F a, F b]) (G x)%:E =
12101213 \int[mu]_(x in `[a, b]) (((G \o F) * F^`()) x)%:E.
12111214Proof .
1215+ rewrite le_eqVlt => /predU1P[<- *|]; first by rewrite !set_itv1 !integral_set1.
12121216move=> ab incrF cF' /cvg_ex[/= r F'ar] /cvg_ex[/= l F'bl] Fab cG.
12131217transitivity (\int[mu]_(x in `[F a, F b]) (((G \o -%R) \o -%R) x)%:E).
12141218 by apply/eq_integral => x ? /=; rewrite opprK.
@@ -1223,7 +1227,7 @@ have cGN : {within `[- F b, - F a]%classic%R, continuous (G \o -%R)}.
12231227 by rewrite /= opprK => /cvg_at_leftNP.
12241228 - move/(continuous_within_itvP _ FaFb) : cG => [_ + _].
12251229 by rewrite /= opprK => /cvg_at_rightNP.
1226- rewrite -integration_by_substitution_oppr//.
1230+ rewrite -( integration_by_substitution_oppr (ltW FaFb)) //.
12271231rewrite (@integration_by_substitution_decreasing (- F)%R); first last.
12281232- exact: cGN.
12291233- split; [|by apply: cvgN; case: Fab..].
@@ -1243,7 +1247,7 @@ rewrite (@integration_by_substitution_decreasing (- F)%R); first last.
12431247 near=> y; rewrite fctE !derive1E deriveN//.
12441248 by case: Fab => + _ _; apply; near: y; exact: near_in_itvoo.
12451249- by move=> x y xab yab yx; rewrite ltrN2 incrF.
1246- - by [] .
1250+ - exact/ltW .
12471251have mGF : measurable_fun `]a, b[ (G \o F).
12481252 apply: (@measurable_comp _ _ _ _ _ _ `]F a, F b[%classic) => //.
12491253 - move=> /= _ [x] /[!in_itv]/= /andP[ax xb] <-.
@@ -1398,7 +1402,7 @@ rewrite integration_by_substitution_decreasing.
13981402 rewrite measurable_funU//; split; last exact: measurable_fun_set1.
13991403 by apply: measurable_funS (mGFNF' n) => //; exact: subset_itv_oo_co.
14001404 + by apply: measurable_funS (mGFNF' n) => //; exact: subset_itv_oo_co.
1401- - by rewrite ltrDl .
1405+ - by rewrite lerDl .
14021406- move=> x y /=; rewrite !in_itv/= => /andP[ax _] /andP[ay _] yx.
14031407 by apply: decrF; rewrite //in_itv/= ?ax ?ay.
14041408- move=> x; rewrite in_itv/= => /andP[ax _].
@@ -1798,16 +1802,17 @@ Let mu := (@lebesgue_measure R).
17981802Local Open Scope ereal_scope.
17991803
18001804Lemma integration_by_substitution_onem (G : R -> R) (r : R) :
1801- (0 < r <= 1)%R ->
1805+ (0 <= r <= 1)%R ->
18021806 {within `[0%R, r], continuous G} ->
18031807 \int[mu]_(x in `[0%R, r]) (G x)%:E =
18041808 \int[mu]_(x in `[`1-r, 1%R]) (G `1-x)%:E.
18051809Proof .
1806- move=> r01 cG.
1810+ move=> /andP[]; rewrite le_eqVlt => /predU1P[<- *|r0 r1 cG].
1811+ by rewrite onem0 2!set_itv1 2!integral_set1.
18071812have := @integration_by_substitution_decreasing R onem G `1-r 1.
18081813rewrite onemK onem1 => -> //.
18091814- by apply: eq_integral => x xr; rewrite !fctE derive1_onem opprK mulr1.
1810- - by rewrite ltrBlDl ltrDr; case/andP : r01 .
1815+ - by rewrite lerBlDl lerDr ltW .
18111816- by move=> x y _ _ xy; rewrite ler_ltB.
18121817- by rewrite derive1_onem; move=> ? ?; exact: cvg_cst.
18131818- by rewrite derive1_onem; exact: is_cvg_cst.
@@ -1822,7 +1827,7 @@ rewrite onemK onem1 => -> //.
18221827Qed .
18231828
18241829Lemma Rintegration_by_substitution_onem (G : R -> R) (r : R) :
1825- (0 < r <= 1)%R ->
1830+ (0 <= r <= 1)%R ->
18261831 {within `[0%R, r], continuous G} ->
18271832 (\int[mu]_(x in `[0, r]) (G x) =
18281833 \int[mu]_(x in `[`1-r, 1]) (G `1-x))%R.
0 commit comments