Theorem: MeasureTheory.SimpleFunc.iSup_approx_apply
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: refine' le_antisymm (iSup_le fun n => _) (iSup_le fun k => iSup_le fun hk => _)
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
⊢ (⨆ (n : ℕ), ↑(approx i f n) a) = ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: rw [approx_apply a hf, h_zero]
state_before: case refine'_1
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n : ℕ
⊢ ↑(approx i f n) a ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: refine' Finset.sup_le fun k _ => _
state_before: case refine'_1
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n : ℕ
⊢ (Finset.sup (Finset.range n) fun k => if i k ≤ f a then i k else ⊥) ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: split_ifs with h
state_before: case refine'_1
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n k : ℕ
x✝ : k ∈ Finset.range n
⊢ (if i k ≤ f a then i k else ⊥) ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: exact le_iSup_of_le k (le_iSup (fun _ : i k ≤ f a => i k) h)
state_before: case refine'_1.inl
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n k : ℕ
x✝ : k ∈ Finset.range n
h : i k ≤ f a
⊢ i k ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

case refine'_1.inr
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n k : ℕ
x✝ : k ∈ Finset.range n
h : ¬i k ≤ f a
⊢ ⊥ ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: exact bot_le
state_before: case refine'_1.inr
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
n k : ℕ
x✝ : k ∈ Finset.range n
h : ¬i k ≤ f a
⊢ ⊥ ≤ ⨆ (k : ℕ) (_ : i k ≤ f a), i k

tactic: refine' le_iSup_of_le (k + 1) _
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
k : ℕ
hk : i k ≤ f a
⊢ i k ≤ ⨆ (n : ℕ), ↑(approx i f n) a

tactic: rw [approx_apply a hf]
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
k : ℕ
hk : i k ≤ f a
⊢ i k ≤ ↑(approx i f (k + 1)) a

tactic: have : k ∈ Finset.range (k + 1) := Finset.mem_range.2 (Nat.lt_succ_self _)
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
k : ℕ
hk : i k ≤ f a
⊢ i k ≤ Finset.sup (Finset.range (k + 1)) fun k => if i k ≤ f a then i k else 0

tactic: refine' le_trans (le_of_eq _) (Finset.le_sup this)
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
k : ℕ
hk : i k ≤ f a
this : k ∈ Finset.range (k + 1)
⊢ i k ≤ Finset.sup (Finset.range (k + 1)) fun k => if i k ≤ f a then i k else 0

tactic: rw [if_pos hk]
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.829816
δ : Type ?u.829819
inst✝⁶ : MeasurableSpace α
K : Type ?u.829825
inst✝⁵ : TopologicalSpace β
inst✝⁴ : CompleteLattice β
inst✝³ : OrderClosedTopology β
inst✝² : Zero β
inst✝¹ : MeasurableSpace β
inst✝ : OpensMeasurableSpace β
i : ℕ → β
f : α → β
a : α
hf : Measurable f
h_zero : 0 = ⊥
k : ℕ
hk : i k ≤ f a
this : k ∈ Finset.range (k + 1)
⊢ i k = if i k ≤ f a then i k else 0