Theorem: MeasureTheory.indicatorConstLp_eq_toSpanSingleton_compLp
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: ext1
state_before: α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
⊢ indicatorConstLp 2 hs hμs x =
    ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)

tactic: refine' indicatorConstLp_coeFn.trans _
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
⊢ ↑↑(indicatorConstLp 2 hs hμs x) =ᵐ[μ]
    ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1))

tactic: have h_compLp :=
  (ContinuousLinearMap.toSpanSingleton ℝ x).coeFn_compLp (indicatorConstLp 2 hs hμs (1 : ℝ))
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
⊢ (Set.indicator s fun x_1 => x) =ᵐ[μ]
    ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1))

tactic: rw [← EventuallyEq] at h_compLp
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  ∀ᵐ (a : α) ∂μ,
    ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a =
      ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
⊢ (Set.indicator s fun x_1 => x) =ᵐ[μ]
    ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1))

tactic: refine' EventuallyEq.trans _ h_compLp.symm
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
⊢ (Set.indicator s fun x_1 => x) =ᵐ[μ]
    ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1))

tactic: refine' (@indicatorConstLp_coeFn _ _ _ 2 μ _ s hs hμs (1 : ℝ)).mono fun y hy => _
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
⊢ (Set.indicator s fun x_1 => x) =ᵐ[μ] fun a =>
    ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)

tactic: dsimp only
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
y : α
hy : ↑↑(indicatorConstLp 2 hs hμs 1) y = Set.indicator s (fun x => 1) y
⊢ Set.indicator s (fun x_1 => x) y =
    (fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)) y

tactic: rw [hy]
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
y : α
hy : ↑↑(indicatorConstLp 2 hs hμs 1) y = Set.indicator s (fun x => 1) y
⊢ Set.indicator s (fun x_1 => x) y = ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) y)

tactic: simp_rw [ContinuousLinearMap.toSpanSingleton_apply]
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
y : α
hy : ↑↑(indicatorConstLp 2 hs hμs 1) y = Set.indicator s (fun x => 1) y
⊢ Set.indicator s (fun x_1 => x) y = ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (Set.indicator s (fun x => 1) y)

tactic: by_cases hy_mem : y ∈ s <;> simp [hy_mem, ContinuousLinearMap.lsmul_apply]
state_before: case h
α : Type u_1
E : Type ?u.8082404
F : Type u_2
G : Type ?u.8082410
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
s : Set α
inst✝ : NormedSpace ℝ F
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : F
h_compLp :
  (fun a =>
      ↑↑(ContinuousLinearMap.compLp (ContinuousLinearMap.toSpanSingleton ℝ x) (indicatorConstLp 2 hs hμs 1)) a) =ᵐ[μ]
    fun a => ↑(ContinuousLinearMap.toSpanSingleton ℝ x) (↑↑(indicatorConstLp 2 hs hμs 1) a)
y : α
hy : ↑↑(indicatorConstLp 2 hs hμs 1) y = Set.indicator s (fun x => 1) y
⊢ Set.indicator s (fun x_1 => x) y = Set.indicator s (fun x => 1) y • x