Theorem: MeasureTheory.Measure.LebesgueDecomposition.iSup_succ_eq_sup
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: set c := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a with hc
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
⊢ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
⊢ c = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a

tactic: set d := f m.succ a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a with hd
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
⊢ c = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ c = d

tactic: rw [le_antisymm_iff, hc, hd]
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ c = d
state_after: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ∧
    f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a

tactic: constructor
state_before: α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ∧
    f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
state_after: case left
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a

case right
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a

tactic: refine iSup₂_le fun n hn ↦ ?_
state_before: case left
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: case left
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a

tactic: rcases Nat.of_le_succ hn with (h | h)
state_before: case left
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: case left.inl
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n ≤ m
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a

case left.inr
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n = m.succ
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a

tactic: exact le_sup_of_le_right (le_iSup₂ (f := fun k (_ : k ≤ m) ↦ f k a) n h)
state_before: case left.inl
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n ≤ m
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: no goals

tactic: exact h ▸ le_sup_left
state_before: case left.inr
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n = m.succ
⊢ f n a ≤ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
state_after: no goals

tactic: refine sup_le ?_ (biSup_mono fun n hn ↦ hn.trans m.le_succ)
state_before: case right
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
state_after: case right
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ f m.succ a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a

tactic: exact @le_iSup₂ ℝ≥0∞ ℕ (fun i ↦ i ≤ m + 1) _ _ (m + 1) le_rfl
state_before: case right
α✝ : Type u_1
β : Type u_2
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_3
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
c : ℝ≥0∞ := ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
hc : c = ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
hd : d = f m.succ a ⊔ ⨆ k, ⨆ (_ : k ≤ m), f k a
⊢ f m.succ a ≤ ⨆ k, ⨆ (_ : k ≤ m + 1), f k a
state_after: no goals