Theorem: MeasureTheory.Lp.compMeasurePreserving_continuous
File: Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean

Proof steps:
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
⊢ Continuous fun gf => (compMeasurePreserving ⇑↑gf.2 ⋯) gf.1
state_after: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
⊢ Continuous fun gf => (compMeasurePreserving ⇑↑gf.2 ⋯) gf.1
tactic: have hp₀ : p ≠ 0 := (one_pos.trans_le Fact.out).ne'
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
⊢ Continuous fun gf => (compMeasurePreserving ⇑↑gf.2 ⋯) gf.1
state_after: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
⊢ ∀ a ∈ ↑(simpleFunc E p ν), Continuous fun y => (compMeasurePreserving ⇑↑(a, y).2 ⋯) (a, y).1
tactic: refine continuous_prod_of_dense_continuous_lipschitzWith _ 1
    (MeasureTheory.Lp.simpleFunc.dense hp) ?_ fun f ↦ (isometry_compMeasurePreserving f.2).lipschitz
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
⊢ ∀ a ∈ ↑(simpleFunc E p ν), Continuous fun y => (compMeasurePreserving ⇑↑(a, y).2 ⋯) (a, y).1
state_after: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
f : ↥(Lp E p ν)
hf : f ∈ ↑(simpleFunc E p ν)
⊢ Continuous fun y => (compMeasurePreserving ⇑↑(f, y).2 ⋯) (f, y).1
tactic: intro f hf
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
f : ↥(Lp E p ν)
hf : f ∈ ↑(simpleFunc E p ν)
⊢ Continuous fun y => (compMeasurePreserving ⇑↑(f, y).2 ⋯) (f, y).1
state_after: case intro
α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
f : ↥(simpleFunc E p ν)
⊢ Continuous fun y => (compMeasurePreserving ⇑↑(↑f, y).2 ⋯) (↑f, y).1
tactic: lift f to Lp.simpleFunc E p ν using hf
state_before: case intro
α : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : R1Space X
inst✝⁷ : TopologicalSpace Y
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : BorelSpace Y
inst✝⁴ : R1Space Y
μ : Measure X
ν : Measure Y
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure ν
E : Type u_4
inst✝¹ : NormedAddCommGroup E
p : ℝ≥0∞
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
hp₀ : p ≠ 0
f : ↥(simpleFunc E p ν)
⊢ Continuous fun y => (compMeasurePreserving ⇑↑(↑f, y).2 ⋯) (↑f, y).1
state_after: no goals
tactic: induction f using Lp.simpleFunc.induction hp₀ hp with
  | h_add hfp hgp _ ihf ihg => exact ihf.add ihg
  | @h_ind c s hs hνs =>
    dsimp only [Lp.simpleFunc.coe_indicatorConst, Lp.indicatorConstLp_compMeasurePreserving]
    refine continuous_indicatorConstLp_set hp fun f ↦ ?_
    apply tendsto_measure_symmDiff_preimage_nhds_zero continuousAt_subtype_val _ f.2 hs hνs.ne
    exact eventually_of_forall Subtype.property