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

tactic: constructor
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
⊢ f.FinMeasSupp μ ↔ ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
⊢ f.FinMeasSupp μ → ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤

case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
⊢ (∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤) → f.FinMeasSupp μ

tactic: refine fun h y hy => lt_of_le_of_lt (measure_mono ?_) h
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
⊢ f.FinMeasSupp μ → ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
h : f.FinMeasSupp μ
y : β
hy : y ≠ 0
⊢ ↑f ⁻¹' {y} ⊆ {x | (fun x => ↑f x = 0 x) x}ᶜ

tactic: exact fun x hx (H : f x = 0) => hy <| H ▸ Eq.symm hx
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
h : f.FinMeasSupp μ
y : β
hy : y ≠ 0
⊢ ↑f ⁻¹' {y} ⊆ {x | (fun x => ↑f x = 0 x) x}ᶜ
state_after: no goals

tactic: intro H
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
⊢ (∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤) → f.FinMeasSupp μ
state_after: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ f.FinMeasSupp μ

tactic: rw [finMeasSupp_iff_support, support_eq]
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ f.FinMeasSupp μ
state_after: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ μ (⋃ y ∈ filter (fun y => y ≠ 0) f.range, ↑f ⁻¹' {y}) < ⊤

tactic: refine lt_of_le_of_lt (measure_biUnion_finset_le _ _) (sum_lt_top ?_)
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ μ (⋃ y ∈ filter (fun y => y ≠ 0) f.range, ↑f ⁻¹' {y}) < ⊤
state_after: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ ∀ a ∈ filter (fun y => y ≠ 0) f.range, μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: exact fun y hy => (H y (Finset.mem_filter.1 hy).2).ne
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f : α →ₛ β
H : ∀ (y : β), y ≠ 0 → μ (↑f ⁻¹' {y}) < ⊤
⊢ ∀ a ∈ filter (fun y => y ≠ 0) f.range, μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: no goals