Theorem: AEMeasurable.isLUB
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: by_cases hμ : μ = 0
state_before: α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
⊢ AEMeasurable g

tactic: have : μ.ae.NeBot := by simpa [neBot_iff]
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
⊢ AEMeasurable g

tactic: by_cases hι : Nonempty ι
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
⊢ AEMeasurable g

tactic: suffices ∃ x, g =ᵐ[μ] fun _ => g x by
  exact ⟨fun _ => g this.choose, measurable_const, this.choose_spec⟩
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
⊢ AEMeasurable g

tactic: have h_empty : ∀ x, { a : α | ∃ i : ι, f i x = a } = ∅ := by
  intro x
  ext1 y
  rw [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false_iff]
  exact fun hi => hι (nonempty_of_exists hi)
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
⊢ ∃ x, g =ᵐ[μ] fun x_1 => g x

tactic: simp_rw [h_empty] at hg
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
h_empty : ∀ (x : δ), {a | ∃ i, f i x = a} = ∅
⊢ ∃ x, g =ᵐ[μ] fun x_1 => g x

tactic: exact ⟨hg.exists.choose, hg.mono fun y hy => IsLUB.unique hy hg.exists.choose_spec⟩
state_before: case neg
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
h_empty : ∀ (x : δ), {a | ∃ i, f i x = a} = ∅
hg : ∀ᵐ (b : δ) ∂μ, IsLUB ∅ (g b)
⊢ ∃ x, g =ᵐ[μ] fun x_1 => g x

tactic: rw [hμ]
state_before: case pos
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : μ = 0
⊢ AEMeasurable g

tactic: exact aemeasurable_zero_measure
state_before: case pos
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : μ = 0
⊢ AEMeasurable g

tactic: simpa [neBot_iff]
state_before: α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
⊢ NeBot (Measure.ae μ)

tactic: exact AEMeasurable.is_lub_of_nonempty hι hf hg
state_before: case pos
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : Nonempty ι
⊢ AEMeasurable g

tactic: exact ⟨fun _ => g this.choose, measurable_const, this.choose_spec⟩
state_before: α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this✝ : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
this : ∃ x, g =ᵐ[μ] fun x_1 => g x
⊢ AEMeasurable g

tactic: intro x
state_before: α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
⊢ ∀ (x : δ), {a | ∃ i, f i x = a} = ∅

tactic: ext1 y
state_before: α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
x : δ
⊢ {a | ∃ i, f i x = a} = ∅

tactic: rw [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false_iff]
state_before: case h
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
x : δ
y : α
⊢ y ∈ {a | ∃ i, f i x = a} ↔ y ∈ ∅

tactic: exact fun hi => hι (nonempty_of_exists hi)
state_before: case h
α : Type u_3
β : Type ?u.1154773
γ : Type ?u.1154776
γ₂ : Type ?u.1154779
δ : Type u_2
ι✝ : Sort y
s t u : Set α
inst✝¹³ : TopologicalSpace α
inst✝¹² : MeasurableSpace α
inst✝¹¹ : BorelSpace α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : MeasurableSpace β
inst✝⁸ : BorelSpace β
inst✝⁷ : TopologicalSpace γ
inst✝⁶ : MeasurableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : MeasurableSpace δ
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : SecondCountableTopology α
ι : Sort u_1
μ : MeasureTheory.Measure δ
inst✝ : Countable ι
f : ι → δ → α
g : δ → α
hf : ∀ (i : ι), AEMeasurable (f i)
hg : ∀ᵐ (b : δ) ∂μ, IsLUB {a | ∃ i, f i b = a} (g b)
hμ : ¬μ = 0
this : NeBot (Measure.ae μ)
hι : ¬Nonempty ι
x : δ
y : α
⊢ ¬∃ i, f i x = y