Skip to content

Commit 3be9b1d

Browse files
gen of int. by subst + normal distribution (#1450)
* integration by subst. over R --------- Co-authored-by: IshiguroYoshihiro <[email protected]>
1 parent 762e08b commit 3be9b1d

File tree

13 files changed

+1208
-87
lines changed

13 files changed

+1208
-87
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,49 @@
213213

214214
- in `derive.v`:
215215
+ lemmas `near_eq_derivable`, `near_eq_derive`, `near_eq_is_derive`
216+
- in `derive.v`:
217+
+ lemmas `derive1N`, `derivable_opp`, `derive1_id`
218+
219+
- in `normedtype.v`:
220+
+ lemmas `cvg_compNP`, `decreasing_itvNyo_bigcup`, `decreasing_itvoo_bigcup`,
221+
`increasing_itvNyo_bigcup`, `increasing_itvoc_bigcup`
222+
223+
- in `num_topology.v`:
224+
+ lemmas `lt_nbhsl`, `Nlt_nbhsl`
225+
226+
- in `measurable_realfun.v`:
227+
+ lemmas `measurable_fun_itv_bndo_bndc`, `measurable_fun_itv_obnd_cbnd`
228+
229+
- in `real_interval.v`:
230+
+ lemma `itv_bndy_bigcup_BLeft_shift`
231+
232+
- in `realfun.v`:
233+
+ definitions `derivable_Nyo_continuous_bnd`, `derivable_oy_continuous_bnd `
234+
235+
- in `ftc.v`:
236+
+ lemmas
237+
`decreasing_ge0_integration_by_substitutiony`,
238+
`ge0_integration_by_substitutionNy`,
239+
`increasing_ge0_integration_by_substitutiony`,
240+
`ge0_integration_by_substitutionNy`,
241+
`increasing_ge0_integration_by_substitutionT`,
242+
`ge0_symfun_integralT`
243+
244+
- in `gauss_integral`:
245+
+ lemmas `integralT_gauss`, `integrableT_gauss`
246+
247+
- in `probability.v`:
248+
+ definition `normal_pdf`
249+
+ lemmas `normal_pdf_ge0`, `normal_pdf_gt0`, `measurable_normal_pdf`,
250+
`continuous_normal_pdf`, `normal_pdf_ub`
251+
+ definition `normal_prob`, equipped with the structure of probability measure
252+
+ lemmas `integral_normal_pdf`, `normal_prob_dom`
253+
254+
- in `realfun.v`:
255+
+ lemma `cvg_addrr_Ny`
256+
257+
- in `normedtype.v`:
258+
+ lemmas `gt0_cvgMlNy`, `gt0_cvgMly`
216259

217260
### Changed
218261

@@ -331,6 +374,14 @@
331374
+ `inum_lt` -> `num_lt`
332375
+ `inum_min` -> `num_min`
333376
+ `inum_max` -> `num_max`
377+
- in `real_interval.v`:
378+
+ `itv_bnd_infty_bigcup` -> `itv_bndy_bigcup_BRight`
379+
+ `itv_bnd_infty_bigcup0S` -> `itv0y_bigcup0S`
380+
+ `itv_infty_bnd_bigcup` -> `itvNy_bnd_bigcup_BLeft`
381+
382+
- in `set_interval.v`:
383+
+ `opp_itv_bnd_infty` -> `opp_itv_bndy`
384+
+ `opp_itv_infty_bnd` -> `opp_itvNy_bnd`
334385

335386
### Generalized
336387

@@ -367,6 +418,12 @@
367418
- in `lebesgue_measure.v`:
368419
+ definition `vitali_cover`, lemma `vitali_coverS`
369420

421+
- in `ftc.v`:
422+
+ lemmas `increasing_cvg_at_right_comp`,
423+
`increasing_cvg_at_left_comp`,
424+
`decreasing_cvg_at_right_comp`,
425+
`decreasing_cvg_at_left_comp`
426+
370427
### Deprecated
371428
- in `Rstruct.v`
372429
+ lemma `Rinvx`
@@ -377,6 +434,9 @@
377434
- in `itv.v`:
378435
+ notation `%:inum` (use `%:num` instead)
379436

437+
- in `lebesgue_measure.v`:
438+
+ lemmas `measurable_fun_itv_co`, `measurable_fun_itv_oc`
439+
380440
### Removed
381441

382442
- in `sequences.v`:
@@ -442,6 +502,14 @@
442502
`__deprecated__cvg_gt_ge`, `__deprecated__cvg_lt_le`,
443503
`__deprecated__linear_bounded0 `
444504
(deprecated since 0.6.0)
505+
- in `normedtype.v`:
506+
+ notations `cvg_distP`, `cvg_distW`, `continuous_cvg_dist`, `cvg_dist2P`,
507+
`cvg_gt_ge`, `cvg_lt_le_`, `linear_bounded0`
508+
(were deprecated since 0.6.0)
509+
+ lemmas `__deprecated__cvg_distW`, `__deprecated__continuous_cvg_dist`,
510+
`__deprecated__cvg_gt_ge`, `__deprecated__cvg_lt_le`,
511+
`__deprecated__linear_bounded0`
512+
(were deprecated since 0.6.0)
445513

446514
- in `interval_inference.v`
447515
+ reserved notations `[lb of _]`, `[ub of _]`, `[lbe of _]` and `[ube of _]`

classical/set_interval.v

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ Hint Extern 0 (~ has_lbound _) => solve[by apply: hasNlbound_itv] : core.
442442
#[global]
443443
Hint Extern 0 (~ has_ubound _) => solve[by apply: hasNubound_itv] : core.
444444

445-
Lemma opp_itv_bnd_infty (R : numDomainType) (x : R) b :
445+
Lemma opp_itv_bndy (R : numDomainType) (x : R) b :
446446
-%R @` [set` Interval (BSide b x) +oo%O] =
447447
[set` Interval -oo%O (BSide (negb b) (- x))].
448448
Proof.
@@ -451,8 +451,10 @@ rewrite predeqE => /= r; split=> [[y xy <-]|xr].
451451
exists (- r); rewrite ?opprK //.
452452
by case: b xr; rewrite !in_itv/= andbT (lerNr, ltrNr).
453453
Qed.
454+
#[deprecated(since="mathcomp-analysis 1.9.0", note="renamed to `opp_itv_bndy`")]
455+
Notation opp_itv_bnd_infty := opp_itv_bndy (only parsing).
454456

455-
Lemma opp_itv_infty_bnd (R : numDomainType) (x : R) b :
457+
Lemma opp_itvNy_bnd (R : numDomainType) (x : R) b :
456458
-%R @` [set` Interval -oo%O (BSide b x)] =
457459
[set` Interval (BSide (negb b) (- x)) +oo%O].
458460
Proof.
@@ -461,6 +463,8 @@ rewrite predeqE => /= r; split=> [[y xy <-]|xr].
461463
exists (- r); rewrite ?opprK //.
462464
by case: b xr; rewrite !in_itv/= andbT (lerNl, ltrNl).
463465
Qed.
466+
#[deprecated(since="mathcomp-analysis 1.9.0", note="renamed to `opp_itvNy_bnd`")]
467+
Notation opp_itv_infty_bnd := opp_itvNy_bnd (only parsing).
464468

465469
Lemma opp_itv_bnd_bnd (R : numDomainType) a b (x y : R) :
466470
-%R @` [set` Interval (BSide a x) (BSide b y)] =

reals/real_interval.v

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,22 @@ apply eq_bigcupr => k _; apply/seteqP; split=> [_/= [y ysr] <-|x/= xsr].
291291
by exists (- x); rewrite ?oppr_itv//= opprK// negbK opprB opprK addrC.
292292
Qed.
293293

294-
Lemma itv_bnd_infty_bigcup (R : realType) b (x : R) :
294+
Lemma itv_bndy_bigcup_BLeft_shift {R : realType} (b : bool) (x : R) (n : nat):
295+
[set` Interval (BSide b x) +oo%O] =
296+
\bigcup_i [set` Interval (BSide b x) (BLeft (x + (i + n)%:R))].
297+
Proof.
298+
apply/seteqP; split=> y; rewrite /= !in_itv/= andbT; last first.
299+
by move=> [k _ /=]; move: b => [|] /=; rewrite in_itv/= => /andP[//] /ltW.
300+
move=> xy; exists `|Num.ceil (y - x)|.+1 => //=.
301+
rewrite in_itv/= xy/= natrD -natr1 natr_absz intr_norm -addrA nat1r addrA.
302+
apply: ltr_pwDr; first by rewrite ltr0n.
303+
rewrite -lterBDl (le_trans (le_ceil _)) //= le_eqVlt; apply/predU1P; left.
304+
apply/esym/normr_idP.
305+
rewrite ler0z -ceil_ge0 (lt_le_trans (@ltrN10 R))// subr_ge0.
306+
by case: b xy => //= /ltW.
307+
Qed.
308+
309+
Lemma itv_bndy_bigcup_BRight (R : realType) b (x : R) :
295310
[set` Interval (BSide b x) +oo%O] =
296311
\bigcup_i [set` Interval (BSide b x) (BRight (x + i%:R))].
297312
Proof.
@@ -301,28 +316,34 @@ move=> xy; exists `|ceil (y - x)|%N => //=; rewrite in_itv/= xy/= -lerBlDl.
301316
rewrite natr_absz ger0_norm ?ceil_ge//.
302317
by rewrite -(ceil0 R) ceil_le// subr_ge0 (lteifW xy).
303318
Qed.
319+
#[deprecated(since="mathcomp-analysis 1.9.0", note="renamed to `itv_bndy_bigcup_BRight`")]
320+
Notation itv_bnd_infty_bigcup := itv_bndy_bigcup_BRight (only parsing).
304321

305-
Lemma itv_bnd_infty_bigcup0S (R : realType) :
322+
Lemma itv0y_bigcup0S (R : realType) :
306323
`[0%R, +oo[%classic = \bigcup_i `[0%R, i.+1%:R]%classic :> set R.
307324
Proof.
308325
rewrite eqEsubset; split; last first.
309326
by move=> /= x [n _]/=; rewrite !in_itv/= => /andP[->].
310-
rewrite itv_bnd_infty_bigcup => z [i _ /= zi].
327+
rewrite itv_bndy_bigcup_BRight => z [i _ /= zi].
311328
exists i => //=.
312329
apply: subset_itvl zi.
313330
by rewrite bnd_simp/= add0r ler_nat.
314331
Qed.
332+
#[deprecated(since="mathcomp-analysis 1.9.0", note="renamed to `itv0y_bigcup0S`")]
333+
Notation itv_bnd_infty_bigcup0S := itv0y_bigcup0S (only parsing).
315334

316-
Lemma itv_infty_bnd_bigcup (R : realType) b (x : R) :
335+
Lemma itvNy_bnd_bigcup_BLeft (R : realType) b (x : R) :
317336
[set` Interval -oo%O (BSide b x)] =
318337
\bigcup_i [set` Interval (BLeft (x - i%:R)) (BSide b x)].
319338
Proof.
320-
have /(congr1 (fun x => -%R @` x)) := itv_bnd_infty_bigcup (~~ b) (- x).
339+
have /(congr1 (fun x => -%R @` x)) := itv_bndy_bigcup_BRight (~~ b) (- x).
321340
rewrite opp_itv_bnd_infty negbK opprK => ->; rewrite image_bigcup.
322341
apply eq_bigcupr => k _; apply/seteqP; split=> [_ /= -[r rbxk <-]|y/= yxkb].
323342
by rewrite oppr_itv/= opprB addrC.
324343
by exists (- y); [rewrite oppr_itv/= negbK opprD opprK|rewrite opprK].
325344
Qed.
345+
#[deprecated(since="mathcomp-analysis 1.9.0", note="renamed to `itvNy_bnd_bigcup_BLeft`")]
346+
Notation itv_infty_bnd_bigcup := itvNy_bnd_bigcup_BLeft (only parsing).
326347

327348
Lemma bigcup_itvT {R : realType} b :
328349
\bigcup_i [set` Interval (BSide b (- i%:R)) (BRight i%:R)] = [set: R].

theories/derive.v

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1907,6 +1907,16 @@ Qed.
19071907

19081908
End near_derive.
19091909

1910+
Lemma derive1N {R : realFieldType} (f : R -> R) (x : R) :
1911+
derivable f x 1 -> (- f)^`() x = (- f^`()%classic x).
1912+
Proof. by move=> fx; rewrite !derive1E deriveN. Qed.
1913+
1914+
Lemma derivable_opp {R : realFieldType} (x : R) v : derivable -%R x v.
1915+
Proof. by apply: derivableN; exact: derivable_id. Qed.
1916+
1917+
Lemma derive1_id {R : realFieldType} (x : R) : id^`() x = 1.
1918+
Proof. by rewrite derive1E derive_id. Qed.
1919+
19101920
(* Trick to trigger type class resolution *)
19111921
Lemma trigger_derive (R : realType) (f : R -> R) x x1 y1 :
19121922
is_derive x (1 : R) f x1 -> x1 = y1 -> is_derive x 1 f y1.

0 commit comments

Comments
 (0)