Theorem: MeasureTheory.lintegral_iSup_directed
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp_rw [← iSup_apply]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
⊢ (∫⁻ (a : α), ⨆ (b : β), f b a ∂μ) = ⨆ (b : β), ∫⁻ (a : α), f b a ∂μ

tactic: let p : α → (β → ENNReal) → Prop := fun x f' => Directed LE.le f'
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
⊢ (∫⁻ (a : α), iSup (fun i => f i) a ∂μ) = ⨆ (b : β), ∫⁻ (a : α), f b a ∂μ

tactic: have hp : ∀ᵐ x ∂μ, p x fun i => f i x := by
  filter_upwards [] with x i j
  obtain ⟨z, hz₁, hz₂⟩ := h_directed i j
  exact ⟨z, hz₁ x, hz₂ x⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
⊢ (∫⁻ (a : α), iSup (fun i => f i) a ∂μ) = ⨆ (b : β), ∫⁻ (a : α), f b a ∂μ

tactic: convert lintegral_iSup_directed_of_measurable (aeSeq.measurable hf p) h_ae_seq_directed using 1
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
⊢ (∫⁻ (a : α), iSup (fun i => f i) a ∂μ) = ⨆ (b : β), ∫⁻ (a : α), f b a ∂μ

tactic: filter_upwards [] with x i j
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
⊢ ∀ᵐ (x : α) ∂μ, p x fun i => f i x

tactic: obtain ⟨z, hz₁, hz₂⟩ := h_directed i j
state_before: case h
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
x : α
i j : β
⊢ ∃ z, (fun i => f i x) i ≤ (fun i => f i x) z ∧ (fun i => f i x) j ≤ (fun i => f i x) z

tactic: exact ⟨z, hz₁ x, hz₂ x⟩
state_before: case h.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
x : α
i j z : β
hz₁ : f i ≤ f z
hz₂ : f j ≤ f z
⊢ ∃ z, (fun i => f i x) i ≤ (fun i => f i x) z ∧ (fun i => f i x) j ≤ (fun i => f i x) z

tactic: intro b₁ b₂
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
⊢ Directed LE.le (aeSeq hf p)

tactic: obtain ⟨z, hz₁, hz₂⟩ := h_directed b₁ b₂
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ : β
⊢ ∃ z, aeSeq hf p b₁ ≤ aeSeq hf p z ∧ aeSeq hf p b₂ ≤ aeSeq hf p z

tactic: intro x
state_before: case intro.intro.refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
⊢ aeSeq hf p b₂ ≤ aeSeq hf p z

tactic: by_cases hx : x ∈ aeSeqSet hf p
state_before: case intro.intro.refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
⊢ aeSeq hf p b₂ x ≤ aeSeq hf p z x

tactic: repeat' rw [aeSeq.aeSeq_eq_fun_of_mem_aeSeqSet hf hx]
state_before: case pos
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
hx : x ∈ aeSeqSet hf p
⊢ aeSeq hf p b₂ x ≤ aeSeq hf p z x

tactic: apply_rules [hz₁, hz₂]
state_before: case pos
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
hx : x ∈ aeSeqSet hf p
⊢ f b₂ x ≤ f z x

tactic: rw [aeSeq.aeSeq_eq_fun_of_mem_aeSeqSet hf hx]
state_before: case pos
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
hx : x ∈ aeSeqSet hf p
⊢ f b₂ x ≤ f z x

tactic: simp only [aeSeq, hx, if_false]
state_before: case neg
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
hx : ¬x ∈ aeSeqSet hf p
⊢ aeSeq hf p b₂ x ≤ aeSeq hf p z x

tactic: exact le_rfl
state_before: case neg
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
b₁ b₂ z : β
hz₁ : f b₁ ≤ f z
hz₂ : f b₂ ≤ f z
x : α
hx : ¬x ∈ aeSeqSet hf p
⊢ Nonempty.some (_ : Nonempty ℝ≥0∞) ≤ Nonempty.some (_ : Nonempty ℝ≥0∞)

tactic: simp_rw [← iSup_apply]
state_before: case h.e'_2
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
⊢ (∫⁻ (a : α), iSup (fun i => f i) a ∂μ) = ∫⁻ (a : α), ⨆ (b : β), aeSeq hf p b a ∂?m.1013517

tactic: rw [lintegral_congr_ae (aeSeq.iSup hf hp).symm]
state_before: case h.e'_2
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
⊢ (∫⁻ (a : α), iSup (fun i => f i) a ∂μ) =
    ∫⁻ (a : α), iSup (fun i => aeSeq hf (fun x f' => Directed LE.le f') i) a ∂?m.1013517

tactic: congr 1
state_before: case h.e'_3
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
⊢ (⨆ (b : β), ∫⁻ (a : α), f b a ∂μ) = ⨆ (b : β), ∫⁻ (a : α), aeSeq hf p b a ∂μ

tactic: ext1 b
state_before: case h.e'_3.e_s
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
⊢ (fun b => ∫⁻ (a : α), f b a ∂μ) = fun b => ∫⁻ (a : α), aeSeq hf p b a ∂μ

tactic: rw [lintegral_congr_ae]
state_before: case h.e'_3.e_s.h
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
b : β
⊢ (∫⁻ (a : α), f b a ∂μ) = ∫⁻ (a : α), aeSeq hf p b a ∂μ

tactic: apply EventuallyEq.symm
state_before: case h.e'_3.e_s.h
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
b : β
⊢ (fun a => f b a) =ᵐ[μ] fun a => aeSeq hf p b a

tactic: refine' aeSeq.aeSeq_n_eq_fun_n_ae hf hp _
state_before: case h.e'_3.e_s.h.H
α : Type u_2
β : Type u_1
γ : Type ?u.1010067
δ : Type ?u.1010070
m : MeasurableSpace α
μ ν : Measure α
inst✝ : Countable β
f : β → α → ℝ≥0∞
hf : ∀ (b : β), AEMeasurable (f b)
h_directed : Directed (fun x x_1 => x ≤ x_1) f
p : α → (β → ℝ≥0∞) → Prop := fun x f' => Directed LE.le f'
hp : ∀ᵐ (x : α) ∂μ, p x fun i => f i x
h_ae_seq_directed : Directed LE.le (aeSeq hf p)
b : β
⊢ (fun a => aeSeq hf p b a) =ᵐ[μ] fun a => f b a