Theorem: MeasureTheory.ae_eq_zero_of_forall_dual_of_isSeparable
File: Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean

tactic: rcases ht with ⟨d, d_count, hd⟩
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
ht : IsSeparable t
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
⊢ f =ᵐ[μ] 0

tactic: haveI : Encodable d := d_count.toEncodable
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
⊢ f =ᵐ[μ] 0

tactic: have : ∀ x : d, ∃ g : E →L[𝕜] 𝕜, ‖g‖ ≤ 1 ∧ g x = ‖(x : E)‖ :=
  fun x => exists_dual_vector'' 𝕜 (x : E)
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
⊢ f =ᵐ[μ] 0

tactic: choose s hs using this
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
this : ∀ (x : ↑d), ∃ g, ‖g‖ ≤ 1 ∧ ↑g ↑x = ↑‖↑x‖
⊢ f =ᵐ[μ] 0

tactic: have A : ∀ a : E, a ∈ t → (∀ x, ⟪a, s x⟫ = (0 : 𝕜)) → a = 0 := by
  intro a hat ha
  contrapose! ha
  have a_pos : 0 < ‖a‖ := by simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
  have a_mem : a ∈ closure d := hd hat
  obtain ⟨x, hx⟩ : ∃ x : d, dist a x < ‖a‖ / 2 := by
    rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
    exact ⟨⟨x, h'x⟩, hx⟩
  use x
  have I : ‖a‖ / 2 < ‖(x : E)‖ := by
    have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
    have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx
    linarith
  intro h
  apply lt_irrefl ‖s x x‖
  calc
    ‖s x x‖ = ‖s x (x - a)‖ := by simp only [h, sub_zero, ContinuousLinearMap.map_sub]
    _ ≤ 1 * ‖(x : E) - a‖ := (ContinuousLinearMap.le_of_op_norm_le _ (hs x).1 _)
    _ < ‖a‖ / 2 := by rw [one_mul]; rwa [dist_eq_norm'] at hx
    _ < ‖(x : E)‖ := I
    _ = ‖s x x‖ := by rw [(hs x).2, IsROrC.norm_coe_norm]
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
⊢ f =ᵐ[μ] 0

tactic: have hfs : ∀ y : d, ∀ᵐ x ∂μ, ⟪f x, s y⟫ = (0 : 𝕜) := fun y => hf (s y)
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
⊢ f =ᵐ[μ] 0

tactic: have hf' : ∀ᵐ x ∂μ, ∀ y : d, ⟪f x, s y⟫ = (0 : 𝕜) := by rwa [ae_all_iff]
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
⊢ f =ᵐ[μ] 0

tactic: filter_upwards [hf', h't] with x hx h'x
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
hf' : ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0
⊢ f =ᵐ[μ] 0

tactic: exact A (f x) h'x hx
state_before: case h
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
hf' : ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0
x : α
hx : ∀ (y : ↑d), ↑(s y) (f x) = 0
h'x : f x ∈ t
⊢ f x = OfNat.ofNat 0 x

tactic: intro a hat ha
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
⊢ ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0

tactic: contrapose! ha
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : ∀ (x : ↑d), ↑(s x) a = 0
⊢ a = 0

tactic: have a_pos : 0 < ‖a‖ := by simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
⊢ ∃ x, ↑(s x) a ≠ 0

tactic: have a_mem : a ∈ closure d := hd hat
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
⊢ ∃ x, ↑(s x) a ≠ 0

tactic: obtain ⟨x, hx⟩ : ∃ x : d, dist a x < ‖a‖ / 2 := by
  rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
  exact ⟨⟨x, h'x⟩, hx⟩
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
⊢ ∃ x, ↑(s x) a ≠ 0

tactic: use x
state_before: case intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ∃ x, ↑(s x) a ≠ 0

tactic: have I : ‖a‖ / 2 < ‖(x : E)‖ := by
  have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
  have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx
  linarith
state_before: case intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ↑(s x) a ≠ 0

tactic: intro h
state_before: case intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
⊢ ↑(s x) a ≠ 0

tactic: apply lt_irrefl ‖s x x‖
state_before: case intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ False

tactic: calc
  ‖s x x‖ = ‖s x (x - a)‖ := by simp only [h, sub_zero, ContinuousLinearMap.map_sub]
  _ ≤ 1 * ‖(x : E) - a‖ := (ContinuousLinearMap.le_of_op_norm_le _ (hs x).1 _)
  _ < ‖a‖ / 2 := by rw [one_mul]; rwa [dist_eq_norm'] at hx
  _ < ‖(x : E)‖ := I
  _ = ‖s x x‖ := by rw [(hs x).2, IsROrC.norm_coe_norm]
state_before: case intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑(s x) ↑x‖ < ‖↑(s x) ↑x‖

tactic: simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
⊢ 0 < ‖a‖

tactic: rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
⊢ ∃ x, dist a ↑x < ‖a‖ / 2

tactic: exact ⟨⟨x, h'x⟩, hx⟩
state_before: case intro.intro
α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : E
h'x : x ∈ d
hx : dist a x < ‖a‖ / 2
⊢ ∃ x, dist a ↑x < ‖a‖ / 2

tactic: have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ‖a‖ / 2 < ‖↑x‖

tactic: have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
⊢ ‖a‖ / 2 < ‖↑x‖

tactic: linarith
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝¹ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this✝ : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
this : ‖a - ↑x‖ < ‖a‖ / 2
⊢ ‖a‖ / 2 < ‖↑x‖

tactic: rwa [dist_eq_norm] at hx
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
⊢ ‖a - ↑x‖ < ‖a‖ / 2

tactic: simp only [h, sub_zero, ContinuousLinearMap.map_sub]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑(s x) ↑x‖ = ‖↑(s x) (↑x - a)‖

tactic: rw [one_mul]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ 1 * ‖↑x - a‖ < ‖a‖ / 2

tactic: rwa [dist_eq_norm'] at hx
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑x - a‖ < ‖a‖ / 2

tactic: rw [(hs x).2, IsROrC.norm_coe_norm]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑x‖ = ‖↑(s x) ↑x‖

tactic: rwa [ae_all_iff]
state_before: α : Type u_3
E : Type u_1
𝕜 : Type u_2
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
⊢ ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0