Skip to content

Commit fae5628

Browse files
authored
split measure.v (#1719)
* split measure.v
1 parent 8715181 commit fae5628

27 files changed

+6179
-5661
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@
4747
+ definitions `next_prime`, `prime_seq`
4848
+ lemmas `leq_prime_seq`, `mem_prime_seq`
4949
+ theorem `dvg_sum_inv_prime_seq`
50+
- new directory `theories/measure_theory` with new files:
51+
+ `measurable_structure.v`
52+
+ `measure_function.v`
53+
+ `counting_measure.v`
54+
+ `dirac_measure.v`
55+
+ `probability_measure.v`
56+
+ `measure_negligible.v`
57+
+ `measure_extension.v`
58+
+ `measurable_function.v`
59+
+ `measure.v`
5060

5161
### Changed
5262

@@ -61,6 +71,238 @@
6171
- moved from `vitali_lemma.v` to `pseudometric_normed_Zmodule.v` and renamed:
6272
+ `closure_ball` -> `closure_ballE`
6373

74+
- moved from `theories/measure.v` (now removed)
75+
+ to `sequences.v`:
76+
* lemmas `epsilon_trick`, `epsilon_trick0`
77+
+ to `measure_theory/measurable_structure.v`:
78+
* definitions `setC_closed`, `setI_closed`, `setU_closed`, `setSD_closed`,
79+
`setD_closed`, `setY_closed`, `fin_bigcap_closed`, `finN0_bigcap_closed`,
80+
`fin_bigcup_closed`, `semi_setD_closed`
81+
* lemma `setD_semi_setD_closed`
82+
* definitions `ndseq_closed`, `niseq_closed`, `trivIset_closed`, `fin_trivIset_closed`,
83+
`setring`, `sigma_ring`, `sigma_algebra`, `dynkin`, `lambda_system`,
84+
`monotone`
85+
* lemmas `powerset_sigma_ring`, `powerset_lambda_system`
86+
* notations `<<l _, >>`, `<<l _ >>`, `<<d _ >>`, `<<s _, _>>`, `<<s _ >>`,
87+
`<<r _ >>`, `<<sr _ >>`, `<<M _ >>`
88+
* lemmas `lambda_system_smallest`, `fin_bigcup_closedP`, `finN0_bigcap_closedP`,
89+
`setD_closedP`, `sigma_algebra_bigcap`, `sigma_algebraP`, `smallest_sigma_algebra`,
90+
`sub_sigma_algebra2`, `sigma_algebra_id`, `sub_sigma_algebra`,
91+
`sigma_algebra0`, `sigma_algebraCD`, `sigma_algebra_bigcup`,
92+
`smallest_setring`, `sub_setring2`, `setring_id`, `sub_setring`,
93+
`setring0`, `setringD`, `setringU`, `setring_fin_bigcup`, `g_sigma_algebra_lambda_system`,
94+
`smallest_sigma_ring`, `sigma_ring_monotone`, `g_sigma_ring_monotone`,
95+
`sub_g_sigma_ring`, `setring_monotone_sigma_ring`, `g_monotone_monotone`,
96+
`g_monotone_setring`, `g_monotone_g_sigma_ring`, `monotone_setring_sub_g_sigma_ring`,
97+
`smallest_lambda_system`, `lambda_system_subset`, `dynkinT`, `dynkinC`,
98+
`dynkinU`, `dynkin_lambda_system`, `g_dynkin_dynkin`, `sigma_algebra_dynkin`,
99+
`dynkin_setI_sigma_algebra`, `setI_closed_g_dynkin_g_sigma_algebra`
100+
* definition `strace`
101+
* lemmas `subset_strace`, `g_sigma_ring_strace`, `strace_sigma_ring`,
102+
`setI_g_sigma_ring`, `sigma_algebra_strace`
103+
* mixin `isSemiRingOfSets`, structure `SemiRingOfSets`,
104+
notation `semiRingOfSetsType`
105+
* lemma `measurable_curry`
106+
* notations `.-measurable`, `'measurable`
107+
* mixin `SemiRingOfSets_isRingOfSets`, structure `RingOfSets`,
108+
notation `ringOfSetsType`
109+
* mixin `RingOfSets_isAlgebraOfSets`, structure `AlgebraOfSets`,
110+
notation `algebraOfSetsType`
111+
* mixin `hasMeasurableCountableUnion`
112+
* structure `SigmaRing`, structure `SigmaRing`, notation `sigmaRingType`
113+
* factory `isSigmaRing`
114+
* structure `Measurable`, notation `measurableType`
115+
* factories `isRingOfSets`, `isRingOfSets_setY`, `isAlgebraOfSets`,
116+
`isAlgebraOfSets_setD`, `isMeasurable`
117+
* lemmas `bigsetU_measurable`, `fin_bigcup_measurable`, `measurableD`,
118+
`seqDU_measurable`, ` measurableC`, `bigsetI_measurable`, `fin_bigcap_measurable`,
119+
`measurableID`, `bigcup_measurable`, `bigcap_measurable`, `bigcapT_measurable`,
120+
`countable_measurable`, `sigmaRingType_lambda_system`, `countable_bigcupT_measurable`,
121+
`bigcupT_measurable_rat`, `sigma_algebra_measurable`, `bigcap_measurableType`
122+
* definition `discrete_measurable`
123+
* lemmas `discrete_measurable0`, `discrete_measurableC`, `discrete_measurableU`
124+
* definitions `sigma_display`, `g_sigma_algebraType`
125+
* lemmas `sigma_algebraC`
126+
* notations `.-sigma`, `.-sigma.-measurable`
127+
* lemma `measurable_g_measurableTypeE`
128+
* definition `preimage_set_system`
129+
* lemmas `preimage_set_system0`, `preimage_set_systemU`, `preimage_set_system_comp`,
130+
`preimage_set_system_id`, `sigma_algebra_preimage`
131+
* definition `image_set_system`
132+
* lemmas `sigma_algebra_image`, `g_sigma_preimageE`
133+
* definition `subset_sigma_subadditive`
134+
* lemmas `big_trivIset`
135+
* definition `covered_by`
136+
* lemmas `covered_bySr`, `covered_byP`, `covered_by_finite`, `covered_by_countable`,
137+
`measurable_uncurry`
138+
* definition `g_sigma_preimageU`
139+
* lemmas `g_sigma_preimageU_comp`
140+
* definition `measure_prod_display`
141+
* notation `.-prod`, `.-prod.-measurable`
142+
* lemmas `measurableX`, `measurable_prod_measurableType`,
143+
`measurable_prod_g_measurableTypeR`, `measurable_prod_g_measurableType`
144+
* definition `g_sigma_preimage`
145+
* lemma `g_sigma_preimage_comp`
146+
* definition `measure_tuple_display`
147+
* definition `measure_dominates`, notation ``` `<< ```
148+
* lemma `measure_dominates_trans`
149+
+ to `measure_theory/measure_function.v`:
150+
* definitions `semi_additive2`, `semi_additive`, `semi_sigma_additive`,
151+
`additive2`, `additive`, `sigma_additive`, `subadditive`,
152+
`measurable_subset_sigma_subadditive`
153+
* lemma `semi_additiveW`
154+
* lemmas `semi_additiveE`, `semi_additive2E`, `additive2P`
155+
* lemmas `semi_sigma_additive_is_additive`, `semi_sigma_additiveE`,
156+
`sigma_additive_is_additive`
157+
* mixin `isContent`, structure `Content`, notation `{content set _ -> \bar _}`
158+
* lemma `content_inum_subproof`
159+
* lemmas `measure0`, `measure_gt0`, `measure_semi_additive_ord`,
160+
`measure_semi_additive_ord_I`, `content_fin_bigcup`, `measure_semi_additive2`
161+
* lemmas `measureU`, `measure_bigsetU`, `measure_fin_bigcup`,
162+
`measure_bigsetU_ord_cond`, `measure_bigsetU_ord`, `measure_fbigsetU`
163+
* mixin `Content_isMeasure`
164+
* structure `Measure`, notations `measure`,
165+
`{measure set _ -> \bar _}`
166+
* lemma `measure_inum_subproof`
167+
* factory `isMeasure`, lemma `eq_measure`
168+
* lemmma `measure_semi_bigcup`
169+
* lemmas `measure_sigma_additive`, `measure_bigcup`
170+
* definition `msum`
171+
* definition `mzero`, lemma `msum_mzero`
172+
* definition `measure_add`, `measure_addE`
173+
* definition `mscale`
174+
* definition `mseries`
175+
* definition `pushforward`
176+
* module `SetRing`
177+
* notations `.-ring`, `.-ring.-measurable`
178+
* lemmas `le_measure`, `measure_le0`
179+
* lemmas `content_subadditive`, `content_sub_fsum`
180+
* lemmas `content_ring_sup_sigma_additive`, `content_ring_sigma_additive`
181+
* lemmas `ring_sigma_subadditive`, `ring_semi_sigma_additive`,
182+
`semiring_sigma_additive`
183+
* factory `Content_SigmaSubAdditive_isMeasure`
184+
* lemma `measure_sigma_subadditive`
185+
* lemma `measure_sigma_subadditive_tail`
186+
* definition `fin_num_fun`
187+
* lemmas `fin_num_fun_lty`, `lty_fin_num_fun`
188+
* definitions `sfinite_measure`, `sigma_finite`
189+
* lemma `fin_num_fun_sigma_finite`
190+
* definition `mrestr`
191+
* lemma `sfinite_measure_sigma_finite`
192+
* mixin `isSFinite`, structure `SFiniteMeasure`,
193+
notation `{sfinite_measure set _ -> \bar _}`
194+
* mixin `isSigmaFinite`, structure `SigmaFiniteContent`,
195+
notation `sigma_finite_content`, `{sigma_finite_content set _ -> \bar _}`
196+
* structure `SigmaFiniteMeasure`, notations `sigma_finite_measure`,
197+
`{sigma_finite_measure set _ -> \bar _}`
198+
* factory `Measure_isSigmaFinite`
199+
* lemmas `sigma_finite_mzero`, `sfinite_mzero`
200+
* mixin `isFinite`, structures `FinNumFun`, `FiniteMeasure`,
201+
notation `{finite_measure set _ -> \bar _}`
202+
* factories `Measure_isFinite`, `Measure_isSFinite`
203+
* definition `sfinite_measure_seq`
204+
* lemma `sfinite_measure_seqP`
205+
* definition `mfrestr`
206+
* lemmas `measureIl`, `measureIr`, `subset_measure0`
207+
* lemmas `measureDI`, `measureD`, `measureU2`
208+
* lemmas `measureUfinr`, `measureUfinl`, `null_set_setU`, `measureU0`
209+
* lemma `eq_measureU`
210+
* lemma `g_sigma_algebra_measure_unique_trace`
211+
* lemmas `nondecreasing_cvg_mu`, `nonincreasing_cvg_mu`
212+
* definition `lim_sup_set`
213+
* lemmas `lim_sup_set_ub`, `lim_sup_set_cvg`
214+
* lemma `lim_sup_set_cvg0`
215+
* theorem `Boole_inequality`
216+
* lemma `sigma_finiteP`
217+
* theorem `generalized_Boole_inequality`
218+
* lemmas `g_sigma_algebra_measure_unique_cover`, `g_sigma_algebra_measure_unique`
219+
* lemma `measure_unique`
220+
+ to `measure_theory/counting_measure.v`:
221+
* definition `counting`
222+
* lemma `sigma_finite_counting`
223+
+ to `measure_theory/dirac_measure.v`:
224+
* definition `dirac`, notation `\d_`
225+
* lemmas `finite_card_sum`, `finite_card_dirac`, `infinite_card_dirac `
226+
+ to `measure_theory/probability_measure.v`:
227+
* mixin `isSubProbability`, structure `SubProbability`, notation `subprobability`
228+
* factory `Measure_isSubProbability`
229+
* mixin `isProbability`, structure `Probability`, notation `probability`
230+
* lemmas `probability_le1`, `probability_setC`
231+
* factory `Measure_isProbability`
232+
* definition `mnormalize`
233+
* lemmas `mnormalize_id`
234+
* definitions `mset`, `pset`, `pprobability`
235+
* lemmas `lt0_mset`, `gt1_mset`
236+
+ to `measure_theory/measure_negligible.v`:
237+
* definition `negligible`, notation `.-negligible`
238+
* lemmas `negligibleP`, `negligible_set0`, `measure_negligible`, `negligibleS`,
239+
`negligibleI`
240+
* definition `measure_is_complete`
241+
* lemmas `negligibleU`, `negligible_bigsetU`, `negligible_bigcup`
242+
* definition `almost_everywhere`, `ae_filter_ringOfSetsType`,
243+
`ae_properfilter_algebraOfSetsType`
244+
* definition `ae_eq`, notations `{ae _, _}`, `\forall _ \ae _, _`,
245+
`_ = _ [%ae _ in _]`, `_ = _ %[ae _]`
246+
* lemmas `measure0_ae`, `aeW`
247+
* instance `ae_eq_equiv`
248+
* instances `comp_ae_eq`, `comp_ae_eq2`, `comp_ae_eq2'`, `sub_ae_eq2`
249+
* lemmas `ae_eq0`, `ae_eq_refl`, `ae_eq_comp`, `ae_eq_comp2`,
250+
`ae_eq_funeposneg`, `ae_eq_sym`, `ae_eq_trans`, `ae_eq_sub`,
251+
`ae_eq_mul2r`, `ae_eq_mul2l`, `ae_eq_mul1l`, `ae_eq_abse`, `ae_foralln`
252+
* lemmas `ae_eq_subset`, `ae_eqe_mul2l`
253+
* lemma `measure_dominates_ae_eq`
254+
+ to `measure_theory/measure_extension.v`:
255+
* definitions `sigma_subadditive`, `subset_sigma_subadditive`
256+
* mixin `isOuterMeasure`, structure `OuterMeasure`
257+
* notation `{outer_measure set _ -> \bar _}`
258+
* factory `isSubsetOuterMeasure`
259+
* lemmas `outer_measure_sigma_subadditive_tail`, `outer_measure_subadditive`,
260+
`outer_measureU2`, `le_outer_measureIC`
261+
* definition `caratheodory_measurable`, notation `.-caratheodory`
262+
* lemma `le_caratheodory_measurable`
263+
* lemmas `outer_measure_bigcup_lim`, `caratheodory_measurable_set0`,
264+
`caratheodory_measurable_setC`, `caratheodory_measurable_setU_le`,
265+
`caratheodory_measurable_setU`, `caratheodory_measurable_bigsetU`,
266+
`caratheodory_measurable_setI`, `caratheodory_measurable_setD`,
267+
`disjoint_caratheodoryIU`, `caratheodory_additive`, `caratheodory_lime_le`,
268+
`caratheodory_measurable_trivIset_bigcup`, `caratheodory_measurable_bigcup`
269+
* definition `caratheodory_type`, notation `.-cara.-measurable`
270+
* definition `caratheodory_display`, notation `.-cara`
271+
* lemmas `caratheodory_measure0`, `caratheodory_measure_ge0`,
272+
`caratheodory_measure_sigma_additive`, `measure_is_complete_caratheodory`
273+
* definition `measurable_cover`, lemmas `cover_measurable`, `cover_subset`
274+
* definition `mu_ext`, notation `^*`
275+
* lemmas `le_mu_ext`, `mu_ext_ge0`, `mu_ext0`, `mu_ext_sigma_subadditive`
276+
* lemmas `Rmu_ext`, `measurable_mu_extE`, `measurable_Rmu_extE`
277+
* lemma `sub_caratheodory`
278+
* definition `measure_extension`
279+
* lemmas `measure_extension_sigma_finite`, `measure_extension_unique`
280+
* lemma `caratheodory_measurable_mu_ext`
281+
* definition `completed_measure_extension`
282+
* lemma `completed_measure_extension_sigma_finite`
283+
+ to `measure_theory/measurable_function.v`:
284+
* mixin `isMeasurableFun`, structure `MeasurableFun`, notations `{mfun _ >-> _}`,
285+
`[mfun of _]`
286+
* lemmas `measurable_funP`, `measurable_funPTI`
287+
* definitions `mfun`, `mfun_key`, canonical `mfun_keyed`
288+
* lemmas `measurable_id`, `measurable_comp`, `eq_measurable_fun`,
289+
`measurable_fun_eqP`, `measurable_cst`, `measurable_fun_bigcup`,
290+
`measurable_funU`, `measurable_funS`, `measurable_fun_if`,
291+
`measurable_fun_set0`, `measurable_fun_set1`
292+
* definitions `mfun_Sub_subproof`, `mfun_Sub`
293+
* lemmas `mfun_rect`, `mfun_val`, `mfuneqP`
294+
* lemmas `measurableT_comp`, `measurable_funTS`, `measurable_restrict`,
295+
`measurable_restrictT`, `measurable_fun_ifT`, `measurable_fun_bool`,
296+
`measurable_and`, `measurable_neg`, `measurable_or`
297+
* lemmas `preimage_set_system_measurable_fun`, `measurability`
298+
* lemmas `measurable_fun_pairP`, `measurable_fun_pair`
299+
* lemmas `measurable_fst`, `measurable_snd`, `measurable_swap`
300+
* lemmas `measurable_tnth`, `measurable_fun_tnthP`, `measurable_cons`
301+
* lemmas `measurable_behead`, `measurable_fun_if_pair`
302+
* lemmas `pair1_measurable`, `pair2_measurable`
303+
* lemmas `measurable_xsection`, `measurable_ysection`,
304+
`measurable_fun_pair1`, `measurable_fun_pair2`
305+
64306
### Renamed
65307

66308
### Generalized
@@ -84,6 +326,10 @@
84326

85327
- in file `all_reals.v`
86328
+ export of `interval_inference` (now in mathcomp-algebra, but not automatically exported)
329+
- file `theories/measure.v`
330+
- notations `[measure of _]`, `[measure of _]`
331+
- notations `[content of _]`, `[content of _]`
332+
- notations `[outer_measure of _]`, `[outer_measure of _]`
87333

88334
### Infrastructure
89335

_CoqProject

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ experimental_reals/realsum.v
3939
experimental_reals/distr.v
4040
reals_stdlib/Rstruct.v
4141
reals_stdlib/nsatz_realtype.v
42-
theories/all_analysis.v
42+
43+
theories/ereal.v
4344
theories/landau.v
4445

4546
theories/topology_theory/topology.v
@@ -70,7 +71,6 @@ theories/homotopy_theory/continuous_path.v
7071

7172
theories/ess_sup_inf.v
7273
theories/function_spaces.v
73-
theories/ereal.v
7474
theories/cantor.v
7575
theories/tvs.v
7676

@@ -89,12 +89,22 @@ theories/sequences.v
8989
theories/exp.v
9090
theories/trigo.v
9191
theories/esum.v
92-
theories/measurable_realfun.v
93-
theories/lebesgue_measure.v
94-
theories/lebesgue_stieltjes_measure.v
9592
theories/derive.v
96-
theories/measure.v
9793
theories/numfun.v
94+
95+
theories/measure_theory/measurable_structure.v
96+
theories/measure_theory/measure_function.v
97+
theories/measure_theory/counting_measure.v
98+
theories/measure_theory/dirac_measure.v
99+
theories/measure_theory/probability_measure.v
100+
theories/measure_theory/measure_negligible.v
101+
theories/measure_theory/measure_extension.v
102+
theories/measure_theory/measurable_function.v
103+
theories/measure_theory/measure.v
104+
105+
theories/measurable_realfun.v
106+
theories/lebesgue_stieltjes_measure.v
107+
theories/lebesgue_measure.v
98108
theories/borel_hierarchy.v
99109

100110
theories/lebesgue_integral_theory/simple_functions.v
@@ -118,7 +128,11 @@ theories/charge.v
118128
theories/kernel.v
119129
theories/pi_irrational.v
120130
theories/gauss_integral.v
131+
132+
theories/all_analysis.v
133+
121134
theories/showcase/summability.v
122135
theories/showcase/pnt.v
136+
123137
analysis_stdlib/Rstruct_topology.v
124138
analysis_stdlib/showcase/uniform_bigO.v

classical/boolp.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,11 +521,11 @@ Lemma notB : ((~ True) = False) * ((~ False) = True).
521521
Proof. by rewrite /not; split; eqProp. Qed.
522522

523523
Lemma andB : left_id True and * right_id True and
524-
* (left_zero False and * right_zero False and * idempotent and).
524+
* (left_zero False and * right_zero False and * idempotent_op and).
525525
Proof. by do ![split] => /PropB[]; eqProp=> // -[]. Qed.
526526

527527
Lemma orB : left_id False or * right_id False or
528-
* (left_zero True or * right_zero True or * idempotent or).
528+
* (left_zero True or * right_zero True or * idempotent_op or).
529529
Proof. do ![split] => /PropB[]; eqProp=> -[] //; by [left | right]. Qed.
530530

531531
Lemma implyB : let imply (P Q : Prop) := P -> Q in

classical/classical_sets.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ Proof. by move=> A B C; rewrite setIC setICA setIA. Qed.
637637
Lemma setIACA : @interchange (set T) setI setI.
638638
Proof. by move=> A B C D; rewrite -setIA [B `&` _]setICA setIA. Qed.
639639

640-
Lemma setIid : idempotent (@setI T).
640+
Lemma setIid : idempotent_op (@setI T).
641641
Proof. by move=> A; rewrite predeqE => ?; split=> [[]|]. Qed.
642642

643643
Lemma setIIl A B C : A `&` B `&` C = (A `&` C) `&` (B `&` C).
@@ -691,7 +691,7 @@ Proof. by move=> A B C; rewrite setUC setUCA setUA. Qed.
691691
Lemma setUACA : @interchange (set T) setU setU.
692692
Proof. by move=> A B C D; rewrite -setUA [B `|` _]setUCA setUA. Qed.
693693

694-
Lemma setUid : idempotent (@setU T).
694+
Lemma setUid : idempotent_op (@setU T).
695695
Proof. move=> p; rewrite /setU/mkset predeqE => a; tauto. Qed.
696696

697697
Lemma setUUl A B C : A `|` B `|` C = (A `|` C) `|` (B `|` C).
@@ -3167,12 +3167,12 @@ Lemma joinIB A B : (A `&` B) `|` A `\` B = A.
31673167
Proof. by rewrite setUC -setDDr setDv setD0. Qed.
31683168

31693169
#[export]
3170-
HB.instance Definition _ :=
3171-
Order.hasRelativeComplement.Build set_display (set T) subKI joinIB.
3170+
HB.instance Definition _ := Order.BDistrLattice_hasSectionalComplement.Build
3171+
set_display (set T) subKI joinIB.
31723172

31733173
#[export]
3174-
HB.instance Definition _ := Order.hasComplement.Build set_display (set T)
3175-
(fun x => esym (setTD x)).
3174+
HB.instance Definition _ := Order.CBDistrLattice_hasComplement.Build
3175+
set_display (set T) (fun x => esym (setTD x)).
31763176

31773177
End SetOrder.
31783178
Module Exports. HB.reexport. End Exports.

0 commit comments

Comments
 (0)