File: Mathlib/Dynamics/Ergodic/MeasurePreserving.lean

full_name: MeasureTheory.MeasurePreserving
code: /-- `f` is a measure preserving map w.r.t. measures `μa` and `μb` if `f` is measurable
and `map f μa = μb`. -/
structure MeasurePreserving (f : α → β)
  (μa : Measure α := by volume_tac) (μb : Measure β := by volume_tac) : Prop where
  protected measurable : Measurable f
  protected map_eq : map f μa = μb
goal: Prop

full_name: MeasureTheory.MeasurePreserving.map_eq
code: /-- `f` is a measure preserving map w.r.t. measures `μa` and `μb` if `f` is measurable
and `map f μa = μb`. -/
structure MeasurePreserving (f : α → β)
  (μa : Measure α := by volume_tac) (μb : Measure β := by volume_tac) : Prop where
  protected measurable : Measurable f
  protected map_eq : map f μa = μb
goal: MeasureTheory.Measure.map f μa = μb

full_name: MeasureTheory.MeasurePreserving.measurable
code: /-- `f` is a measure preserving map w.r.t. measures `μa` and `μb` if `f` is measurable
and `map f μa = μb`. -/
structure MeasurePreserving (f : α → β)
  (μa : Measure α := by volume_tac) (μb : Measure β := by volume_tac) : Prop where
  protected measurable : Measurable f
  protected map_eq : map f μa = μb
goal: Measurable f

full_name: Measurable.measurePreserving
code: protected theorem _root_.Measurable.measurePreserving
    {f : α → β} (h : Measurable f) (μa : Measure α) : MeasurePreserving f μa (map f μa) 
goal: MeasureTheory.MeasurePreserving f μa (MeasureTheory.Measure.map f μa)

full_name: MeasureTheory.MeasurePreserving.id
code: protected theorem id (μ : Measure α) : MeasurePreserving id μ μ 
goal: MeasureTheory.MeasurePreserving id μ μ

full_name: MeasureTheory.MeasurePreserving.aemeasurable
code: protected theorem aemeasurable {f : α → β} (hf : MeasurePreserving f μa μb) : AEMeasurable f μa 
goal: AEMeasurable f μa

full_name: MeasureTheory.MeasurePreserving.of_isEmpty
code: @[nontriviality]
theorem of_isEmpty [IsEmpty β] (f : α → β) (μa : Measure α) (μb : Measure β) :
    MeasurePreserving f μa μb 
goal: MeasureTheory.MeasurePreserving f μa μb

full_name: MeasureTheory.MeasurePreserving.symm
code: theorem symm (e : α ≃ᵐ β) {μa : Measure α} {μb : Measure β} (h : MeasurePreserving e μa μb) :
    MeasurePreserving e.symm μb μa 
goal: MeasureTheory.MeasurePreserving (⇑e.symm) μb μa

full_name: MeasureTheory.MeasurePreserving.restrict_preimage
code: theorem restrict_preimage {f : α → β} (hf : MeasurePreserving f μa μb) {s : Set β}
    (hs : MeasurableSet s) : MeasurePreserving f (μa.restrict (f ⁻¹' s)) (μb.restrict s) 
goal: MeasureTheory.MeasurePreserving f (μa.restrict (f ⁻¹' s)) (μb.restrict s)

full_name: MeasureTheory.MeasurePreserving.restrict_preimage_emb
code: theorem restrict_preimage_emb {f : α → β} (hf : MeasurePreserving f μa μb)
    (h₂ : MeasurableEmbedding f) (s : Set β) :
    MeasurePreserving f (μa.restrict (f ⁻¹' s)) (μb.restrict s) 
goal: MeasureTheory.MeasurePreserving f (μa.restrict (f ⁻¹' s)) (μb.restrict s)

full_name: MeasureTheory.MeasurePreserving.restrict_image_emb
code: theorem restrict_image_emb {f : α → β} (hf : MeasurePreserving f μa μb) (h₂ : MeasurableEmbedding f)
    (s : Set α) : MeasurePreserving f (μa.restrict s) (μb.restrict (f '' s)) 
goal: MeasureTheory.MeasurePreserving f (μa.restrict s) (μb.restrict (f '' s))

full_name: MeasureTheory.MeasurePreserving.aemeasurable_comp_iff
code: theorem aemeasurable_comp_iff {f : α → β} (hf : MeasurePreserving f μa μb)
    (h₂ : MeasurableEmbedding f) {g : β → γ} : AEMeasurable (g ∘ f) μa ↔ AEMeasurable g μb 
goal: AEMeasurable (g ∘ f) μa ↔ AEMeasurable g μb

full_name: MeasureTheory.MeasurePreserving.quasiMeasurePreserving
code: protected theorem quasiMeasurePreserving {f : α → β} (hf : MeasurePreserving f μa μb) :
    QuasiMeasurePreserving f μa μb 
goal: MeasureTheory.Measure.QuasiMeasurePreserving f μa μb

full_name: MeasureTheory.MeasurePreserving.comp
code: protected theorem comp {g : β → γ} {f : α → β} (hg : MeasurePreserving g μb μc)
    (hf : MeasurePreserving f μa μb) : MeasurePreserving (g ∘ f) μa μc 
goal: MeasureTheory.MeasurePreserving (g ∘ f) μa μc

full_name: MeasureTheory.MeasurePreserving.trans
code: /-- An alias of `MeasureTheory.MeasurePreserving.comp` with a convenient defeq and argument order
for `MeasurableEquiv` -/
protected theorem trans {e : α ≃ᵐ β} {e' : β ≃ᵐ γ}
    {μa : Measure α} {μb : Measure β} {μc : Measure γ}
    (h : MeasurePreserving e μa μb) (h' : MeasurePreserving e' μb μc) :
    MeasurePreserving (e.trans e') μa μc 
goal: MeasureTheory.MeasurePreserving (⇑(e.trans e')) μa μc

full_name: MeasureTheory.MeasurePreserving.comp_left_iff
code: protected theorem comp_left_iff {g : α → β} {e : β ≃ᵐ γ} (h : MeasurePreserving e μb μc) :
    MeasurePreserving (e ∘ g) μa μc ↔ MeasurePreserving g μa μb 
goal: MeasureTheory.MeasurePreserving (⇑e ∘ g) μa μc ↔ MeasureTheory.MeasurePreserving g μa μb

full_name: MeasureTheory.MeasurePreserving.comp_right_iff
code: protected theorem comp_right_iff {g : α → β} {e : γ ≃ᵐ α} (h : MeasurePreserving e μc μa) :
    MeasurePreserving (g ∘ e) μc μb ↔ MeasurePreserving g μa μb 
goal: MeasureTheory.MeasurePreserving (g ∘ ⇑e) μc μb ↔ MeasureTheory.MeasurePreserving g μa μb

full_name: MeasureTheory.MeasurePreserving.sigmaFinite
code: protected theorem sigmaFinite {f : α → β} (hf : MeasurePreserving f μa μb) [SigmaFinite μb] :
    SigmaFinite μa 
goal: MeasureTheory.SigmaFinite μa

full_name: MeasureTheory.MeasurePreserving.measure_preimage
code: theorem measure_preimage {f : α → β} (hf : MeasurePreserving f μa μb) {s : Set β}
    (hs : NullMeasurableSet s μb) : μa (f ⁻¹' s) = μb s 
goal: μa (f ⁻¹' s) = μb s

full_name: MeasureTheory.MeasurePreserving.measure_preimage_emb
code: theorem measure_preimage_emb {f : α → β} (hf : MeasurePreserving f μa μb)
    (hfe : MeasurableEmbedding f) (s : Set β) : μa (f ⁻¹' s) = μb s 
goal: μa (f ⁻¹' s) = μb s

full_name: MeasureTheory.MeasurePreserving.measure_preimage_equiv
code: theorem measure_preimage_equiv {f : α ≃ᵐ β} (hf : MeasurePreserving f μa μb) (s : Set β) :
    μa (f ⁻¹' s) = μb s 
goal: μa (⇑f ⁻¹' s) = μb s

full_name: MeasureTheory.MeasurePreserving.iterate
code: protected theorem iterate {f : α → α} (hf : MeasurePreserving f μa μa) :
    ∀ n, MeasurePreserving f^[n] μa μa
  
goal: MeasureTheory.MeasurePreserving f^[n] μa μa

full_name: MeasureTheory.MeasurePreserving.measure_symmDiff_preimage_iterate_le
code: lemma measure_symmDiff_preimage_iterate_le
    (hf : MeasurePreserving f μ μ) (hs : NullMeasurableSet s μ) (n : ℕ) :
    μ (s ∆ (f^[n] ⁻¹' s)) ≤ n • μ (s ∆ (f ⁻¹' s)) 
goal: μ (symmDiff s (f^[n] ⁻¹' s)) ≤ n • μ (symmDiff s (f ⁻¹' s))

full_name: MeasureTheory.MeasurePreserving.exists_mem_iterate_mem_of_volume_lt_mul_volume
code: /-- If `μ univ < n * μ s` and `f` is a map preserving measure `μ`,
then for some `x ∈ s` and `0 < m < n`, `f^[m] x ∈ s`. -/
theorem exists_mem_iterate_mem_of_volume_lt_mul_volume (hf : MeasurePreserving f μ μ)
    (hs : NullMeasurableSet s μ) {n : ℕ} (hvol : μ (Set.univ : Set α) < n * μ s) :
    ∃ x ∈ s, ∃ m ∈ Set.Ioo 0 n, f^[m] x ∈ s 
goal: ∃ x ∈ s, ∃ m ∈ Set.Ioo 0 n, f^[m] x ∈ s

full_name: MeasureTheory.MeasurePreserving.exists_mem_iterate_mem
code: /-- A self-map preserving a finite measure is conservative: if `μ s ≠ 0`, then at least one point
`x ∈ s` comes back to `s` under iterations of `f`. Actually, a.e. point of `s` comes back to `s`
infinitely many times, see `MeasureTheory.MeasurePreserving.conservative` and theorems about
`MeasureTheory.Conservative`. -/
theorem exists_mem_iterate_mem [IsFiniteMeasure μ] (hf : MeasurePreserving f μ μ)
    (hs : NullMeasurableSet s μ) (hs' : μ s ≠ 0) : ∃ x ∈ s, ∃ m ≠ 0, f^[m] x ∈ s 
goal: ∃ x ∈ s, ∃ m, m ≠ 0 ∧ f^[m] x ∈ s

full_name: MeasureTheory.MeasurableEquiv.measurePreserving_symm
code: theorem measurePreserving_symm (μ : Measure α) (e : α ≃ᵐ β) :
    MeasurePreserving e.symm (map e μ) μ 
goal: MeasureTheory.MeasurePreserving (⇑e.symm) (MeasureTheory.Measure.map (⇑e) μ) μ