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

tactic: refine Option.ext fun x => ?_
state_before: α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
⊢ (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: simp only [Option.mem_def, ENNReal.some_eq_coe]
state_before: α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
⊢ (x ∈ ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) ↔ x ∈ f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: constructor <;> intro h <;> rw [← h]
state_before: α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
⊢ (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) = ↑x ↔ (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) = ↑x

tactic: symm
state_before: case mp
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
h : (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) = ↑x
⊢ (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a

case mpr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
h : (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) = ↑x
⊢ (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: set c := ⨆ (k : ℕ) (hk : k ≤ m + 1), f k a with hc
state_before: case mpr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
h : (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) = ↑x
⊢ (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: set d := f m.succ a ⊔ ⨆ (k : ℕ) (hk : k ≤ m), f k a with hd
state_before: case mpr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
h : (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) = ↑x
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
⊢ c = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: rw [@le_antisymm_iff ℝ≥0∞, hc, hd]
state_before: case mpr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ c = d

tactic: refine' ⟨_, _⟩
state_before: case mpr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ ((⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) ≤ f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) ∧
    (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) ≤ ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a

tactic: refine' iSup₂_le fun n hn => _
state_before: case mpr.refine'_1
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ (⨆ (k : ℕ) (_ : k ≤ m + 1), f k a) ≤ f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: rcases Nat.of_le_succ hn with (h | h)
state_before: case mpr.refine'_1
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
⊢ f n a ≤ f (Nat.succ m) 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 mpr.refine'_1.inl
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h✝ : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n ≤ m
⊢ f n a ≤ f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: exact h ▸ le_sup_left
state_before: case mpr.refine'_1.inr
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h✝ : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
n : ℕ
hn : n ≤ m + 1
h : n = Nat.succ m
⊢ f n a ≤ f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a

tactic: refine' sup_le _ (biSup_mono fun n hn => hn.trans m.le_succ)
state_before: case mpr.refine'_2
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ (f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a) ≤ ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a

tactic: convert @le_iSup₂ ℝ≥0∞ ℕ (fun i => i ≤ m + 1) _ _ m.succ le_rfl
state_before: case mpr.refine'_2
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ f (Nat.succ m) a ≤ ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a

tactic: rfl
state_before: case h.e'_3
α✝ : Type ?u.91770
β : Type ?u.91773
m✝ : MeasurableSpace α✝
μ ν : Measure α✝
α : Sort u_1
f : ℕ → α → ℝ≥0∞
m : ℕ
a : α
x : ℝ≥0
c : ℝ≥0∞ := ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
hc : c = ⨆ (k : ℕ) (_ : k ≤ m + 1), f k a
d : ℝ≥0∞ := f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
h : d = ↑x
hd : d = f (Nat.succ m) a ⊔ ⨆ (k : ℕ) (_ : k ≤ m), f k a
⊢ f (Nat.succ m) a = f (Nat.succ m) a