Skip to content

Commit a5018df

Browse files
committed
addressing comments
1 parent d998efb commit a5018df

17 files changed

+128
-138
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
+ defintions `funrpos`, `funrneg` with notations `^\+` and `^\-`
118118
+ lemmas `funrpos_ge0`, `funrneg_ge0`, `funrposN`, `funrnegN`, `ge0_funrposE`,
119119
`ge0_funrnegE`, `le0_funrposE`, `le0_funrnegE`, `ge0_funrposM`, `ge0_funrnegM`,
120-
`le0_funrposM`, `le0_funrnegM`, `funr_normr`, `funrposneg`, `funrD_Dpos`,
120+
`le0_funrposM`, `le0_funrnegM`, `funrposDneg`, `funrposBneg`,
121121
`funrD_posD`, `funrpos_le`, `funrneg_le`
122122
+ lemmas `funerpos`, `funerneg`
123123

@@ -157,6 +157,12 @@
157157
`ge0_independent_expectationM`, `independent_Lfun1_expectationM_lty`,
158158
`independent_Lfun1M`, `independent_expectationM`
159159

160+
- in `functions.v`:
161+
+ lemma `addBrfctE`
162+
163+
- in `ereal.v`:
164+
+ lemma `ge0_addBefctE`
165+
160166
### Changed
161167

162168
- in `charge.v`:
@@ -210,6 +216,11 @@
210216
`bounded_variationN`, `bounded_variationl`, `bounded_variationr`,
211217
`variations_opp`, `nondecreasing_bounded_variation`
212218

219+
- in `numfun.v`:
220+
+ `fune_abse` renamed to `funeposDneg` and direction of the equality changed
221+
+ `funeposneg` renamed to `funeposBneg` and direction of the equality changed
222+
+ `funeD_posD` renamed to `funeDB` and direction of the equality changed
223+
213224
### Renamed
214225

215226
- in `probability.v`:

classical/functions.v

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From mathcomp Require Import all_ssreflect finmap ssralg ssrnum ssrint rat.
33
From HB Require Import structures.
44
From mathcomp Require Import mathcomp_extra unstable boolp classical_sets.
@@ -2700,6 +2700,10 @@ Proof. by elim: n => [//|n h]; rewrite funeqE=> ?; rewrite !mulrSr h. Qed.
27002700
Lemma opprfctE (T : Type) (K : zmodType) (f : T -> K) : - f = (fun x => - f x).
27012701
Proof. by []. Qed.
27022702

2703+
Lemma addBrfctE (U : Type) (K : zmodType) :
2704+
@interchange (U -> K) (fun a b => a - b) (fun a b => a + b).
2705+
Proof. by move=> a b c d; apply/funext => x; rewrite addrACA -opprD. Qed.
2706+
27032707
Lemma mulrfctE (T : Type) (K : pzRingType) (f g : T -> K) :
27042708
f * g = (fun x => f x * g x).
27052709
Proof. by []. Qed.

classical/unstable.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2022 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From mathcomp Require Import all_ssreflect finmap ssralg ssrnum ssrint.
33
From mathcomp Require Import archimedean interval mathcomp_extra.
44

reals/constructive_ereal.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
(* -------------------------------------------------------------------- *)
33
(* Copyright (c) - 2015--2016 - IMDEA Software Institute *)
44
(* Copyright (c) - 2015--2018 - Inria *)

theories/charge.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval.
44
From mathcomp Require Import finmap fingroup perm rat.
@@ -2174,7 +2174,7 @@ Lemma Radon_Nikodym_change_of_variables f E : measurable E ->
21742174
\int[mu]_(x in E) (f x * ('d (charge_of_finite_measure nu) '/d mu) x) =
21752175
\int[nu]_(x in E) f x.
21762176
Proof.
2177-
move=> mE mf; rewrite [in RHS](funeposneg f) integralB //; last 2 first.
2177+
move=> mE mf; rewrite -[in RHS](funeposBneg f) integralB //; last 2 first.
21782178
- exact: integrable_funepos.
21792179
- exact: integrable_funeneg.
21802180
transitivity (\int[mu]_(x in E) (f x * Radon_Nikodym_SigmaFinite.f nu mu x)).
@@ -2186,7 +2186,7 @@ transitivity (\int[mu]_(x in E) (f x * Radon_Nikodym_SigmaFinite.f nu mu x)).
21862186
exact: measurable_int (Radon_Nikodym_SigmaFinite.f_integrable _).
21872187
- apply: ae_eqe_mul2l.
21882188
exact/ae_eq_sym/ae_eq_Radon_Nikodym_SigmaFinite.
2189-
rewrite [in LHS](funeposneg f).
2189+
rewrite -[in LHS](funeposBneg f).
21902190
under [in LHS]eq_integral => x xE. rewrite muleBl; last 2 first.
21912191
- exact: Radon_Nikodym_SigmaFinite.f_fin_num.
21922192
- exact: add_def_funeposneg.

theories/ereal.v

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
(* -------------------------------------------------------------------- *)
33
(* Copyright (c) - 2015--2016 - IMDEA Software Institute *)
44
(* Copyright (c) - 2015--2018 - Inria *)
@@ -58,11 +58,16 @@ Import numFieldTopology.Exports.
5858
From mathcomp Require Import mathcomp_extra unstable.
5959

6060
Local Open Scope ring_scope.
61-
6261
Local Open Scope ereal_scope.
63-
6462
Local Open Scope classical_set_scope.
6563

64+
Lemma ge0_addBefctE (T : Type) (R : realDomainType) (a b c d : T -> \bar R) :
65+
(forall x, 0 <= c x) -> (forall x, 0 <= d x) ->
66+
a + b \- (c + d) = a \- c + (b \- d).
67+
Proof.
68+
by move=> ? ?; apply/funext=> x; rewrite !fctE addeACA oppeD ?ge0_adde_def ?inE.
69+
Qed.
70+
6671
Lemma EFin_bigcup T (F : nat -> set T) :
6772
EFin @` (\bigcup_i F i) = \bigcup_i (EFin @` F i).
6873
Proof.

theories/esum.v

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From mathcomp Require Import all_ssreflect ssralg ssrnum finmap.
33
From mathcomp Require Import mathcomp_extra boolp classical_sets functions.
44
From mathcomp Require Import cardinality fsbigop reals ereal interval_inference.
@@ -507,14 +507,14 @@ Proof. by move=> Df; rewrite summableN; exact: summableD. Qed.
507507

508508
Lemma summable_funepos D f : summable D f -> summable D f^\+.
509509
Proof.
510-
apply: le_lt_trans; apply le_esum => t Dt.
511-
by rewrite -/((abse \o f) t) fune_abse gee0_abs// leeDl.
510+
apply: le_lt_trans; apply: le_esum => t Dt.
511+
by rewrite -/((abse \o f) t) -funeposDneg gee0_abs// leeDl.
512512
Qed.
513513

514514
Lemma summable_funeneg D f : summable D f -> summable D f^\-.
515515
Proof.
516-
apply: le_lt_trans; apply le_esum => t Dt.
517-
by rewrite -/((abse \o f) t) fune_abse gee0_abs// leeDr.
516+
apply: le_lt_trans; apply: le_esum => t Dt.
517+
by rewrite -/((abse \o f) t) -funeposDneg gee0_abs// leeDr.
518518
Qed.
519519

520520
End summable_lemmas.
@@ -596,7 +596,7 @@ have -> : (C_ = A_ \- B_)%R.
596596
apply/funext => k.
597597
rewrite /= /A_ /C_ /B_ -sumrN -big_split/= -summable_fine_sum//.
598598
apply eq_bigr => i Pi; rewrite -fineB//.
599-
- by rewrite [in LHS](funeposneg f).
599+
- by rewrite -[in LHS](funeposBneg f).
600600
- by rewrite fin_num_abs (@summable_pinfty _ _ P) //; exact/summable_funepos.
601601
- by rewrite fin_num_abs (@summable_pinfty _ _ P) //; exact/summable_funeneg.
602602
by rewrite distrC; apply: hN; near: n; exists N.
@@ -653,14 +653,14 @@ rewrite [X in _ == X -> _]addeC -sube_eq; last 2 first.
653653
- rewrite fin_num_adde_defr// ge0_esum_posneg//.
654654
rewrite (@eq_esum _ _ _ _ (abse \o f))// -?summableE// => i Di.
655655
by rewrite /= gee0_abs// f0.
656-
rewrite -addeA addeCA eq_sym [X in _ == X -> _]addeC -sube_eq; last 2 first.
657-
- rewrite ge0_esum_posneg//.
658-
rewrite (@eq_esum _ _ _ _ (abse \o f))// -?summableE// => i Di.
659-
by rewrite /= gee0_abs// f0.
660-
- rewrite fin_num_adde_defl// ge0_esum_posneg//.
661-
rewrite (@eq_esum _ _ _ _ (abse \o g))// -?summableE// => i Di.
662-
by rewrite /= gee0_abs// g0.
663-
by rewrite ge0_esum_posneg// ge0_esum_posneg// => /eqP ->.
656+
rewrite -addeA addeCA eq_sym [X in _ == X -> _]addeC -sube_eq.
657+
- by rewrite ge0_esum_posneg// ge0_esum_posneg// => /eqP ->.
658+
- rewrite ge0_esum_posneg//.
659+
rewrite (@eq_esum _ _ _ _ (abse \o f))// -?summableE// => i Di.
660+
by rewrite /= gee0_abs// f0.
661+
- rewrite fin_num_adde_defl// ge0_esum_posneg//.
662+
rewrite (@eq_esum _ _ _ _ (abse \o g))// -?summableE// => i Di.
663+
by rewrite /= gee0_abs// g0.
664664
Qed.
665665

666666
End esumB.

theories/independence.v

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ From mathcomp Require Import hoelder.
1313
(**md**************************************************************************)
1414
(* # Independence *)
1515
(* *)
16+
(* The status of this file is experimental. *)
17+
(* *)
1618
(* ``` *)
1719
(* independent_events I F == the events F indexed by I are independent *)
1820
(* mutual_independence I F == the set systems F indexed by I are independent *)
@@ -946,9 +948,7 @@ Lemma independent_expectationM (X Y : {RV P >-> R}) :
946948
Proof.
947949
move=> XY iX iY.
948950
transitivity ('E_P[(X^\+ - X^\-) * (Y^\+ - Y^\-)]).
949-
congr ('E_P[_]).
950-
apply/funext => /=t.
951-
by rewrite [in LHS](funrposneg X)/= [in LHS](funrposneg Y).
951+
by rewrite !funrposBneg.
952952
have ? : X^\-%R \in Lfun P 1.
953953
apply/Lfun1_integrable; rewrite -funerneg; apply/integrable_funeneg => //.
954954
exact/Lfun1_integrable.
@@ -1003,7 +1003,7 @@ transitivity ('E_P[X^\+ - X^\-] * 'E_P[Y^\+ - Y^\-]).
10031003
- by rewrite -!expectationB.
10041004
- by rewrite fin_numB// !expectation_fin_num.
10051005
- by rewrite fin_num_adde_defr// expectation_fin_num.
1006-
by congr *%E; congr ('E_P[_]); rewrite [RHS]funrposneg.
1006+
by rewrite !funrposBneg.
10071007
Qed.
10081008

10091009
End product_expectation.

theories/lebesgue_integral_theory/lebesgue_integrable.v

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval finmap.
44
From mathcomp Require Import archimedean.
@@ -207,10 +207,9 @@ Proof. by move=> fi gi; exact/(integrableD fi)/integrableN. Qed.
207207
Lemma integrable_add_def f : mu_int f ->
208208
\int[mu]_(x in D) f^\+ x +? - (\int[mu]_(x in D) f^\- x).
209209
Proof.
210-
move=> /integrableP[mf]; rewrite -[fun x => _]/(abse \o f) fune_abse => foo.
211-
rewrite ge0_integralD // in foo; last 2 first.
212-
- exact: measurable_funepos.
213-
- exact: measurable_funeneg.
210+
move=> /integrableP[mf]; rewrite -[fun x => _]/(abse \o f) -funeposDneg => foo.
211+
rewrite ge0_integralD // in foo; [|exact: measurable_funepos
212+
|exact: measurable_funeneg].
214213
apply: ltpinfty_adde_def.
215214
- by apply: le_lt_trans foo; rewrite leeDl// integral_ge0.
216215
- by rewrite inE (@le_lt_trans _ _ 0)// leeNl oppe0 integral_ge0.
@@ -223,7 +222,7 @@ move=> /integrableP[Df foo]; apply/integrableP; split.
223222
apply: le_lt_trans foo; apply: ge0_le_integral => //.
224223
- by apply/measurableT_comp => //; exact: measurable_funepos.
225224
- exact/measurableT_comp.
226-
- by move=> t Dt; rewrite -/((abse \o f) t) fune_abse gee0_abs// leeDl.
225+
- by move=> t Dt; rewrite -/((abse \o f) t) -funeposDneg gee0_abs// leeDl.
227226
Qed.
228227

229228
Lemma integrable_funeneg f : mu_int f -> mu_int f^\-.
@@ -233,17 +232,16 @@ move=> /integrableP[Df foo]; apply/integrableP; split.
233232
apply: le_lt_trans foo; apply: ge0_le_integral => //.
234233
- by apply/measurableT_comp => //; exact: measurable_funeneg.
235234
- exact/measurableT_comp.
236-
- by move=> t Dt; rewrite -/((abse \o f) t) fune_abse gee0_abs// leeDr.
235+
- by move=> t Dt; rewrite -/((abse \o f) t) -funeposDneg gee0_abs// leeDr.
237236
Qed.
238237

239238
Lemma integral_funeneg_lt_pinfty f : mu_int f -> \int[mu]_(x in D) f^\- x < +oo.
240239
Proof.
241240
move=> /integrableP[mf]; apply: le_lt_trans; apply: ge0_le_integral => //.
242241
- exact: measurable_funeneg.
243242
- exact: measurableT_comp.
244-
- move=> x Dx; have [fx0|/ltW fx0] := leP (f x) 0.
245-
rewrite lee0_abs// funenegE.
246-
by move: fx0; rewrite -{1}oppe0 -leeNr => /max_idPl ->.
243+
- move=> x Dx; have /orP[fx0|fx0] := le_total (f x) 0.
244+
by rewrite lee0_abs// funenegE ge_max lexx leeNr oppe0 fx0.
247245
rewrite gee0_abs// funenegE.
248246
by move: (fx0); rewrite -{1}oppe0 -leeNl => /max_idPr ->.
249247
Qed.
@@ -268,7 +266,7 @@ rewrite fin_numElt; apply/andP; split.
268266
case: fi => mf; apply: le_lt_trans; apply: ge0_le_integral => //.
269267
- exact/measurable_funeneg.
270268
- exact/measurableT_comp.
271-
- by move=> x Dx; rewrite -/((abse \o f) x) (fune_abse f) leeDr.
269+
- by move=> x Dx; rewrite -/((abse \o f) x) -funeposDneg leeDr.
272270
Qed.
273271

274272
Lemma integrable_pos_fin_num f :
@@ -280,7 +278,7 @@ rewrite fin_numElt; apply/andP; split.
280278
case: fi => mf; apply: le_lt_trans; apply: ge0_le_integral => //.
281279
- exact/measurable_funepos.
282280
- exact/measurableT_comp.
283-
- by move=> x Dx; rewrite -/((abse \o f) x) (fune_abse f) leeDl.
281+
- by move=> x Dx; rewrite -/((abse \o f) x) -funeposDneg leeDl.
284282
Qed.
285283

286284
Lemma integrableMr (h : T -> R) g :
@@ -593,8 +591,8 @@ have : (g1 \+ g2)^\+ \+ g1^\- \+ g2^\- = (g1 \+ g2)^\- \+ g1^\+ \+ g2^\+.
593591
by rewrite !funeposE -!fine_max.
594592
by rewrite funeposE !funenegE -!fine_max.
595593
apply/eqP.
596-
rewrite -[LHS]/((g1^\+ \+ g2^\+ \- (g1^\- \+ g2^\-)) x) -funeD_posD.
597-
by rewrite -[RHS]/((_ \- _) x) -funeD_Dpos.
594+
rewrite -[LHS]/((g1^\+ \+ g2^\+ \- (g1^\- \+ g2^\-)) x) funeDB.
595+
by rewrite -[RHS]/((_ \- _) x) funeposBneg.
598596
move/(congr1 (fun y => \int[mu]_(x in D) (y x) )).
599597
rewrite (ge0_integralD mu mD); last 4 first.
600598
- by move=> x _; rewrite adde_ge0.
@@ -741,7 +739,7 @@ Local Open Scope ereal_scope.
741739
Lemma integrable_lty (f : T -> \bar R) :
742740
mu.-integrable D f -> \int[mu]_(x in D) f x < +oo.
743741
Proof.
744-
move=> intf; rewrite (funeposneg f) integralB//;
742+
move=> intf; rewrite -(funeposBneg f) integralB//;
745743
[|exact: integrable_funepos|exact: integrable_funeneg].
746744
rewrite lte_add_pinfty ?integral_funepos_lt_pinfty// lteNl ltNye_eq.
747745
by rewrite integrable_neg_fin_num.
@@ -799,7 +797,7 @@ rewrite -[X in _ = _ - X]ge0_integral_pushforward//; last first.
799797
rewrite -integralB//=; last first.
800798
- by apply: integrable_funeneg => //=; exact: integrable_pushforward.
801799
- by apply: integrable_funepos => //=; exact: integrable_pushforward.
802-
- by apply/eq_integral=> // x _; rewrite /= [in LHS](funeposneg f).
800+
- by apply/eq_integral=> // x _; rewrite -[in LHS](funeposBneg f).
803801
Qed.
804802

805803
End transfer.
@@ -813,7 +811,7 @@ Lemma negligible_integral (D N : set T) (f : T -> \bar R) :
813811
measurable N -> measurable D -> mu.-integrable D f ->
814812
mu N = 0 -> \int[mu]_(x in D) f x = \int[mu]_(x in D `\` N) f x.
815813
Proof.
816-
move=> mN mD mf muN0; rewrite [f]funeposneg ?integralB //; first last.
814+
move=> mN mD mf muN0; rewrite -[f]funeposBneg ?integralB//; first last.
817815
- exact: integrable_funeneg.
818816
- exact: integrable_funepos.
819817
- apply: (integrableS mD) => //; first exact: measurableD.
@@ -859,7 +857,7 @@ Lemma integral_measure_add : \int[measure_add m1 m2]_(x in D) f x =
859857
Proof.
860858
transitivity (\int[m1]_(x in D) (f^\+ \- f^\-) x +
861859
\int[m2]_(x in D) (f^\+ \- f^\-) x); last first.
862-
by congr +%E; apply: eq_integral => x _; rewrite [in RHS](funeposneg f).
860+
by congr +%E; apply: eq_integral => x _; rewrite -[in RHS](funeposBneg f).
863861
rewrite integralB//; [|exact: integrable_funepos|exact: integrable_funeneg].
864862
rewrite integralB//; [|exact: integrable_funepos|exact: integrable_funeneg].
865863
rewrite addeACA -ge0_integral_measure_add//; last first.
@@ -908,7 +906,7 @@ have ? : \int[mu]_(x in \bigcup_i F i) g x \is a fin_num.
908906
transitivity (\int[mu]_(x in \bigcup_i F i) g^\+ x -
909907
\int[mu]_(x in \bigcup_i F i) g^\- x)%E.
910908
rewrite -integralB.
911-
- by apply: eq_integral => t Ft; rewrite [in LHS](funeposneg g).
909+
- by apply: eq_integral => t Ft; rewrite -[in LHS](funeposBneg g).
912910
- exact: bigcupT_measurable.
913911
- by apply: integrable_funepos => //; exact: bigcupT_measurable.
914912
- by apply: integrable_funeneg => //; exact: bigcupT_measurable.

theories/lebesgue_integral_theory/lebesgue_integral_dominated_convergence.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* mathcomp analysis (c) 2025 Inria and AIST. License: CeCILL-C. *)
1+
(* mathcomp analysis (c) 2026 Inria and AIST. License: CeCILL-C. *)
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval finmap.
44
From mathcomp Require Import archimedean.
@@ -297,11 +297,11 @@ exists (fun n => p_ n - n_ n)%R; split.
297297
- move=> n; rewrite /comp; under eq_fun => ? do rewrite sfunB /= EFinB.
298298
by apply: integrableB => //; [exact: intp | exact: intn].
299299
- move=> ? ?; rewrite /comp; under eq_fun => ? do rewrite sfunB /= EFinB.
300-
rewrite [f]funeposneg; apply: cvgeB => //;[|exact: pf|exact:nf].
300+
rewrite -[f]funeposBneg; apply: cvgeB => //;[|exact: pf|exact:nf].
301301
exact: add_def_funeposneg.
302302
have fpn z n : f z - ((p_ n - n_ n) z)%:E =
303303
(f^\+ z - (p_ n z)%:E) - (f^\- z - (n_ n z)%:E).
304-
rewrite sfunB EFinB fin_num_oppeB // {1}[f]funeposneg -addeACA.
304+
rewrite sfunB EFinB fin_num_oppeB // -{1}[f]funeposBneg -addeACA.
305305
by congr (_ _); rewrite fin_num_oppeB.
306306
case/integrableP: (intf) => mf _.
307307
have mfpn n : mu.-integrable E (fun z => f z - ((p_ n - n_ n) z)%:E).

0 commit comments

Comments
 (0)