Skip to content

feat(Dynamics): recurrents set and refactoring of conservative maps#41289

Draft
D-Thomine wants to merge 10 commits into
leanprover-community:masterfrom
D-Thomine:D-Thomine/recurrent_conservative
Draft

feat(Dynamics): recurrents set and refactoring of conservative maps#41289
D-Thomine wants to merge 10 commits into
leanprover-community:masterfrom
D-Thomine:D-Thomine/recurrent_conservative

Conversation

@D-Thomine

Copy link
Copy Markdown
Collaborator

This PR deals mostly with Dynamics.Conservative. The notion of recurrent set is introduced: a set s is recurrent if almost every point in s returns to s. Most properties of conservative maps actually apply to recurrent sets.

The definition of conservative map is changed to align with this notion of recurrent set (a map is conservative if every measurable set is recurrent). Theorem MeasureTheory.conservative_iff_exists_mem_iterate_mem expresses the equivalence of the new definition with the older one.


Open in Gitpod

@D-Thomine D-Thomine added the t-dynamics Dynamical Systems label Jul 2, 2026
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

PR summary 9384a8c9a5

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff (regex)

+ EventuallyLE.countable_iUnion'
+ IsRecurrent
+ IsRecurrent.ae_mem_imp_frequently_image_mem
+ IsRecurrent.congr_ae
+ IsRecurrent.exists_mem_iterate_mem
+ IsRecurrent.frequently_measure_inter_ne_zero
+ IsRecurrent.of_absolutelyContinuous
+ IsRecurrent.preimage
+ MeasurePreserving.isRecurrent
+ _root_.Set.infinite_iff_exists_gt_mem
+ _root_.Set.infinite_iff_exists_lt_mem
+ ae_mem_exists_iterate_mem
+ conservative_iff_exists_mem_iterate_mem
+ eventuallyLE_of_subset
+ isRecurrent_congr_set
+ isRecurrent_def
+ isRecurrent_iUnion
+ isRecurrent_id
+ isRecurrent_iff_ae_iUnion
+ isRecurrent_iff_ae_sub_limsup_preimage
+ isRecurrent_iff_isReccurent_iUnion_preimage
+ isRecurrent_iff_restrict
+ isRecurrent_of_ae
+ isRecurrent_of_ae_iUnion_preimage
+ isRecurrent_of_mapsTo
+ isRecurrent_of_null
+ isRecurrent_union
+ isRecurrent_univ
+ nullMeasurableSet_isRecurrent
+ of_eq_ae
+ preimage_limsup_preimage

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 9384a8c).

  • +32 new declarations
  • −1 removed declarations
+Filter.EventuallyLE.countable_iUnion'
+Filter.eventuallyLE_of_subset
-MeasureTheory.Conservative.exists_mem_iterate_mem'
+MeasureTheory.Conservative.isRecurrent
+MeasureTheory.Conservative.nullMeasurableSet_isRecurrent
+MeasureTheory.IsRecurrent
+MeasureTheory.IsRecurrent.ae_mem_imp_frequently_image_mem
+MeasureTheory.IsRecurrent.congr_ae
+MeasureTheory.IsRecurrent.exists_mem_iterate_mem
+MeasureTheory.IsRecurrent.frequently_measure_inter_ne_zero
+MeasureTheory.IsRecurrent.of_absolutelyContinuous
+MeasureTheory.IsRecurrent.preimage
+MeasureTheory.Measure.QuasiMeasurePreserving.of_eq_ae
+MeasureTheory.MeasurePreserving.ae_mem_exists_iterate_mem
+MeasureTheory.MeasurePreserving.isRecurrent
+MeasureTheory.conservative_iff_exists_mem_iterate_mem
+MeasureTheory.isRecurrent_congr_set
+MeasureTheory.isRecurrent_def
+MeasureTheory.isRecurrent_iUnion
+MeasureTheory.isRecurrent_id
+MeasureTheory.isRecurrent_iff_ae_iUnion
+MeasureTheory.isRecurrent_iff_ae_sub_limsup_preimage
+MeasureTheory.isRecurrent_iff_isReccurent_iUnion_preimage
+MeasureTheory.isRecurrent_iff_restrict
+MeasureTheory.isRecurrent_of_ae
+MeasureTheory.isRecurrent_of_ae_iUnion_preimage
+MeasureTheory.isRecurrent_of_mapsTo
+MeasureTheory.isRecurrent_of_null
+MeasureTheory.isRecurrent_union
+MeasureTheory.isRecurrent_univ
+MeasureTheory.preimage_limsup_preimage
+Set.infinite_iff_exists_gt_mem
+Set.infinite_iff_exists_lt_mem

No changes to strong technical debt.

No changes to weak technical debt.

Current commit 9384a8c9a5
Reference commit 40b45a066a

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

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

Labels

t-dynamics Dynamical Systems

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant