Skip to content

Conversation

IshiguroYoshihiro
Copy link
Contributor

Motivation for this change

I added an alternative proof of gauss integral and placed it in theories/showcase.
This is an experimental approach to evaluating improper integral.
I have already separate reusable lemmas and made PRs ( #1579 is under review now), so this file intended to showcases the difference of proof strategy.
In contrast to the existing proof, this version mainly relies on lemmas related to integration over unbounded intervals.

Checklist
  • added corresponding entries in CHANGELOG_UNRELEASED.md
  • added corresponding documentation in the headers

Reference: How to document

Merge policy

As a rule of thumb:

  • PRs with several commits that make sense individually and that
    all compile are preferentially merged into master.
  • PRs with disorganized commits are very likely to be squash-rebased.
Reminder to reviewers

@IshiguroYoshihiro IshiguroYoshihiro changed the title Gauss integral alternative 20250422 alternative proof of gauss integral Apr 22, 2025
@hoheinzollern hoheinzollern self-requested a review April 23, 2025 04:06
@affeldt-aist affeldt-aist modified the milestones: 1.11.0, 1.12.0 May 1, 2025
Copy link
Member

@hoheinzollern hoheinzollern left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider the comments above.

### Added

- in `theories/showcase`
+ add new file `gauss_integral_alternative.v`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new lemmas and definitions should also be added in the changelog

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. I had a misunderstanding when I wrote it.
I will correct it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I rewrited changelog as describe what lemmas are included in gauss_integral_unbounded.v.
I'm glad if you check. (PR is reopened #1646 )


Lemma max_y_ge0 : (0 <= max_y)%R. Proof. by rewrite mulr_ge0. Qed.

Definition helper (x : R) := (2 * x * expR (- x ^+ 2))%R.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the next definitions and lemmas are non-descriptive. I recommend finding a better name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed this function ndgauss meaning derivative of - gauss_fun.


Let dudx x0 y0 : R := (u^~ y0)^`() x0.

Lemma int0yu_fin_num x : \int[mu]_(x0 in `[0%R, +oo[) (u x x0)%:E \is a fin_num.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be using int0yu?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how to resolve this.
When I use int0yu in int0yu_fin_num as

Lemma int0yu_fin_num x : (int0yu x)%:E \is a fin_num.

Is this the expected change?
I should unfold the notation Rintegral in the proof of above but I feel I should avoid to unfold because Rintegral is hidden by the notation.

@hoheinzollern hoheinzollern self-requested a review June 17, 2025 06:31
Copy link
Member

@hoheinzollern hoheinzollern left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good to me, please consider the alternate file names and merge.

- by rewrite {}/ballx {}/c; near: e; exact: u_dominates.
Unshelve. all: end_near. Qed.

Lemma rc_int0yu0 : int0yu x @[x --> 0^'+] --> int0yu 0.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Lemma rc_int0yu0 : int0yu x @[x --> 0^'+] --> int0yu 0.
Lemma cvg_int0yu : int0yu x @[x --> 0^'+] --> int0yu 0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed it to rcvg0_int0yu.
rcvg0 means "converge at 0 from the right".

- by rewrite {}/G; near: e; exact: u_dominates.
Unshelve. end_near. Qed.

Let dint0yuE_substep2 x (x0 : (0 < x)%R) :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Let dint0yuE_substep2 x (x0 : (0 < x)%R) :
Let integral_pderive_u x : (0 < x)%R ->

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed to derive1_int0yuE_subproof2.
Indeed more descriptive name is better.
However, I haven't found any other application of this lemma so I'm putting renaming to integral_pderive_u off now.
Should I rename to it?

by rewrite mulrDr mulr1 mulNr -exprMn expRD.
Qed.

Let der_mulrE (x : R) : (fun z => (x * z)%R)^`() = cst x.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

try to use derive1Mr in this proof

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since derive1Mr can't apply directly at where der_mulrE is used, I rewrited the proof of der_mulrE with derive1Mr.

affeldt-aist and others added 9 commits June 20, 2025 13:42
* generic lemmas from the prob_lang PR

Co-authored-by: Cyril Cohen <cyril.cohen@inria.fr>
In order to not forget it when adding a new release to opam repo.
Analysis is not yet compatible with rocq
(without the coq-core compat shim)

- Calling rocq didn't work with Coq 8.19 and 8.20

- Compile without coq shim on Rocq 9.0
* lemmas about measurability of comparison

* measurability of poweR

Co-authored-by: Alessandro Bruni <alessandro.bruni@gmail.com>
* add is_derive1_powR
affeldt-aist and others added 26 commits June 20, 2025 13:43
---------

Co-authored-by: Cyril Cohen <CohenCyril@users.noreply.github.com>
Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
* theory of essential supremum

Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
Co-authored-by: Cyril Cohen <cohen@crans.org>
Co-authored-by: Pierre Roux <pierre.roux@onera.fr>
Co-authored-by: Takafumi Saikawa <tscompor@gmail.com>
* change the convention for the convex combination operation

---------

Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
* repair structure names in tvs.v

* repair uniform algebraic structures

* fix Zmodules
- this commit adds an implementation of the inverse for extended reals,
`inve` a total involutive inversion function on `\bar R`, denoted `^-1`
in the `ereal_scope` coinciding with `x^-1%R` when `x != 0` but such
that `0^-1 = +oo` and `-oo^-1 = -oo`,

- notation `x / y` in `ereal_scope` for `x / y = x * y^-1`/,

- lemmas `inver`, `inveP`, `fine_invr`, `inve0`, `inve1`, `invey`,
`invey`, `inveNy`, `inveK`, `invr_inj`, `inveN`, `inve_eq0`, `inve_ge0`,
`inve_gt0`,

- a predicate `inveM_def` with notation `x *^-1? y` defining a
sufficient condition for the inverse and product to commute,

- it changes `mule` to have special cases optimizing computation for +oo and -oo
  adn  `mule_def` has been rewritten to optimize computation in several
  cases.

- it adds a compatibility lemma `mule_defE` to bridge the former definition of
`mule_def` with the new one.

Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
Co-authored-by: Pierre Roux <pierre.roux@onera.fr>
* Chore: 📝 🔧 `make html` to make the html documentation using Rocqnavi
This change has been inspire in the repository: https://github.com/CoqHott/logrel-coq
* alias for pseudometric and factory for normed module

---------

Co-authored-by: Quentin Vermande <quentin.vermande@ens.fr>
* is_deriveX, etc.

---------

Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: IshiguroYoshihiro <jb.15r.1213@s.thers.ac.jp>
- the set of tuples is measurable
- tnth, cons, behead are measurable functions

Co-authored-by: Alessandro Bruni <brun@itu.dk>
Co-authored-by: Cyril Cohen <cohen@crans.org>
Co-authored-by: Pierre Roux <pierre.roux@onera.fr>
Co-authored-by: Takafumi Saikawa <tscompor@gmail.com>
---------

Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
@IshiguroYoshihiro
Copy link
Contributor Author

I'm sorry, I accidentally pushed an unsuccessfully rebased commit.
I will fix it immediately.

@IshiguroYoshihiro
Copy link
Contributor Author

IshiguroYoshihiro commented Jun 20, 2025

@hoheinzollern and @affeldt-aist , I've opened a clearer PR as #1646 .
Could you review that one instead? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants