[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
inst✝ : LinearOrder α
a b : α
P : α → Prop
⊢ (∀ᵐ (x : α) ∂μ, x ∈ Ι a b → P x) ↔ (∀ᵐ (x : α) ∂μ, x ∈ Ioc a b → P x) ∧ ∀ᵐ (x : α) ∂μ, x ∈ Ioc b a → P x
[PROOFSTEP]
simp only [uIoc_eq_union, mem_union, or_imp, eventually_and]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t s : Set α
ht : MeasurableSet t
⊢ ↑↑μ (s ∪ t) + ↑↑μ (s ∩ t) = ↑↑μ s + ↑↑μ t
[PROOFSTEP]
rw [← measure_inter_add_diff (s ∪ t) ht, Set.union_inter_cancel_right, union_diff_right, ← measure_inter_add_diff s ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t s : Set α
ht : MeasurableSet t
⊢ ↑↑μ t + ↑↑μ (s \ t) + ↑↑μ (s ∩ t) = ↑↑μ (s ∩ t) + ↑↑μ (s \ t) + ↑↑μ t
[PROOFSTEP]
ac_rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ (s ∪ t) + ↑↑μ (s ∩ t) = ↑↑μ s + ↑↑μ t
[PROOFSTEP]
rw [union_comm, inter_comm, measure_union_add_inter t hs, add_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
⊢ ↑↑μ (s ∆ t) = ↑↑μ (s \ t) + ↑↑μ (t \ s)
[PROOFSTEP]
simpa only [symmDiff_def, sup_eq_union] using measure_union disjoint_sdiff_sdiff (ht.diff hs)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Set β
f : β → Set α
hs : Set.Countable s
hd : Set.Pairwise s (AEDisjoint μ on f)
h : ∀ (b : β), b ∈ s → NullMeasurableSet (f b)
⊢ ↑↑μ (⋃ (b : β) (_ : b ∈ s), f b) = ∑' (p : ↑s), ↑↑μ (f ↑p)
[PROOFSTEP]
haveI := hs.toEncodable
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Set β
f : β → Set α
hs : Set.Countable s
hd : Set.Pairwise s (AEDisjoint μ on f)
h : ∀ (b : β), b ∈ s → NullMeasurableSet (f b)
this : Encodable ↑s
⊢ ↑↑μ (⋃ (b : β) (_ : b ∈ s), f b) = ∑' (p : ↑s), ↑↑μ (f ↑p)
[PROOFSTEP]
rw [biUnion_eq_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Set β
f : β → Set α
hs : Set.Countable s
hd : Set.Pairwise s (AEDisjoint μ on f)
h : ∀ (b : β), b ∈ s → NullMeasurableSet (f b)
this : Encodable ↑s
⊢ ↑↑μ (⋃ (x : ↑s), f ↑x) = ∑' (p : ↑s), ↑↑μ (f ↑p)
[PROOFSTEP]
exact measure_iUnion₀ (hd.on_injective Subtype.coe_injective fun x => x.2) fun x => h x x.2
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
S : Set (Set α)
hs : Set.Countable S
hd : Set.Pairwise S (AEDisjoint μ)
h : ∀ (s : Set α), s ∈ S → NullMeasurableSet s
⊢ ↑↑μ (⋃₀ S) = ∑' (s : ↑S), ↑↑μ ↑s
[PROOFSTEP]
rw [sUnion_eq_biUnion, measure_biUnion₀ hs hd h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
S : Set (Set α)
hs : Set.Countable S
hd : Set.Pairwise S Disjoint
h : ∀ (s : Set α), s ∈ S → MeasurableSet s
⊢ ↑↑μ (⋃₀ S) = ∑' (s : ↑S), ↑↑μ ↑s
[PROOFSTEP]
rw [sUnion_eq_biUnion, measure_biUnion hs hd h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Finset ι
f : ι → Set α
hd : Set.Pairwise (↑s) (AEDisjoint μ on f)
hm : ∀ (b : ι), b ∈ s → NullMeasurableSet (f b)
⊢ ↑↑μ (⋃ (b : ι) (_ : b ∈ s), f b) = ∑ p in s, ↑↑μ (f p)
[PROOFSTEP]
rw [← Finset.sum_attach, Finset.attach_eq_univ, ← tsum_fintype]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Finset ι
f : ι → Set α
hd : Set.Pairwise (↑s) (AEDisjoint μ on f)
hm : ∀ (b : ι), b ∈ s → NullMeasurableSet (f b)
⊢ ↑↑μ (⋃ (b : ι) (_ : b ∈ s), f b) = ∑' (b : { x // x ∈ s }), ↑↑μ (f ↑b)
[PROOFSTEP]
exact measure_biUnion₀ s.countable_toSet hd hm
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
⊢ ∑' (i : ι), ↑↑μ (As i) ≤ ↑↑μ (⋃ (i : ι), As i)
[PROOFSTEP]
rcases show Summable fun i => μ (As i) from ENNReal.summable with ⟨S, hS⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
S : ℝ≥0∞
hS : HasSum (fun i => ↑↑μ (As i)) S
⊢ ∑' (i : ι), ↑↑μ (As i) ≤ ↑↑μ (⋃ (i : ι), As i)
[PROOFSTEP]
rw [hS.tsum_eq]
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
S : ℝ≥0∞
hS : HasSum (fun i => ↑↑μ (As i)) S
⊢ S ≤ ↑↑μ (⋃ (i : ι), As i)
[PROOFSTEP]
refine' tendsto_le_of_eventuallyLE hS tendsto_const_nhds (eventually_of_forall _)
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
S : ℝ≥0∞
hS : HasSum (fun i => ↑↑μ (As i)) S
⊢ ∀ (x : Finset ι), (fun s => ∑ b in s, (fun i => ↑↑μ (As i)) b) x ≤ (fun x => ↑↑μ (⋃ (i : ι), As i)) x
[PROOFSTEP]
intro s
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
S : ℝ≥0∞
hS : HasSum (fun i => ↑↑μ (As i)) S
s : Finset ι
⊢ (fun s => ∑ b in s, (fun i => ↑↑μ (As i)) b) s ≤ (fun x => ↑↑μ (⋃ (i : ι), As i)) s
[PROOFSTEP]
simp [← measure_biUnion_finset (fun _i _hi _j _hj hij => As_disj hij) fun i _ => As_mble i]
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
S : ℝ≥0∞
hS : HasSum (fun i => ↑↑μ (As i)) S
s : Finset ι
⊢ ↑↑μ (⋃ (b : ι) (_ : b ∈ s), As b) ≤ ↑↑μ (⋃ (i : ι), As i)
[PROOFSTEP]
exact measure_mono (iUnion₂_subset_iUnion (fun i : ι => i ∈ s) fun i : ι => As i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Set β
hs : Set.Countable s
f : α → β
hf : ∀ (y : β), y ∈ s → MeasurableSet (f ⁻¹' {y})
⊢ ∑' (b : ↑s), ↑↑μ (f ⁻¹' {↑b}) = ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
rw [← Set.biUnion_preimage_singleton, measure_biUnion hs (pairwiseDisjoint_fiber f s) hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Finset β
f : α → β
hf : ∀ (y : β), y ∈ s → MeasurableSet (f ⁻¹' {y})
⊢ ∑ b in s, ↑↑μ (f ⁻¹' {b}) = ↑↑μ (f ⁻¹' ↑s)
[PROOFSTEP]
simp only [← measure_biUnion_finset (pairwiseDisjoint_fiber f s) hf, Finset.set_biUnion_preimage_singleton]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ s + ↑↑μ (t \ s) = ↑↑μ (s ∪ t)
[PROOFSTEP]
rw [← measure_union' (@disjoint_sdiff_right _ s t) hs, union_diff_self]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t s : Set α
hm : MeasurableSet t
h_fin : ↑↑μ t ≠ ⊤
⊢ ↑↑μ (s \ t) + ↑↑μ t = ↑↑μ (s ∪ t)
[PROOFSTEP]
rw [add_comm, measure_add_diff hm, union_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : s₂ ⊆ s₁
h₂ : MeasurableSet s₂
h_fin : ↑↑μ s₂ ≠ ⊤
⊢ ↑↑μ (s₁ \ s₂) = ↑↑μ s₁ - ↑↑μ s₂
[PROOFSTEP]
rw [measure_diff' _ h₂ h_fin, union_eq_self_of_subset_right h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : ↑↑μ s ≠ ⊤
ε : ℝ≥0∞
h : ↑↑μ t < ↑↑μ s + ε
⊢ ↑↑μ (t \ s) < ε
[PROOFSTEP]
rw [measure_diff hst hs hs']
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : ↑↑μ s ≠ ⊤
ε : ℝ≥0∞
h : ↑↑μ t < ↑↑μ s + ε
⊢ ↑↑μ t - ↑↑μ s < ε
[PROOFSTEP]
rw [add_comm] at h 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : ↑↑μ s ≠ ⊤
ε : ℝ≥0∞
h : ↑↑μ t < ε + ↑↑μ s
⊢ ↑↑μ t - ↑↑μ s < ε
[PROOFSTEP]
exact ENNReal.sub_lt_of_lt_add (measure_mono hst) h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : ↑↑μ s ≠ ⊤
ε : ℝ≥0∞
⊢ ↑↑μ (t \ s) ≤ ε ↔ ↑↑μ t ≤ ↑↑μ s + ε
[PROOFSTEP]
rw [measure_diff hst hs hs', tsub_le_iff_left]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
⊢ ↑↑μ s₁ = ↑↑μ s₂ ∧ ↑↑μ s₂ = ↑↑μ s₃
[PROOFSTEP]
have le12 : μ s₁ ≤ μ s₂ := measure_mono h12
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
le12 : ↑↑μ s₁ ≤ ↑↑μ s₂
⊢ ↑↑μ s₁ = ↑↑μ s₂ ∧ ↑↑μ s₂ = ↑↑μ s₃
[PROOFSTEP]
have le23 : μ s₂ ≤ μ s₃ := measure_mono h23
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
le12 : ↑↑μ s₁ ≤ ↑↑μ s₂
le23 : ↑↑μ s₂ ≤ ↑↑μ s₃
⊢ ↑↑μ s₁ = ↑↑μ s₂ ∧ ↑↑μ s₂ = ↑↑μ s₃
[PROOFSTEP]
have key : μ s₃ ≤ μ s₁ :=
  calc
    μ s₃ = μ (s₃ \ s₁ ∪ s₁) := by rw [diff_union_of_subset (h12.trans h23)]
    _ ≤ μ (s₃ \ s₁) + μ s₁ := (measure_union_le _ _)
    _ = μ s₁ := by simp only [h_nulldiff, zero_add]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
le12 : ↑↑μ s₁ ≤ ↑↑μ s₂
le23 : ↑↑μ s₂ ≤ ↑↑μ s₃
⊢ ↑↑μ s₃ = ↑↑μ (s₃ \ s₁ ∪ s₁)
[PROOFSTEP]
rw [diff_union_of_subset (h12.trans h23)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
le12 : ↑↑μ s₁ ≤ ↑↑μ s₂
le23 : ↑↑μ s₂ ≤ ↑↑μ s₃
⊢ ↑↑μ (s₃ \ s₁) + ↑↑μ s₁ = ↑↑μ s₁
[PROOFSTEP]
simp only [h_nulldiff, zero_add]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁✝ s₂✝ t s₁ s₂ s₃ : Set α
h12 : s₁ ⊆ s₂
h23 : s₂ ⊆ s₃
h_nulldiff : ↑↑μ (s₃ \ s₁) = 0
le12 : ↑↑μ s₁ ≤ ↑↑μ s₂
le23 : ↑↑μ s₂ ≤ ↑↑μ s₃
key : ↑↑μ s₃ ≤ ↑↑μ s₁
⊢ ↑↑μ s₁ = ↑↑μ s₂ ∧ ↑↑μ s₂ = ↑↑μ s₃
[PROOFSTEP]
exact ⟨le12.antisymm (le23.trans key), le23.antisymm (key.trans le12)⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : MeasurableSet s
h_fin : ↑↑μ s ≠ ⊤
⊢ ↑↑μ sᶜ = ↑↑μ univ - ↑↑μ s
[PROOFSTEP]
rw [compl_eq_univ_diff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : MeasurableSet s
h_fin : ↑↑μ s ≠ ⊤
⊢ ↑↑μ (univ \ s) = ↑↑μ univ - ↑↑μ s
[PROOFSTEP]
exact measure_diff (subset_univ s) h₁ h_fin
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
⊢ s ∪ t =ᵐ[μ] s ↔ t ≤ᵐ[μ] s
[PROOFSTEP]
rw [ae_le_set]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
⊢ s ∪ t =ᵐ[μ] s ↔ ↑↑μ (t \ s) = 0
[PROOFSTEP]
refine'
  ⟨fun h => by simpa only [union_diff_left] using (ae_eq_set.mp h).1, fun h =>
    eventuallyLE_antisymm_iff.mpr
      ⟨by rwa [ae_le_set, union_diff_left], HasSubset.Subset.eventuallyLE <| subset_union_left s t⟩⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : s ∪ t =ᵐ[μ] s
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
simpa only [union_diff_left] using (ae_eq_set.mp h).1
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h : ↑↑μ (t \ s) = 0
⊢ s ∪ t ≤ᵐ[μ] s
[PROOFSTEP]
rwa [ae_le_set, union_diff_left]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
⊢ s ∪ t =ᵐ[μ] t ↔ s ≤ᵐ[μ] t
[PROOFSTEP]
rw [union_comm, union_ae_eq_left_iff_ae_subset]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
h₂ : ↑↑μ t ≤ ↑↑μ s
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
⊢ s =ᵐ[μ] t
[PROOFSTEP]
refine' eventuallyLE_antisymm_iff.mpr ⟨h₁, ae_le_set.mpr _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
h₂ : ↑↑μ t ≤ ↑↑μ s
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
replace h₂ : μ t = μ s
[GOAL]
case h₂
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
h₂ : ↑↑μ t ≤ ↑↑μ s
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
⊢ ↑↑μ t = ↑↑μ s
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
h₂ : ↑↑μ t = ↑↑μ s
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
exact h₂.antisymm (measure_mono_ae h₁)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
h₂ : ↑↑μ t = ↑↑μ s
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
replace ht : μ s ≠ ∞
[GOAL]
case ht
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
hsm : MeasurableSet s
ht : ↑↑μ t ≠ ⊤
h₂ : ↑↑μ t = ↑↑μ s
⊢ ↑↑μ s ≠ ⊤
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
hsm : MeasurableSet s
h₂ : ↑↑μ t = ↑↑μ s
ht : ↑↑μ s ≠ ⊤
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
exact h₂ ▸ ht
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
h₁ : s ≤ᵐ[μ] t
hsm : MeasurableSet s
h₂ : ↑↑μ t = ↑↑μ s
ht : ↑↑μ s ≠ ⊤
⊢ ↑↑μ (t \ s) = 0
[PROOFSTEP]
rw [measure_diff' t hsm ht, measure_congr (union_ae_eq_left_iff_ae_subset.mpr h₁), h₂, tsub_self]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
⊢ ↑↑μ (⋃ (b : β), s b) = ↑↑μ (⋃ (b : β), t b)
[PROOFSTEP]
rcases Classical.em (∃ b, μ (t b) = ∞) with (⟨b, hb⟩ | htop)
[GOAL]
case inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
b : β
hb : ↑↑μ (t b) = ⊤
⊢ ↑↑μ (⋃ (b : β), s b) = ↑↑μ (⋃ (b : β), t b)
[PROOFSTEP]
calc
  μ (⋃ b, s b) = ∞ := top_unique (hb ▸ (h_le b).trans <| measure_mono <| subset_iUnion _ _)
  _ = μ (⋃ b, t b) := Eq.symm <| top_unique <| hb ▸ measure_mono (subset_iUnion _ _)
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ¬∃ b, ↑↑μ (t b) = ⊤
⊢ ↑↑μ (⋃ (b : β), s b) = ↑↑μ (⋃ (b : β), t b)
[PROOFSTEP]
push_neg at htop 
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
⊢ ↑↑μ (⋃ (b : β), s b) = ↑↑μ (⋃ (b : β), t b)
[PROOFSTEP]
refine' le_antisymm (measure_mono (iUnion_mono hsub)) _
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
⊢ ↑↑μ (⋃ (b : β), t b) ≤ ↑↑μ (⋃ (b : β), s b)
[PROOFSTEP]
set M := toMeasurable μ
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
⊢ ↑↑μ (⋃ (b : β), t b) ≤ ↑↑μ (⋃ (b : β), s b)
[PROOFSTEP]
have H : ∀ b, (M (t b) ∩ M (⋃ b, s b) : Set α) =ᵐ[μ] M (t b) :=
  by
  refine' fun b => ae_eq_of_subset_of_measure_ge (inter_subset_left _ _) _ _ _
  ·
    calc
      μ (M (t b)) = μ (t b) := measure_toMeasurable _
      _ ≤ μ (s b) := (h_le b)
      _ ≤ μ (M (t b) ∩ M (⋃ b, s b)) :=
        measure_mono <|
          subset_inter ((hsub b).trans <| subset_toMeasurable _ _)
            ((subset_iUnion _ _).trans <| subset_toMeasurable _ _)
  · exact (measurableSet_toMeasurable _ _).inter (measurableSet_toMeasurable _ _)
  · rw [measure_toMeasurable]
    exact htop b
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
⊢ ∀ (b : β), M (t b) ∩ M (⋃ (b : β), s b) =ᵐ[μ] M (t b)
[PROOFSTEP]
refine' fun b => ae_eq_of_subset_of_measure_ge (inter_subset_left _ _) _ _ _
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
b : β
⊢ ↑↑μ (M (t b)) ≤ ↑↑μ (M (t b) ∩ M (⋃ (b : β), s b))
[PROOFSTEP]
calc
  μ (M (t b)) = μ (t b) := measure_toMeasurable _
  _ ≤ μ (s b) := (h_le b)
  _ ≤ μ (M (t b) ∩ M (⋃ b, s b)) :=
    measure_mono <|
      subset_inter ((hsub b).trans <| subset_toMeasurable _ _) ((subset_iUnion _ _).trans <| subset_toMeasurable _ _)
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
b : β
⊢ MeasurableSet (M (t b) ∩ M (⋃ (b : β), s b))
[PROOFSTEP]
exact (measurableSet_toMeasurable _ _).inter (measurableSet_toMeasurable _ _)
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
b : β
⊢ ↑↑μ (M (t b)) ≠ ⊤
[PROOFSTEP]
rw [measure_toMeasurable]
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
b : β
⊢ ↑↑μ (t b) ≠ ⊤
[PROOFSTEP]
exact htop b
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable β
s t : β → Set α
hsub : ∀ (b : β), s b ⊆ t b
h_le : ∀ (b : β), ↑↑μ (t b) ≤ ↑↑μ (s b)
htop : ∀ (b : β), ↑↑μ (t b) ≠ ⊤
M : Set α → Set α := toMeasurable μ
H : ∀ (b : β), M (t b) ∩ M (⋃ (b : β), s b) =ᵐ[μ] M (t b)
⊢ ↑↑μ (⋃ (b : β), t b) ≤ ↑↑μ (⋃ (b : β), s b)
[PROOFSTEP]
calc
  μ (⋃ b, t b) ≤ μ (⋃ b, M (t b)) := measure_mono (iUnion_mono fun b => subset_toMeasurable _ _)
  _ = μ (⋃ b, M (t b) ∩ M (⋃ b, s b)) := (measure_congr (EventuallyEq.countable_iUnion H).symm)
  _ ≤ μ (M (⋃ b, s b)) := (measure_mono (iUnion_subset fun b => inter_subset_right _ _))
  _ = μ (⋃ b, s b) := measure_toMeasurable _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t t₁ t₂ : Set α
hs : s₁ ⊆ s₂
hsμ : ↑↑μ s₂ ≤ ↑↑μ s₁
ht : t₁ ⊆ t₂
htμ : ↑↑μ t₂ ≤ ↑↑μ t₁
⊢ ↑↑μ (s₁ ∪ t₁) = ↑↑μ (s₂ ∪ t₂)
[PROOFSTEP]
rw [union_eq_iUnion, union_eq_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t t₁ t₂ : Set α
hs : s₁ ⊆ s₂
hsμ : ↑↑μ s₂ ≤ ↑↑μ s₁
ht : t₁ ⊆ t₂
htμ : ↑↑μ t₂ ≤ ↑↑μ t₁
⊢ ↑↑μ (⋃ (b : Bool), bif b then s₁ else t₁) = ↑↑μ (⋃ (b : Bool), bif b then s₂ else t₂)
[PROOFSTEP]
exact measure_iUnion_congr_of_subset (Bool.forall_bool.2 ⟨ht, hs⟩) (Bool.forall_bool.2 ⟨htμ, hsμ⟩)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
I : Set β
hc : Set.Countable I
s : β → Set α
⊢ ↑↑μ (⋃ (b : β) (_ : b ∈ I), toMeasurable μ (s b)) = ↑↑μ (⋃ (b : β) (_ : b ∈ I), s b)
[PROOFSTEP]
haveI := hc.toEncodable
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
I : Set β
hc : Set.Countable I
s : β → Set α
this : Encodable ↑I
⊢ ↑↑μ (⋃ (b : β) (_ : b ∈ I), toMeasurable μ (s b)) = ↑↑μ (⋃ (b : β) (_ : b ∈ I), s b)
[PROOFSTEP]
simp only [biUnion_eq_iUnion, measure_iUnion_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : PairwiseDisjoint (↑s) t
⊢ ∑ i in s, ↑↑μ (t i) ≤ ↑↑μ univ
[PROOFSTEP]
rw [← measure_biUnion_finset H h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : PairwiseDisjoint (↑s) t
⊢ ↑↑μ (⋃ (b : ι) (_ : b ∈ s), t b) ≤ ↑↑μ univ
[PROOFSTEP]
exact measure_mono (subset_univ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : Pairwise (Disjoint on s)
⊢ ∑' (i : ι), ↑↑μ (s i) ≤ ↑↑μ univ
[PROOFSTEP]
rw [ENNReal.tsum_eq_iSup_sum]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : Pairwise (Disjoint on s)
⊢ ⨆ (s_1 : Finset ι), ∑ a in s_1, ↑↑μ (s a) ≤ ↑↑μ univ
[PROOFSTEP]
exact iSup_le fun s => sum_measure_le_measure_univ (fun i _hi => hs i) fun i _hi j _hj hij => H hij
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
m : MeasurableSpace α
μ : Measure α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : ↑↑μ univ < ∑' (i : ι), ↑↑μ (s i)
⊢ ∃ i j _h, Set.Nonempty (s i ∩ s j)
[PROOFSTEP]
contrapose! H
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
m : MeasurableSpace α
μ : Measure α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : ∀ (i j : ι), i ≠ j → ¬Set.Nonempty (s i ∩ s j)
⊢ ∑' (i : ι), ↑↑μ (s i) ≤ ↑↑μ univ
[PROOFSTEP]
apply tsum_measure_le_measure_univ hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
m : MeasurableSpace α
μ : Measure α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : ∀ (i j : ι), i ≠ j → ¬Set.Nonempty (s i ∩ s j)
⊢ Pairwise (Disjoint on fun i => s i)
[PROOFSTEP]
intro i j hij
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
m : MeasurableSpace α
μ : Measure α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : ∀ (i j : ι), i ≠ j → ¬Set.Nonempty (s i ∩ s j)
i j : ι
hij : i ≠ j
⊢ (Disjoint on fun i => s i) i j
[PROOFSTEP]
rw [Function.onFun, disjoint_iff_inf_le]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
m : MeasurableSpace α
μ : Measure α
s : ι → Set α
hs : ∀ (i : ι), MeasurableSet (s i)
H : ∀ (i j : ι), i ≠ j → ¬Set.Nonempty (s i ∩ s j)
i j : ι
hij : i ≠ j
⊢ s i ⊓ s j ≤ ⊥
[PROOFSTEP]
exact fun x hx => H i j hij ⟨x, hx⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : ↑↑μ univ < ∑ i in s, ↑↑μ (t i)
⊢ ∃ i, i ∈ s ∧ ∃ j, j ∈ s ∧ ∃ _h, Set.Nonempty (t i ∩ t j)
[PROOFSTEP]
contrapose! H
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → i ≠ j → ¬Set.Nonempty (t i ∩ t j)
⊢ ∑ i in s, ↑↑μ (t i) ≤ ↑↑μ univ
[PROOFSTEP]
apply sum_measure_le_measure_univ h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → i ≠ j → ¬Set.Nonempty (t i ∩ t j)
⊢ PairwiseDisjoint ↑s fun i => t i
[PROOFSTEP]
intro i hi j hj hij
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → i ≠ j → ¬Set.Nonempty (t i ∩ t j)
i : ι
hi : i ∈ ↑s
j : ι
hj : j ∈ ↑s
hij : i ≠ j
⊢ (Disjoint on fun i => t i) i j
[PROOFSTEP]
rw [Function.onFun, disjoint_iff_inf_le]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s : Finset ι
t : ι → Set α
h : ∀ (i : ι), i ∈ s → MeasurableSet (t i)
H : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → i ≠ j → ¬Set.Nonempty (t i ∩ t j)
i : ι
hi : i ∈ ↑s
j : ι
hj : j ∈ ↑s
hij : i ≠ j
⊢ t i ⊓ t j ≤ ⊥
[PROOFSTEP]
exact fun x hx => H i hi j hj hij ⟨x, hx⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
ht : MeasurableSet t
h's : s ⊆ u
h't : t ⊆ u
h : ↑↑μ u < ↑↑μ s + ↑↑μ t
⊢ Set.Nonempty (s ∩ t)
[PROOFSTEP]
rw [← Set.not_disjoint_iff_nonempty_inter]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
ht : MeasurableSet t
h's : s ⊆ u
h't : t ⊆ u
h : ↑↑μ u < ↑↑μ s + ↑↑μ t
⊢ ¬Disjoint s t
[PROOFSTEP]
contrapose! h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
ht : MeasurableSet t
h's : s ⊆ u
h't : t ⊆ u
h : Disjoint s t
⊢ ↑↑μ s + ↑↑μ t ≤ ↑↑μ u
[PROOFSTEP]
calc
  μ s + μ t = μ (s ∪ t) := (measure_union h ht).symm
  _ ≤ μ u := measure_mono (union_subset h's h't)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
hs : MeasurableSet s
h's : s ⊆ u
h't : t ⊆ u
h : ↑↑μ u < ↑↑μ s + ↑↑μ t
⊢ Set.Nonempty (s ∩ t)
[PROOFSTEP]
rw [add_comm] at h 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
hs : MeasurableSet s
h's : s ⊆ u
h't : t ⊆ u
h : ↑↑μ u < ↑↑μ t + ↑↑μ s
⊢ Set.Nonempty (s ∩ t)
[PROOFSTEP]
rw [inter_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ✝ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
m : MeasurableSpace α
μ : Measure α
s t u : Set α
hs : MeasurableSet s
h's : s ⊆ u
h't : t ⊆ u
h : ↑↑μ u < ↑↑μ t + ↑↑μ s
⊢ Set.Nonempty (t ∩ s)
[PROOFSTEP]
exact nonempty_inter_of_measure_lt_add μ hs h't h's h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
cases nonempty_encodable ι
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
val✝ : Encodable ι
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
generalize ht : Function.extend Encodable.encode s ⊥ = t
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
val✝ : Encodable ι
t : ℕ → Set α
ht : Function.extend Encodable.encode s ⊥ = t
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
replace hd : Directed (· ⊆ ·) t := ht ▸ hd.extend_bot Encodable.encode_injective
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
val✝ : Encodable ι
t : ℕ → Set α
ht : Function.extend Encodable.encode s ⊥ = t
hd : Directed (fun x x_1 => x ⊆ x_1) t
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
suffices μ (⋃ n, t n) = ⨆ n, μ (t n)
  by
  simp only [← ht, Encodable.encode_injective.apply_extend μ, ← iSup_eq_iUnion,
    iSup_extend_bot Encodable.encode_injective, (· ∘ ·), Pi.bot_apply, bot_eq_empty, measure_empty] at this 
  exact this.trans (iSup_extend_bot Encodable.encode_injective _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
val✝ : Encodable ι
t : ℕ → Set α
ht : Function.extend Encodable.encode s ⊥ = t
hd : Directed (fun x x_1 => x ⊆ x_1) t
this : ↑↑μ (⋃ (n : ℕ), t n) = ⨆ (n : ℕ), ↑↑μ (t n)
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
simp only [← ht, Encodable.encode_injective.apply_extend μ, ← iSup_eq_iUnion,
  iSup_extend_bot Encodable.encode_injective, (· ∘ ·), Pi.bot_apply, bot_eq_empty, measure_empty] at this 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
val✝ : Encodable ι
t : ℕ → Set α
ht : Function.extend Encodable.encode s ⊥ = t
hd : Directed (fun x x_1 => x ⊆ x_1) t
this : ↑↑μ (⨆ (i : ι), s i) = ⨆ (n : ℕ), Function.extend Encodable.encode (fun x => ↑↑μ (s x)) (fun x => 0) n
⊢ ↑↑μ (⋃ (i : ι), s i) = ⨆ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
exact this.trans (iSup_extend_bot Encodable.encode_injective _)
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
val✝ : Encodable ι
t : ℕ → Set α
ht : Function.extend Encodable.encode s ⊥ = t
hd : Directed (fun x x_1 => x ⊆ x_1) t
⊢ ↑↑μ (⋃ (n : ℕ), t n) = ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
clear! ι
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
⊢ ↑↑μ (⋃ (n : ℕ), t n) = ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
refine'
  le_antisymm _
    (iSup_le fun i => measure_mono <| subset_iUnion _ _)
      -- Choose `T n ⊇ t n` of the same measure, put `Td n = disjointed T`
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
⊢ ↑↑μ (⋃ (n : ℕ), t n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
set T : ℕ → Set α := fun n => toMeasurable μ (t n)
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
⊢ ↑↑μ (⋃ (n : ℕ), t n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
set Td : ℕ → Set α := disjointed T
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
Td : ℕ → Set α := disjointed T
⊢ ↑↑μ (⋃ (n : ℕ), t n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
have hm : ∀ n, MeasurableSet (Td n) := MeasurableSet.disjointed fun n => measurableSet_toMeasurable _ _
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
Td : ℕ → Set α := disjointed T
hm : ∀ (n : ℕ), MeasurableSet (Td n)
⊢ ↑↑μ (⋃ (n : ℕ), t n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
calc
  μ (⋃ n, t n) ≤ μ (⋃ n, T n) := measure_mono (iUnion_mono fun i => subset_toMeasurable _ _)
  _ = μ (⋃ n, Td n) := by rw [iUnion_disjointed]
  _ ≤ ∑' n, μ (Td n) := (measure_iUnion_le _)
  _ = ⨆ I : Finset ℕ, ∑ n in I, μ (Td n) := ENNReal.tsum_eq_iSup_sum
  _ ≤ ⨆ n, μ (t n) :=
    iSup_le fun I => by
      rcases hd.finset_le I with ⟨N, hN⟩
      calc
        (∑ n in I, μ (Td n)) = μ (⋃ n ∈ I, Td n) :=
          (measure_biUnion_finset ((disjoint_disjointed T).set_pairwise I) fun n _ => hm n).symm
        _ ≤ μ (⋃ n ∈ I, T n) := (measure_mono (iUnion₂_mono fun n _hn => disjointed_subset _ _))
        _ = μ (⋃ n ∈ I, t n) := (measure_biUnion_toMeasurable I.countable_toSet _)
        _ ≤ μ (t N) := (measure_mono (iUnion₂_subset hN))
        _ ≤ ⨆ n, μ (t n) := le_iSup (μ ∘ t) N
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
Td : ℕ → Set α := disjointed T
hm : ∀ (n : ℕ), MeasurableSet (Td n)
⊢ ↑↑μ (⋃ (n : ℕ), T n) = ↑↑μ (⋃ (n : ℕ), Td n)
[PROOFSTEP]
rw [iUnion_disjointed]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
Td : ℕ → Set α := disjointed T
hm : ∀ (n : ℕ), MeasurableSet (Td n)
I : Finset ℕ
⊢ ∑ n in I, ↑↑μ (Td n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
rcases hd.finset_le I with ⟨N, hN⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t✝ : Set α
t : ℕ → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) t
T : ℕ → Set α := fun n => toMeasurable μ (t n)
Td : ℕ → Set α := disjointed T
hm : ∀ (n : ℕ), MeasurableSet (Td n)
I : Finset ℕ
N : ℕ
hN : ∀ (i : ℕ), i ∈ I → t i ⊆ t N
⊢ ∑ n in I, ↑↑μ (Td n) ≤ ⨆ (n : ℕ), ↑↑μ (t n)
[PROOFSTEP]
calc
  (∑ n in I, μ (Td n)) = μ (⋃ n ∈ I, Td n) :=
    (measure_biUnion_finset ((disjoint_disjointed T).set_pairwise I) fun n _ => hm n).symm
  _ ≤ μ (⋃ n ∈ I, T n) := (measure_mono (iUnion₂_mono fun n _hn => disjointed_subset _ _))
  _ = μ (⋃ n ∈ I, t n) := (measure_biUnion_toMeasurable I.countable_toSet _)
  _ ≤ μ (t N) := (measure_mono (iUnion₂_subset hN))
  _ ≤ ⨆ n, μ (t n) := le_iSup (μ ∘ t) N
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
hd : DirectedOn ((fun x x_1 => x ⊆ x_1) on s) t
⊢ ↑↑μ (⋃ (i : ι) (_ : i ∈ t), s i) = ⨆ (i : ι) (_ : i ∈ t), ↑↑μ (s i)
[PROOFSTEP]
haveI := ht.toEncodable
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
hd : DirectedOn ((fun x x_1 => x ⊆ x_1) on s) t
this : Encodable ↑t
⊢ ↑↑μ (⋃ (i : ι) (_ : i ∈ t), s i) = ⨆ (i : ι) (_ : i ∈ t), ↑↑μ (s i)
[PROOFSTEP]
rw [biUnion_eq_iUnion, measure_iUnion_eq_iSup hd.directed_val, ← iSup_subtype'']
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
hfin : ∃ i, ↑↑μ (s i) ≠ ⊤
⊢ ↑↑μ (⋂ (i : ι), s i) = ⨅ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
rcases hfin with ⟨k, hk⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
⊢ ↑↑μ (⋂ (i : ι), s i) = ⨅ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
have : ∀ (t) (_ : t ⊆ s k), μ t ≠ ∞ := fun t ht => ne_top_of_le_ne_top hk (measure_mono ht)
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
⊢ ↑↑μ (⋂ (i : ι), s i) = ⨅ (i : ι), ↑↑μ (s i)
[PROOFSTEP]
rw [← ENNReal.sub_sub_cancel hk (iInf_le _ k), ENNReal.sub_iInf, ←
  ENNReal.sub_sub_cancel hk (measure_mono (iInter_subset _ k)), ←
  measure_diff (iInter_subset _ k) (MeasurableSet.iInter h) (this _ (iInter_subset _ k)), diff_iInter,
  measure_iUnion_eq_iSup]
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
⊢ ↑↑μ (s k) - ⨆ (i : ι), ↑↑μ (s k \ s i) = ↑↑μ (s k) - ⨆ (i : ι), ↑↑μ (s k) - ↑↑μ (s i)
[PROOFSTEP]
congr 1
[GOAL]
case intro.e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
⊢ ⨆ (i : ι), ↑↑μ (s k \ s i) = ⨆ (i : ι), ↑↑μ (s k) - ↑↑μ (s i)
[PROOFSTEP]
refine' le_antisymm (iSup_mono' fun i => _) (iSup_mono fun i => _)
[GOAL]
case intro.e_a.refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ ∃ i', ↑↑μ (s k \ s i) ≤ ↑↑μ (s k) - ↑↑μ (s i')
[PROOFSTEP]
rcases hd i k with ⟨j, hji, hjk⟩
[GOAL]
case intro.e_a.refine'_1.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i j : ι
hji : s i ⊇ s j
hjk : s k ⊇ s j
⊢ ∃ i', ↑↑μ (s k \ s i) ≤ ↑↑μ (s k) - ↑↑μ (s i')
[PROOFSTEP]
use j
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i j : ι
hji : s i ⊇ s j
hjk : s k ⊇ s j
⊢ ↑↑μ (s k \ s i) ≤ ↑↑μ (s k) - ↑↑μ (s j)
[PROOFSTEP]
rw [← measure_diff hjk (h _) (this _ hjk)]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i j : ι
hji : s i ⊇ s j
hjk : s k ⊇ s j
⊢ ↑↑μ (s k \ s i) ≤ ↑↑μ (s k \ s j)
[PROOFSTEP]
exact measure_mono (diff_subset_diff_right hji)
[GOAL]
case intro.e_a.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ ↑↑μ (s k) - ↑↑μ (s i) ≤ ↑↑μ (s k \ s i)
[PROOFSTEP]
rw [tsub_le_iff_right, ← measure_union, Set.union_comm]
[GOAL]
case intro.e_a.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ ↑↑μ (s k) ≤ ↑↑μ (s i ∪ s k \ s i)
case intro.e_a.refine'_2.hd
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ Disjoint (s k \ s i) (s i)
case intro.e_a.refine'_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ MeasurableSet (s i)
[PROOFSTEP]
exact measure_mono (diff_subset_iff.1 <| Subset.refl _)
[GOAL]
case intro.e_a.refine'_2.hd
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ Disjoint (s k \ s i) (s i)
case intro.e_a.refine'_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ MeasurableSet (s i)
[PROOFSTEP]
apply disjoint_sdiff_left
[GOAL]
case intro.e_a.refine'_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
i : ι
⊢ MeasurableSet (s i)
[PROOFSTEP]
apply h i
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
k : ι
hk : ↑↑μ (s k) ≠ ⊤
this : ∀ (t : Set α), t ⊆ s k → ↑↑μ t ≠ ⊤
⊢ Directed (fun x x_1 => x ⊆ x_1) fun i => s k \ s i
[PROOFSTEP]
exact hd.mono_comp _ fun _ _ => diff_subset_diff_right
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝¹ : SemilatticeSup ι
inst✝ : Countable ι
s : ι → Set α
hm : Monotone s
⊢ Tendsto (↑↑μ ∘ s) atTop (𝓝 (↑↑μ (⋃ (n : ι), s n)))
[PROOFSTEP]
rw [measure_iUnion_eq_iSup (directed_of_sup hm)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝¹ : SemilatticeSup ι
inst✝ : Countable ι
s : ι → Set α
hm : Monotone s
⊢ Tendsto (↑↑μ ∘ s) atTop (𝓝 (⨆ (i : ι), ↑↑μ (s i)))
[PROOFSTEP]
exact tendsto_atTop_iSup fun n m hnm => measure_mono <| hm hnm
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝¹ : Countable ι
inst✝ : SemilatticeSup ι
s : ι → Set α
hs : ∀ (n : ι), MeasurableSet (s n)
hm : Antitone s
hf : ∃ i, ↑↑μ (s i) ≠ ⊤
⊢ Tendsto (↑↑μ ∘ s) atTop (𝓝 (↑↑μ (⋂ (n : ι), s n)))
[PROOFSTEP]
rw [measure_iInter_eq_iInf hs (directed_of_sup hm) hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝¹ : Countable ι
inst✝ : SemilatticeSup ι
s : ι → Set α
hs : ∀ (n : ι), MeasurableSet (s n)
hm : Antitone s
hf : ∃ i, ↑↑μ (s i) ≠ ⊤
⊢ Tendsto (↑↑μ ∘ s) atTop (𝓝 (⨅ (i : ι), ↑↑μ (s i)))
[PROOFSTEP]
exact tendsto_atTop_iInf fun n m hnm => measure_mono <| hm hnm
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
⊢ Tendsto (↑↑μ ∘ s) (𝓝[Ioi a] a) (𝓝 (↑↑μ (⋂ (r : ι) (_ : r > a), s r)))
[PROOFSTEP]
refine' tendsto_order.2 ⟨fun l hl => _, fun L hL => _⟩
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
l : ℝ≥0∞
hl : l < ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, l < (↑↑μ ∘ s) b
[PROOFSTEP]
filter_upwards [self_mem_nhdsWithin (s := Ioi a)] with r hr using hl.trans_le (measure_mono (biInter_subset_of_mem hr))
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
obtain ⟨u, u_anti, u_pos, u_lim⟩ : ∃ u : ℕ → ι, StrictAnti u ∧ (∀ n : ℕ, a < u n) ∧ Tendsto u atTop (𝓝 a) :=
  by
  rcases hf with ⟨r, ar, _⟩
  rcases exists_seq_strictAnti_tendsto' ar with ⟨w, w_anti, w_mem, w_lim⟩
  exact ⟨w, w_anti, fun n => (w_mem n).1, w_lim⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
⊢ ∃ u, StrictAnti u ∧ (∀ (n : ℕ), a < u n) ∧ Tendsto u atTop (𝓝 a)
[PROOFSTEP]
rcases hf with ⟨r, ar, _⟩
[GOAL]
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
r : ι
ar : r > a
right✝ : ↑↑μ (s r) ≠ ⊤
⊢ ∃ u, StrictAnti u ∧ (∀ (n : ℕ), a < u n) ∧ Tendsto u atTop (𝓝 a)
[PROOFSTEP]
rcases exists_seq_strictAnti_tendsto' ar with ⟨w, w_anti, w_mem, w_lim⟩
[GOAL]
case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
r : ι
ar : r > a
right✝ : ↑↑μ (s r) ≠ ⊤
w : ℕ → ι
w_anti : StrictAnti w
w_mem : ∀ (n : ℕ), w n ∈ Ioo a r
w_lim : Tendsto w atTop (𝓝 a)
⊢ ∃ u, StrictAnti u ∧ (∀ (n : ℕ), a < u n) ∧ Tendsto u atTop (𝓝 a)
[PROOFSTEP]
exact ⟨w, w_anti, fun n => (w_mem n).1, w_lim⟩
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
have A : Tendsto (μ ∘ s ∘ u) atTop (𝓝 (μ (⋂ n, s (u n)))) :=
  by
  refine' tendsto_measure_iInter (fun n => hs _ (u_pos n)) _ _
  · intro m n hmn
    exact hm _ _ (u_pos n) (u_anti.antitone hmn)
  · rcases hf with ⟨r, rpos, hr⟩
    obtain ⟨n, hn⟩ : ∃ n : ℕ, u n < r := ((tendsto_order.1 u_lim).2 r rpos).exists
    refine' ⟨n, ne_of_lt (lt_of_le_of_lt _ hr.lt_top)⟩
    exact measure_mono (hm _ _ (u_pos n) hn.le)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
⊢ Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
[PROOFSTEP]
refine' tendsto_measure_iInter (fun n => hs _ (u_pos n)) _ _
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
⊢ Antitone (s ∘ u)
[PROOFSTEP]
intro m n hmn
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
m n : ℕ
hmn : m ≤ n
⊢ (s ∘ u) n ≤ (s ∘ u) m
[PROOFSTEP]
exact hm _ _ (u_pos n) (u_anti.antitone hmn)
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
⊢ ∃ i, ↑↑μ ((s ∘ u) i) ≠ ⊤
[PROOFSTEP]
rcases hf with ⟨r, rpos, hr⟩
[GOAL]
case refine'_2.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
r : ι
rpos : r > a
hr : ↑↑μ (s r) ≠ ⊤
⊢ ∃ i, ↑↑μ ((s ∘ u) i) ≠ ⊤
[PROOFSTEP]
obtain ⟨n, hn⟩ : ∃ n : ℕ, u n < r := ((tendsto_order.1 u_lim).2 r rpos).exists
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
r : ι
rpos : r > a
hr : ↑↑μ (s r) ≠ ⊤
n : ℕ
hn : u n < r
⊢ ∃ i, ↑↑μ ((s ∘ u) i) ≠ ⊤
[PROOFSTEP]
refine' ⟨n, ne_of_lt (lt_of_le_of_lt _ hr.lt_top)⟩
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
r : ι
rpos : r > a
hr : ↑↑μ (s r) ≠ ⊤
n : ℕ
hn : u n < r
⊢ ↑↑μ ((s ∘ u) n) ≤ ↑↑μ (s r)
[PROOFSTEP]
exact measure_mono (hm _ _ (u_pos n) hn.le)
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
have B : ⋂ n, s (u n) = ⋂ r > a, s r := by
  apply Subset.antisymm
  · simp only [subset_iInter_iff, gt_iff_lt]
    intro r rpos
    obtain ⟨n, hn⟩ : ∃ n, u n < r := ((tendsto_order.1 u_lim).2 _ rpos).exists
    exact Subset.trans (iInter_subset _ n) (hm (u n) r (u_pos n) hn.le)
  · simp only [subset_iInter_iff, gt_iff_lt]
    intro n
    apply biInter_subset_of_mem
    exact u_pos n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ⋂ (n : ℕ), s (u n) = ⋂ (r : ι) (_ : r > a), s r
[PROOFSTEP]
apply Subset.antisymm
[GOAL]
case h₁
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ⋂ (n : ℕ), s (u n) ⊆ ⋂ (r : ι) (_ : r > a), s r
[PROOFSTEP]
simp only [subset_iInter_iff, gt_iff_lt]
[GOAL]
case h₁
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ∀ (i : ι), a < i → ⋂ (n : ℕ), s (u n) ⊆ s i
[PROOFSTEP]
intro r rpos
[GOAL]
case h₁
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
r : ι
rpos : a < r
⊢ ⋂ (n : ℕ), s (u n) ⊆ s r
[PROOFSTEP]
obtain ⟨n, hn⟩ : ∃ n, u n < r := ((tendsto_order.1 u_lim).2 _ rpos).exists
[GOAL]
case h₁.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
r : ι
rpos : a < r
n : ℕ
hn : u n < r
⊢ ⋂ (n : ℕ), s (u n) ⊆ s r
[PROOFSTEP]
exact Subset.trans (iInter_subset _ n) (hm (u n) r (u_pos n) hn.le)
[GOAL]
case h₂
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ⋂ (r : ι) (_ : r > a), s r ⊆ ⋂ (n : ℕ), s (u n)
[PROOFSTEP]
simp only [subset_iInter_iff, gt_iff_lt]
[GOAL]
case h₂
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
⊢ ∀ (i : ℕ), ⋂ (r : ι) (_ : a < r), s r ⊆ s (u i)
[PROOFSTEP]
intro n
[GOAL]
case h₂
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
n : ℕ
⊢ ⋂ (r : ι) (_ : a < r), s r ⊆ s (u n)
[PROOFSTEP]
apply biInter_subset_of_mem
[GOAL]
case h₂.xs
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
n : ℕ
⊢ u n ∈ fun x => Preorder.toLT.1 a x
[PROOFSTEP]
exact u_pos n
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (n : ℕ), s (u n))))
B : ⋂ (n : ℕ), s (u n) = ⋂ (r : ι) (_ : r > a), s r
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
rw [B] at A 
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (r : ι) (_ : r > a), s r)))
B : ⋂ (n : ℕ), s (u n) = ⋂ (r : ι) (_ : r > a), s r
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
obtain ⟨n, hn⟩ : ∃ n, μ (s (u n)) < L := ((tendsto_order.1 A).2 _ hL).exists
[GOAL]
case refine'_2.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (r : ι) (_ : r > a), s r)))
B : ⋂ (n : ℕ), s (u n) = ⋂ (r : ι) (_ : r > a), s r
n : ℕ
hn : ↑↑μ (s (u n)) < L
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
have : Ioc a (u n) ∈ 𝓝[>] a := Ioc_mem_nhdsWithin_Ioi ⟨le_rfl, u_pos n⟩
[GOAL]
case refine'_2.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
ι : Type u_8
inst✝⁴ : LinearOrder ι
inst✝³ : TopologicalSpace ι
inst✝² : OrderTopology ι
inst✝¹ : DenselyOrdered ι
inst✝ : TopologicalSpace.FirstCountableTopology ι
s : ι → Set α
a : ι
hs : ∀ (r : ι), r > a → MeasurableSet (s r)
hm : ∀ (i j : ι), a < i → i ≤ j → s i ⊆ s j
hf : ∃ r, r > a ∧ ↑↑μ (s r) ≠ ⊤
L : ℝ≥0∞
hL : L > ↑↑μ (⋂ (r : ι) (_ : r > a), s r)
u : ℕ → ι
u_anti : StrictAnti u
u_pos : ∀ (n : ℕ), a < u n
u_lim : Tendsto u atTop (𝓝 a)
A : Tendsto (↑↑μ ∘ s ∘ u) atTop (𝓝 (↑↑μ (⋂ (r : ι) (_ : r > a), s r)))
B : ⋂ (n : ℕ), s (u n) = ⋂ (r : ι) (_ : r > a), s r
n : ℕ
hn : ↑↑μ (s (u n)) < L
this : Ioc a (u n) ∈ 𝓝[Ioi a] a
⊢ ∀ᶠ (b : ι) in 𝓝[Ioi a] a, (↑↑μ ∘ s) b < L
[PROOFSTEP]
filter_upwards [this] with r hr using lt_of_le_of_lt (measure_mono (hm _ _ hr.1 hr.2)) hn
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
⊢ ↑↑μ (limsup s atTop) = 0
[PROOFSTEP]
set t : ℕ → Set α := fun n => toMeasurable μ (s n)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
⊢ ↑↑μ (limsup s atTop) = 0
[PROOFSTEP]
have ht : (∑' i, μ (t i)) ≠ ∞ := by simpa only [measure_toMeasurable] using hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
⊢ ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
[PROOFSTEP]
simpa only [measure_toMeasurable] using hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
⊢ ↑↑μ (limsup s atTop) = 0
[PROOFSTEP]
suffices μ (limsup t atTop) = 0
  by
  have A : s ≤ t := fun n =>
    subset_toMeasurable μ
      (s n)
        -- TODO default args fail
  exact measure_mono_null (limsup_le_limsup (eventually_of_forall (Pi.le_def.mp A))) this
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
this : ↑↑μ (limsup t atTop) = 0
⊢ ↑↑μ (limsup s atTop) = 0
[PROOFSTEP]
have A : s ≤ t := fun n =>
  subset_toMeasurable μ
    (s n)
      -- TODO default args fail
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
this : ↑↑μ (limsup t atTop) = 0
A : s ≤ t
⊢ ↑↑μ (limsup s atTop) = 0
[PROOFSTEP]
exact measure_mono_null (limsup_le_limsup (eventually_of_forall (Pi.le_def.mp A))) this
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
⊢ ↑↑μ (limsup t atTop) = 0
[PROOFSTEP]
simp only [limsup_eq_iInf_iSup_of_nat', Set.iInf_eq_iInter, Set.iSup_eq_iUnion, ← nonpos_iff_eq_zero]
  -- Finally, we estimate `μ (⋃ i, t (i + n))` by `∑ i', μ (t (i + n))`
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
⊢ ↑↑μ (⋂ (n : ℕ), ⋃ (i : ℕ), toMeasurable μ (s (i + n))) ≤ 0
[PROOFSTEP]
refine'
  le_of_tendsto_of_tendsto'
    (tendsto_measure_iInter (fun i => MeasurableSet.iUnion fun b => measurableSet_toMeasurable _ _) _
      ⟨0, ne_top_of_le_ne_top ht (measure_iUnion_le t)⟩)
    (ENNReal.tendsto_sum_nat_add (μ ∘ t) ht) fun n => measure_iUnion_le _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
⊢ Antitone fun n => ⋃ (i : ℕ), toMeasurable μ (s (i + n))
[PROOFSTEP]
intro n m hnm x
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ x ∈ (fun n => ⋃ (i : ℕ), toMeasurable μ (s (i + n))) m → x ∈ (fun n => ⋃ (i : ℕ), toMeasurable μ (s (i + n))) n
[PROOFSTEP]
simp only [Set.mem_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ (∃ i, x ∈ toMeasurable μ (s (i + m))) → ∃ i, x ∈ toMeasurable μ (s (i + n))
[PROOFSTEP]
exact fun ⟨i, hi⟩ => ⟨i + (m - n), by simpa only [add_assoc, tsub_add_cancel_of_le hnm] using hi⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), ↑↑μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
x✝ : ∃ i, x ∈ toMeasurable μ (s (i + m))
i : ℕ
hi : x ∈ toMeasurable μ (s (i + m))
⊢ x ∈ toMeasurable μ (s (i + (m - n) + n))
[PROOFSTEP]
simpa only [add_assoc, tsub_add_cancel_of_le hnm] using hi
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
h : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
⊢ ↑↑μ (liminf s atTop) = 0
[PROOFSTEP]
rw [← le_zero_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
h : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
⊢ ↑↑μ (liminf s atTop) ≤ 0
[PROOFSTEP]
have : liminf s atTop ≤ limsup s atTop := liminf_le_limsup
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
h : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
this : liminf s atTop ≤ limsup s atTop
⊢ ↑↑μ (liminf s atTop) ≤ 0
[PROOFSTEP]
exact (μ.mono this).trans (by simp [measure_limsup_eq_zero h])
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
h : ∑' (i : ℕ), ↑↑μ (s i) ≠ ⊤
this : liminf s atTop ≤ limsup s atTop
⊢ ↑↑μ (limsup s atTop) ≤ 0
[PROOFSTEP]
simp [measure_limsup_eq_zero h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), s n =ᵐ[μ] t
⊢ limsup s atTop =ᵐ[μ] t
[PROOFSTEP]
simp_rw [ae_eq_set] at h ⊢
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (limsup s atTop \ t) = 0 ∧ ↑↑μ (t \ limsup s atTop) = 0
[PROOFSTEP]
constructor
[GOAL]
case left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (limsup s atTop \ t) = 0
[PROOFSTEP]
rw [atTop.limsup_sdiff s t]
[GOAL]
case left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (limsup (fun b => s b \ t) atTop) = 0
[PROOFSTEP]
apply measure_limsup_eq_zero
[GOAL]
case left.hs
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ∑' (i : ℕ), ↑↑μ (s i \ t) ≠ ⊤
[PROOFSTEP]
simp [h]
[GOAL]
case right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (t \ limsup s atTop) = 0
[PROOFSTEP]
rw [atTop.sdiff_limsup s t]
[GOAL]
case right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (liminf (fun b => t \ s b) atTop) = 0
[PROOFSTEP]
apply measure_liminf_eq_zero
[GOAL]
case right.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ∑' (i : ℕ), ↑↑μ (t \ s i) ≠ ⊤
[PROOFSTEP]
simp [h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), s n =ᵐ[μ] t
⊢ liminf s atTop =ᵐ[μ] t
[PROOFSTEP]
simp_rw [ae_eq_set] at h ⊢
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (liminf s atTop \ t) = 0 ∧ ↑↑μ (t \ liminf s atTop) = 0
[PROOFSTEP]
constructor
[GOAL]
case left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (liminf s atTop \ t) = 0
[PROOFSTEP]
rw [atTop.liminf_sdiff s t]
[GOAL]
case left
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (liminf (fun b => s b \ t) atTop) = 0
[PROOFSTEP]
apply measure_liminf_eq_zero
[GOAL]
case left.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ∑' (i : ℕ), ↑↑μ (s i \ t) ≠ ⊤
[PROOFSTEP]
simp [h]
[GOAL]
case right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (t \ liminf s atTop) = 0
[PROOFSTEP]
rw [atTop.sdiff_liminf s t]
[GOAL]
case right
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ↑↑μ (limsup (fun b => t \ s b) atTop) = 0
[PROOFSTEP]
apply measure_limsup_eq_zero
[GOAL]
case right.hs
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
t : Set α
h : ∀ (n : ℕ), ↑↑μ (s n \ t) = 0 ∧ ↑↑μ (t \ s n) = 0
⊢ ∑' (i : ℕ), ↑↑μ (t \ s i) ≠ ⊤
[PROOFSTEP]
simp [h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
⊢ ↑↑μ (if x ∈ t then s else ∅) = indicator t (fun x => ↑↑μ s) x
[PROOFSTEP]
split_ifs with h
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
h : x ∈ t
⊢ ↑↑μ s = indicator t (fun x => ↑↑μ s) x
[PROOFSTEP]
simp [h]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
h : ¬x ∈ t
⊢ ↑↑μ ∅ = indicator t (fun x => ↑↑μ s) x
[PROOFSTEP]
simp [h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s = ↑m s
[PROOFSTEP]
refine' le_antisymm _ (le_toMeasure_apply _ _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s
[PROOFSTEP]
rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, heq⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t✝ : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
heq : t =ᵐ[OuterMeasure.toMeasure m h] s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s
[PROOFSTEP]
calc
  m.toMeasure h s = m.toMeasure h t := measure_congr heq.symm
  _ = m t := (toMeasure_apply m h htm)
  _ ≤ m s := m.mono hts
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ t ≠ ⊤
⊢ ↑↑μ (t ∩ s) = ↑↑μ (u ∩ s)
[PROOFSTEP]
rw [h] at ht_ne_top 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
⊢ ↑↑μ (t ∩ s) = ↑↑μ (u ∩ s)
[PROOFSTEP]
refine' le_antisymm (measure_mono (inter_subset_inter_left _ htu)) _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)
[PROOFSTEP]
have A : μ (u ∩ s) + μ (u \ s) ≤ μ (t ∩ s) + μ (u \ s) :=
  calc
    μ (u ∩ s) + μ (u \ s) = μ u := measure_inter_add_diff _ hs
    _ = μ t := h.symm
    _ = μ (t ∩ s) + μ (t \ s) := (measure_inter_add_diff _ hs).symm
    _ ≤ μ (t ∩ s) + μ (u \ s) := add_le_add le_rfl (measure_mono (diff_subset_diff htu Subset.rfl))
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
A : ↑↑μ (u ∩ s) + ↑↑μ (u \ s) ≤ ↑↑μ (t ∩ s) + ↑↑μ (u \ s)
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)
[PROOFSTEP]
have B : μ (u \ s) ≠ ∞ := (lt_of_le_of_lt (measure_mono (diff_subset _ _)) ht_ne_top.lt_top).ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
A : ↑↑μ (u ∩ s) + ↑↑μ (u \ s) ≤ ↑↑μ (t ∩ s) + ↑↑μ (u \ s)
B : ↑↑μ (u \ s) ≠ ⊤
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)
[PROOFSTEP]
exact ENNReal.le_of_add_le_add_right B A
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsEmpty α
m : MeasurableSpace α
μ ν : Measure α
⊢ μ = ν
[PROOFSTEP]
ext1 s _
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : IsEmpty α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
a✝ : MeasurableSet s
⊢ ↑↑μ s = ↑↑ν s
[PROOFSTEP]
rw [eq_empty_of_isEmpty s]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : IsEmpty α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
a✝ : MeasurableSet s
⊢ ↑↑μ ∅ = ↑↑ν ∅
[PROOFSTEP]
simp only [measure_empty]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁✝ μ₂✝ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
μ₁ μ₂ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑↑μ₁ (⋃ (i : ℕ), s i) + ↑↑μ₂ (⋃ (i : ℕ), s i) = ∑' (i : ℕ), (↑↑μ₁ (s i) + ↑↑μ₂ (s i))
[PROOFSTEP]
rw [ENNReal.tsum_add, measure_iUnion hd hs, measure_iUnion hd hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁✝ μ₂✝ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
μ₁ μ₂ : Measure α
⊢ OuterMeasure.trim (↑μ₁ + ↑μ₂) = ↑μ₁ + ↑μ₂
[PROOFSTEP]
rw [OuterMeasure.trim_add, μ₁.trimmed, μ₂.trimmed]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑(c • ↑μ) (⋃ (i : ℕ), s i) = ∑' (i : ℕ), ↑(c • ↑μ) (s i)
[PROOFSTEP]
rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑((c • 1) • ↑μ) (⋃ (i : ℕ), s i) = ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)
[PROOFSTEP]
conv_lhs =>
  change OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
  change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • 1) • ↑μ) (⋃ (i : ℕ), s i)
[PROOFSTEP]
  change OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
  change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • 1) • ↑μ) (⋃ (i : ℕ), s i)
[PROOFSTEP]
  change OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
  change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • 1) • ↑μ) (⋃ (i : ℕ), s i)
[PROOFSTEP]
change OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • OfNat.ofNat 1) • ↑μ) (⋃ (i : ℕ), s i)
[PROOFSTEP]
change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ c • OfNat.ofNat 1 * ↑↑μ (⋃ (i : ℕ), s i) = ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)
[PROOFSTEP]
conv_rhs =>
  change ∑' i, OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
  change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)
[PROOFSTEP]
  change ∑' i, OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
  change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)
[PROOFSTEP]
  change ∑' i, OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
  change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)
[PROOFSTEP]
change ∑' i, OuterMeasure.measureOf ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • OfNat.ofNat 1) • ↑μ) (s i)
[PROOFSTEP]
change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) * OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ c • OfNat.ofNat 1 * ↑↑μ (⋃ (i : ℕ), s i) = ∑' (i : ℕ), c • OfNat.ofNat 1 * ↑↑μ (s i)
[PROOFSTEP]
simp_rw [measure_iUnion hd hs, ENNReal.tsum_mul_left]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
⊢ OuterMeasure.trim (c • ↑μ) = c • ↑μ
[PROOFSTEP]
rw [OuterMeasure.trim_smul, μ.trimmed]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : MeasurableSpace α
I : Finset ι
μ : ι → Measure α
s : Set α
⊢ ↑↑(∑ i in I, μ i) s = ∑ i in I, ↑↑(μ i) s
[PROOFSTEP]
rw [coe_finset_sum, Finset.sum_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
_m : MeasurableSpace α
c : ℝ≥0
μ : Measure α
s : Set α
⊢ c • ↑↑μ s = ↑c * ↑↑μ s
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
c : ℝ≥0∞
hc : c ≠ 0
⊢ (∀ᵐ (x : α) ∂c • μ, p x) ↔ ∀ᵐ (x : α) ∂μ, p x
[PROOFSTEP]
simp only [ae_iff, Algebra.id.smul_eq_mul, smul_apply, or_iff_right_iff_imp, mul_eq_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
c : ℝ≥0∞
hc : c ≠ 0
⊢ c = 0 → ↑↑μ {a | ¬p a} = 0
[PROOFSTEP]
simp only [IsEmpty.forall_iff, hc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
⊢ ↑↑μ s = ↑↑μ t
[PROOFSTEP]
refine' le_antisymm (measure_mono h') _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
⊢ ↑↑μ t ≤ ↑↑μ s
[PROOFSTEP]
have : μ t + ν t ≤ μ s + ν t :=
  calc
    μ t + ν t = μ s + ν s := h''.symm
    _ ≤ μ s + ν t := add_le_add le_rfl (measure_mono h')
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
this : ↑↑μ t + ↑↑ν t ≤ ↑↑μ s + ↑↑ν t
⊢ ↑↑μ t ≤ ↑↑μ s
[PROOFSTEP]
apply ENNReal.le_of_add_le_add_right _ this
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
this : ↑↑μ t + ↑↑ν t ≤ ↑↑μ s + ↑↑ν t
⊢ ↑↑ν t ≠ ⊤
[PROOFSTEP]
simp only [not_or, ENNReal.add_eq_top, Pi.add_apply, Ne.def, coe_add] at h 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
this : ↑↑μ t + ↑↑ν t ≤ ↑↑μ s + ↑↑ν t
h : ¬↑↑μ t = ⊤ ∧ ¬↑↑ν t = ⊤
⊢ ↑↑ν t ≠ ⊤
[PROOFSTEP]
exact h.2
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(μ + ν) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(μ + ν) s = ↑↑(μ + ν) t
⊢ ↑↑ν s = ↑↑ν t
[PROOFSTEP]
rw [add_comm] at h'' h 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
h : ↑↑(ν + μ) t ≠ ⊤
h' : s ⊆ t
h'' : ↑↑(ν + μ) s = ↑↑(ν + μ) t
⊢ ↑↑ν s = ↑↑ν t
[PROOFSTEP]
exact measure_eq_left_of_subset_of_measure_add_eq h h' h''
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(μ + ν) t ≠ ⊤
⊢ ↑↑μ (toMeasurable (μ + ν) t ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
refine' (measure_inter_eq_of_measure_eq hs _ (subset_toMeasurable _ _) _).symm
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(μ + ν) t ≠ ⊤
⊢ ↑↑μ t = ↑↑μ (toMeasurable (μ + ν) t)
[PROOFSTEP]
refine' measure_eq_left_of_subset_of_measure_add_eq _ (subset_toMeasurable _ _) (measure_toMeasurable t).symm
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(μ + ν) t ≠ ⊤
⊢ ↑↑(μ + ν) (toMeasurable (μ + ν) t) ≠ ⊤
[PROOFSTEP]
rwa [measure_toMeasurable t]
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(μ + ν) t ≠ ⊤
⊢ ↑↑μ t ≠ ⊤
[PROOFSTEP]
simp only [not_or, ENNReal.add_eq_top, Pi.add_apply, Ne.def, coe_add] at ht 
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ¬↑↑μ t = ⊤ ∧ ¬↑↑ν t = ⊤
⊢ ↑↑μ t ≠ ⊤
[PROOFSTEP]
exact ht.1
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(μ + ν) t ≠ ⊤
⊢ ↑↑ν (toMeasurable (μ + ν) t ∩ s) = ↑↑ν (t ∩ s)
[PROOFSTEP]
rw [add_comm] at ht ⊢
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
hs : MeasurableSet s
ht : ↑↑(ν + μ) t ≠ ⊤
⊢ ↑↑ν (toMeasurable (ν + μ) t ∩ s) = ↑↑ν (t ∩ s)
[PROOFSTEP]
exact measure_toMeasurable_add_inter_left hs ht
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ↑μ₁ ≤ ↑μ₂ ↔ μ₁ ≤ μ₂
[PROOFSTEP]
rw [← μ₂.trimmed, OuterMeasure.le_trim_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ (∀ (s : Set α), MeasurableSet s → ↑↑μ₁ s ≤ ↑↑μ₂ s) ↔ μ₁ ≤ μ₂
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ¬ν ≤ μ ↔ ∃ s, MeasurableSet s ∧ ↑↑μ s < ↑↑ν s
[PROOFSTEP]
simp only [le_iff, not_forall, not_le, exists_prop]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ¬ν ≤ μ ↔ ∃ s, ↑↑μ s < ↑↑ν s
[PROOFSTEP]
simp only [le_iff', not_forall, not_le]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
⊢ MeasurableSet s
[PROOFSTEP]
rw [OuterMeasure.sInf_eq_boundedBy_sInfGen]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
⊢ MeasurableSet s
[PROOFSTEP]
refine' OuterMeasure.boundedBy_caratheodory fun t => _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
⊢ OuterMeasure.sInfGen (toOuterMeasure '' m) (t ∩ s) + OuterMeasure.sInfGen (toOuterMeasure '' m) (t \ s) ≤
    OuterMeasure.sInfGen (toOuterMeasure '' m) t
[PROOFSTEP]
simp only [OuterMeasure.sInfGen, le_iInf_iff, ball_image_iff, measure_eq_iInf t]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ∀ (x : Measure α),
    x ∈ m →
      ∀ (i : Set α),
        t ⊆ i →
          MeasurableSet i →
            (⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t ∩ s)) +
                ⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t \ s) ≤
              ↑↑x i
[PROOFSTEP]
intro μ hμ u htu _hu
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t ⊆ u
_hu : MeasurableSet u
⊢ (⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t ∩ s)) +
      ⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t \ s) ≤
    ↑↑μ u
[PROOFSTEP]
have hm : ∀ {s t}, s ⊆ t → OuterMeasure.sInfGen (toOuterMeasure '' m) s ≤ μ t :=
  by
  intro s t hst
  rw [OuterMeasure.sInfGen_def]
  refine' iInf_le_of_le μ.toOuterMeasure (iInf_le_of_le (mem_image_of_mem _ hμ) _)
  refine' measure_mono hst
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t ⊆ u
_hu : MeasurableSet u
⊢ ∀ {s t : Set α}, s ⊆ t → OuterMeasure.sInfGen (toOuterMeasure '' m) s ≤ ↑↑μ t
[PROOFSTEP]
intro s t hst
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝¹ s' t✝¹ : Set α
m : Set (Measure α)
s✝ : Set α
hs : MeasurableSet s✝
t✝ : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t✝ ⊆ u
_hu : MeasurableSet u
s t : Set α
hst : s ⊆ t
⊢ OuterMeasure.sInfGen (toOuterMeasure '' m) s ≤ ↑↑μ t
[PROOFSTEP]
rw [OuterMeasure.sInfGen_def]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝¹ s' t✝¹ : Set α
m : Set (Measure α)
s✝ : Set α
hs : MeasurableSet s✝
t✝ : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t✝ ⊆ u
_hu : MeasurableSet u
s t : Set α
hst : s ⊆ t
⊢ ⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ s ≤ ↑↑μ t
[PROOFSTEP]
refine' iInf_le_of_le μ.toOuterMeasure (iInf_le_of_le (mem_image_of_mem _ hμ) _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝¹ s' t✝¹ : Set α
m : Set (Measure α)
s✝ : Set α
hs : MeasurableSet s✝
t✝ : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t✝ ⊆ u
_hu : MeasurableSet u
s t : Set α
hst : s ⊆ t
⊢ ↑↑μ s ≤ ↑↑μ t
[PROOFSTEP]
refine' measure_mono hst
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t ⊆ u
_hu : MeasurableSet u
hm : ∀ {s t : Set α}, s ⊆ t → OuterMeasure.sInfGen (toOuterMeasure '' m) s ≤ ↑↑μ t
⊢ (⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t ∩ s)) +
      ⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t \ s) ≤
    ↑↑μ u
[PROOFSTEP]
rw [← measure_inter_add_diff u hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m : Set (Measure α)
s : Set α
hs : MeasurableSet s
t : Set α
μ : Measure α
hμ : μ ∈ m
u : Set α
htu : t ⊆ u
_hu : MeasurableSet u
hm : ∀ {s t : Set α}, s ⊆ t → OuterMeasure.sInfGen (toOuterMeasure '' m) s ≤ ↑↑μ t
⊢ (⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t ∩ s)) +
      ⨅ (μ : OuterMeasure α) (_ : μ ∈ toOuterMeasure '' m), ↑μ (t \ s) ≤
    ↑↑μ (u ∩ s) + ↑↑μ (u \ s)
[PROOFSTEP]
refine' add_le_add (hm <| inter_subset_inter_left _ htu) (hm <| diff_subset_diff_left htu)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ ↑μ
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sInf m) s ≤ ↑↑μ s
[PROOFSTEP]
rw [sInf_apply hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : μ ∈ m
this : sInf (toOuterMeasure '' m) ≤ ↑μ
s : Set α
hs : MeasurableSet s
⊢ ↑(sInf (toOuterMeasure '' m)) s ≤ ↑↑μ s
[PROOFSTEP]
exact this s
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : ∀ (μ' : Measure α), μ' ∈ m → μ ≤ μ'
this : ↑μ ≤ sInf (toOuterMeasure '' m)
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ s ≤ ↑↑(sInf m) s
[PROOFSTEP]
rw [sInf_apply hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m : Set (Measure α)
h : ∀ (μ' : Measure α), μ' ∈ m → μ ≤ μ'
this : ↑μ ≤ sInf (toOuterMeasure '' m)
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ s ≤ ↑(sInf (toOuterMeasure '' m)) s
[PROOFSTEP]
exact this s
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : Set (Measure α)
inst✝ : MeasurableSpace α
⊢ PartialOrder (Measure α)
[PROOFSTEP]
infer_instance
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : Set (Measure α)
inst✝ : MeasurableSpace α
src✝ : PartialOrder (Measure α) := inferInstance
⊢ InfSet (Measure α)
[PROOFSTEP]
infer_instance
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
⊢ inst✝ ≤ OuterMeasure.caratheodory ⊤
[PROOFSTEP]
rw [OuterMeasure.top_caratheodory]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
⊢ inst✝ ≤ ⊤
[PROOFSTEP]
exact le_top
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
⊢ ↑↑⊤ s ≤ ↑↑(OuterMeasure.toMeasure ⊤ (_ : inst✝ ≤ OuterMeasure.caratheodory ⊤)) s
[PROOFSTEP]
cases' s.eq_empty_or_nonempty with h h
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
h : s = ∅
⊢ ↑↑⊤ s ≤ ↑↑(OuterMeasure.toMeasure ⊤ (_ : inst✝ ≤ OuterMeasure.caratheodory ⊤)) s
[PROOFSTEP]
simp [h, toMeasure_apply ⊤ _ hs, OuterMeasure.top_apply]
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
s : Set α
hs : MeasurableSet s
h : Set.Nonempty s
⊢ ↑↑⊤ s ≤ ↑↑(OuterMeasure.toMeasure ⊤ (_ : inst✝ ≤ OuterMeasure.caratheodory ⊤)) s
[PROOFSTEP]
simp [h, toMeasure_apply ⊤ _ hs, OuterMeasure.top_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
⊢ ↑⊤ = ⊤
[PROOFSTEP]
rw [← OuterMeasure.toMeasure_top, toMeasure_toOuterMeasure, OuterMeasure.trim_top]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁✝ μ₂✝ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m0 : MeasurableSpace α
f : OuterMeasure α →ₗ[ℝ≥0∞] OuterMeasure β
hf : ∀ (μ : Measure α), inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)
μ₁ μ₂ : Measure α
s : Set β
hs : MeasurableSet s
⊢ ↑↑((fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) (μ₁ + μ₂)) s =
    ↑↑((fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) μ₁ +
            (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) μ₂)
      s
[PROOFSTEP]
simp only [map_add, coe_add, Pi.add_apply, toMeasure_apply, add_toOuterMeasure, OuterMeasure.coe_add, hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m0 : MeasurableSpace α
f : OuterMeasure α →ₗ[ℝ≥0∞] OuterMeasure β
hf : ∀ (μ : Measure α), inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)
c : ℝ≥0∞
μ : Measure α
s : Set β
hs : MeasurableSet s
⊢ ↑↑(AddHom.toFun
            { toFun := fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)),
              map_add' :=
                (_ :
                  ∀ (μ₁ μ₂ : Measure α),
                    (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)))
                        (μ₁ + μ₂) =
                      (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) μ₁ +
                        (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) μ₂) }
            (c • μ))
      s =
    ↑↑(↑(RingHom.id ℝ≥0∞) c •
            AddHom.toFun
              { toFun := fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)),
                map_add' :=
                  (_ :
                    ∀ (μ₁ μ₂ : Measure α),
                      (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)))
                          (μ₁ + μ₂) =
                        (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ))) μ₁ +
                          (fun μ => OuterMeasure.toMeasure (↑f ↑μ) (_ : inst✝¹ ≤ OuterMeasure.caratheodory (↑f ↑μ)))
                            μ₂) }
              μ)
      s
[PROOFSTEP]
simp only [LinearMap.map_smulₛₗ, coe_smul, Pi.smul_apply, toMeasure_apply, smul_toOuterMeasure (R := ℝ≥0∞),
  OuterMeasure.coe_smul (R := ℝ≥0∞), smul_apply, hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
hf : Measurable f
hg : Measurable g
h : f =ᶠ[ae μ] g
⊢ ↑(mapₗ f) μ = ↑(mapₗ g) μ
[PROOFSTEP]
ext1 s hs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → β
hf : Measurable f
hg : Measurable g
h : f =ᶠ[ae μ] g
s : Set β
hs : MeasurableSet s
⊢ ↑↑(↑(mapₗ f) μ) s = ↑↑(↑(mapₗ g) μ) s
[PROOFSTEP]
simpa only [mapₗ, hf, hg, hs, dif_pos, liftLinear_apply, OuterMeasure.map_apply] using measure_congr (h.preimage s)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : AEMeasurable f
⊢ ↑(mapₗ (AEMeasurable.mk f hf)) μ = map f μ
[PROOFSTEP]
simp [map, hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : Measurable f
μ : Measure α
⊢ ↑(mapₗ f) μ = map f μ
[PROOFSTEP]
simp only [← mapₗ_mk_apply_of_aemeasurable hf.aemeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : Measurable f
μ : Measure α
⊢ ↑(mapₗ f) μ = ↑(mapₗ (AEMeasurable.mk f (_ : AEMeasurable f))) μ
[PROOFSTEP]
exact mapₗ_congr hf hf.aemeasurable.measurable_mk hf.aemeasurable.ae_eq_mk
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
f : α → β
hf : Measurable f
⊢ map f (μ + ν) = map f μ + map f ν
[PROOFSTEP]
simp [← mapₗ_apply_of_measurable hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
⊢ map f 0 = 0
[PROOFSTEP]
by_cases hf : AEMeasurable f (0 : Measure α)
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : AEMeasurable f
⊢ map f 0 = 0
[PROOFSTEP]
simp [map, hf]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : ¬AEMeasurable f
⊢ map f 0 = 0
[PROOFSTEP]
simp [map, hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
μ : Measure α
hf : ¬AEMeasurable f
⊢ map f μ = 0
[PROOFSTEP]
simp [map, hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
⊢ map f μ = map g μ
[PROOFSTEP]
by_cases hf : AEMeasurable f μ
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : AEMeasurable f
⊢ map f μ = map g μ
[PROOFSTEP]
have hg : AEMeasurable g μ := hf.congr h
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : AEMeasurable f
hg : AEMeasurable g
⊢ map f μ = map g μ
[PROOFSTEP]
simp only [← mapₗ_mk_apply_of_aemeasurable hf, ← mapₗ_mk_apply_of_aemeasurable hg]
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : AEMeasurable f
hg : AEMeasurable g
⊢ ↑(mapₗ (AEMeasurable.mk f hf)) μ = ↑(mapₗ (AEMeasurable.mk g hg)) μ
[PROOFSTEP]
exact mapₗ_congr hf.measurable_mk hg.measurable_mk (hf.ae_eq_mk.symm.trans (h.trans hg.ae_eq_mk))
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : ¬AEMeasurable f
⊢ map f μ = map g μ
[PROOFSTEP]
have hg : ¬AEMeasurable g μ := by simpa [← aemeasurable_congr h] using hf
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : ¬AEMeasurable f
⊢ ¬AEMeasurable g
[PROOFSTEP]
simpa [← aemeasurable_congr h] using hf
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : α → β
h : f =ᶠ[ae μ] g
hf : ¬AEMeasurable f
hg : ¬AEMeasurable g
⊢ map f μ = map g μ
[PROOFSTEP]
simp [map_of_not_aemeasurable, hf, hg]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
rcases eq_or_ne c 0 with (rfl | hc)
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
f : α → β
⊢ map f (0 • μ) = 0 • map f μ
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
by_cases hf : AEMeasurable f μ
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : AEMeasurable f
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
have hfc : AEMeasurable f (c • μ) := ⟨hf.mk f, hf.measurable_mk, (ae_smul_measure_iff hc).2 hf.ae_eq_mk⟩
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : AEMeasurable f
hfc : AEMeasurable f
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
simp only [← mapₗ_mk_apply_of_aemeasurable hf, ← mapₗ_mk_apply_of_aemeasurable hfc, LinearMap.map_smulₛₗ,
  RingHom.id_apply]
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : AEMeasurable f
hfc : AEMeasurable f
⊢ c • ↑(mapₗ (AEMeasurable.mk f hfc)) μ = c • ↑(mapₗ (AEMeasurable.mk f hf)) μ
[PROOFSTEP]
congr 1
[GOAL]
case pos.e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : AEMeasurable f
hfc : AEMeasurable f
⊢ ↑(mapₗ (AEMeasurable.mk f hfc)) μ = ↑(mapₗ (AEMeasurable.mk f hf)) μ
[PROOFSTEP]
apply mapₗ_congr hfc.measurable_mk hf.measurable_mk
[GOAL]
case pos.e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : AEMeasurable f
hfc : AEMeasurable f
⊢ AEMeasurable.mk f hfc =ᶠ[ae μ] AEMeasurable.mk f hf
[PROOFSTEP]
exact EventuallyEq.trans ((ae_smul_measure_iff hc).1 hfc.ae_eq_mk.symm) hf.ae_eq_mk
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : ¬AEMeasurable f
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
have hfc : ¬AEMeasurable f (c • μ) := by
  intro hfc
  exact hf ⟨hfc.mk f, hfc.measurable_mk, (ae_smul_measure_iff hc).1 hfc.ae_eq_mk⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : ¬AEMeasurable f
⊢ ¬AEMeasurable f
[PROOFSTEP]
intro hfc
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : ¬AEMeasurable f
hfc : AEMeasurable f
⊢ False
[PROOFSTEP]
exact hf ⟨hfc.mk f, hfc.measurable_mk, (ae_smul_measure_iff hc).1 hfc.ae_eq_mk⟩
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
c : ℝ≥0∞
μ : Measure α
f : α → β
hc : c ≠ 0
hf : ¬AEMeasurable f
hfc : ¬AEMeasurable f
⊢ map f (c • μ) = c • map f μ
[PROOFSTEP]
simp [map_of_not_aemeasurable hf, map_of_not_aemeasurable hfc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
hf : AEMeasurable f
s : Set β
hs : MeasurableSet s
⊢ ↑↑(map f μ) s = ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
simpa only [mapₗ, hf.measurable_mk, hs, dif_pos, liftLinear_apply, OuterMeasure.map_apply, ←
  mapₗ_mk_apply_of_aemeasurable hf] using measure_congr (hf.ae_eq_mk.symm.preimage s)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : AEMeasurable f
⊢ ↑(map f μ) = OuterMeasure.trim (↑(OuterMeasure.map f) ↑μ)
[PROOFSTEP]
rw [← trimmed, OuterMeasure.trim_eq_trim_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : α → β
hf : AEMeasurable f
⊢ ∀ (s : Set β), MeasurableSet s → ↑↑(map f μ) s = ↑(↑(OuterMeasure.map f) ↑μ) s
[PROOFSTEP]
intro s hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
hf : AEMeasurable f
s : Set β
hs : MeasurableSet s
⊢ ↑↑(map f μ) s = ↑(↑(OuterMeasure.map f) ↑μ) s
[PROOFSTEP]
rw [map_apply_of_aemeasurable hf hs, OuterMeasure.map_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
g : β → γ
f : α → β
hg : Measurable g
hf : Measurable f
s : Set γ
hs : MeasurableSet s
⊢ ↑↑(map g (map f μ)) s = ↑↑(map (g ∘ f) μ) s
[PROOFSTEP]
simp [hf, hg, hs, hg hs, hg.comp hf, ← preimage_comp]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
h : μ ≤ ν
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ↑↑(map f μ) s ≤ ↑↑(map f ν) s
[PROOFSTEP]
simp [hf.aemeasurable, hs, h _ (hf hs)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : MeasurableSpace α
f : α → β
hf : Injective f ∧ ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑(↑(OuterMeasure.comap f) ↑μ) t = ↑(↑(OuterMeasure.comap f) ↑μ) (t ∩ s) + ↑(↑(OuterMeasure.comap f) ↑μ) (t \ s)
[PROOFSTEP]
simp only [OuterMeasure.comap_apply, image_inter hf.1, image_diff hf.1]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : MeasurableSpace α
f : α → β
hf : Injective f ∧ ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ (f '' t) = ↑↑μ (f '' t ∩ f '' s) + ↑↑μ (f '' t \ f '' s)
[PROOFSTEP]
apply le_toOuterMeasure_caratheodory
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : MeasurableSpace α
f : α → β
hf : Injective f ∧ ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
s : Set α
hs : MeasurableSet s
t : Set α
⊢ MeasurableSet (f '' s)
[PROOFSTEP]
exact hf.2 s hs
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
hs : MeasurableSet s
⊢ ↑↑(↑(comapₗ f) μ) s = ↑↑μ (f '' s)
[PROOFSTEP]
rw [comapₗ, dif_pos, liftLinear_apply _ hs, OuterMeasure.comap_apply]
[GOAL]
case hc
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
hs : MeasurableSet s
⊢ Injective f ∧ ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
case hc
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
μ : Measure β
hs : MeasurableSet s
⊢ Injective f ∧ ∀ (s : Set α), MeasurableSet s → MeasurableSet (f '' s)
[PROOFSTEP]
exact ⟨hfi, hf⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : MeasurableSpace α
f : α → β
μ : Measure β
hf : Injective f ∧ ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑(↑(OuterMeasure.comap f) ↑μ) t = ↑(↑(OuterMeasure.comap f) ↑μ) (t ∩ s) + ↑(↑(OuterMeasure.comap f) ↑μ) (t \ s)
[PROOFSTEP]
simp only [OuterMeasure.comap_apply, image_inter hf.1, image_diff hf.1]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : MeasurableSpace α
f : α → β
μ : Measure β
hf : Injective f ∧ ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ (f '' t) = ↑↑μ (f '' t ∩ f '' s) + ↑↑μ (f '' t \ f '' s)
[PROOFSTEP]
exact (measure_inter_add_diff₀ _ (hf.2 s hs)).symm
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
hs : NullMeasurableSet s
⊢ ↑↑(comap f μ) s = ↑↑μ (f '' s)
[PROOFSTEP]
rw [comap, dif_pos (And.intro hfi hf)] at hs ⊢
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure (↑(OuterMeasure.comap f) ↑μ)
            (_ :
              ∀ (s : Set α),
                MeasurableSet s →
                  ∀ (t : Set α),
                    ↑(↑(OuterMeasure.comap f) ↑μ) t =
                      ↑(↑(OuterMeasure.comap f) ↑μ) (t ∩ s) + ↑(↑(OuterMeasure.comap f) ↑μ) (t \ s)))
      s =
    ↑↑μ (f '' s)
[PROOFSTEP]
rw [toMeasure_apply₀ _ _ hs, OuterMeasure.comap_apply]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
⊢ ↑↑μ (f '' s) ≤ ↑↑(comap f μ) s
[PROOFSTEP]
rw [comap, dif_pos (And.intro hfi hf)]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
⊢ ↑↑μ (f '' s) ≤
    ↑↑(OuterMeasure.toMeasure (↑(OuterMeasure.comap f) ↑μ)
            (_ :
              ∀ (s : Set α),
                MeasurableSet s →
                  ∀ (t : Set α),
                    ↑(↑(OuterMeasure.comap f) ↑μ) t =
                      ↑(↑(OuterMeasure.comap f) ↑μ) (t ∩ s) + ↑(↑(OuterMeasure.comap f) ↑μ) (t \ s)))
      s
[PROOFSTEP]
exact le_toMeasure_apply _ _ _
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : s =ᶠ[ae (comap f μ)] t
⊢ f '' s =ᶠ[ae μ] f '' t
[PROOFSTEP]
rw [EventuallyEq, ae_iff] at hst ⊢
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
⊢ ↑↑μ {a | ¬(f '' s) a = (f '' t) a} = 0
[PROOFSTEP]
have h_eq_α : {a : α | ¬s a = t a} = s \ t ∪ t \ s := by
  ext1 x
  simp only [eq_iff_iff, mem_setOf_eq, mem_union, mem_diff]
  tauto
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
⊢ {a | ¬s a = t a} = s \ t ∪ t \ s
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
x : α
⊢ x ∈ {a | ¬s a = t a} ↔ x ∈ s \ t ∪ t \ s
[PROOFSTEP]
simp only [eq_iff_iff, mem_setOf_eq, mem_union, mem_diff]
[GOAL]
case h
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
x : α
⊢ ¬(s x ↔ t x) ↔ x ∈ s ∧ ¬x ∈ t ∨ x ∈ t ∧ ¬x ∈ s
[PROOFSTEP]
tauto
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
⊢ ↑↑μ {a | ¬(f '' s) a = (f '' t) a} = 0
[PROOFSTEP]
have h_eq_β : {a : β | ¬(f '' s) a = (f '' t) a} = f '' s \ f '' t ∪ f '' t \ f '' s :=
  by
  ext1 x
  simp only [eq_iff_iff, mem_setOf_eq, mem_union, mem_diff]
  tauto
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
⊢ {a | ¬(f '' s) a = (f '' t) a} = f '' s \ f '' t ∪ f '' t \ f '' s
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
x : β
⊢ x ∈ {a | ¬(f '' s) a = (f '' t) a} ↔ x ∈ f '' s \ f '' t ∪ f '' t \ f '' s
[PROOFSTEP]
simp only [eq_iff_iff, mem_setOf_eq, mem_union, mem_diff]
[GOAL]
case h
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
x : β
⊢ ¬((f '' s) x ↔ (f '' t) x) ↔ x ∈ f '' s ∧ ¬x ∈ f '' t ∨ x ∈ f '' t ∧ ¬x ∈ f '' s
[PROOFSTEP]
tauto
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
h_eq_β : {a | ¬(f '' s) a = (f '' t) a} = f '' s \ f '' t ∪ f '' t \ f '' s
⊢ ↑↑μ {a | ¬(f '' s) a = (f '' t) a} = 0
[PROOFSTEP]
rw [← Set.image_diff hfi, ← Set.image_diff hfi, ← Set.image_union] at h_eq_β 
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
h_eq_β : {a | ¬(f '' s) a = (f '' t) a} = f '' (s \ t ∪ t \ s)
⊢ ↑↑μ {a | ¬(f '' s) a = (f '' t) a} = 0
[PROOFSTEP]
rw [h_eq_β]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) {a | ¬s a = t a} = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
h_eq_β : {a | ¬(f '' s) a = (f '' t) a} = f '' (s \ t ∪ t \ s)
⊢ ↑↑μ (f '' (s \ t ∪ t \ s)) = 0
[PROOFSTEP]
rw [h_eq_α] at hst 
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s t : Set α
hst : ↑↑(comap f μ) (s \ t ∪ t \ s) = 0
h_eq_α : {a | ¬s a = t a} = s \ t ∪ t \ s
h_eq_β : {a | ¬(f '' s) a = (f '' t) a} = f '' (s \ t ∪ t \ s)
⊢ ↑↑μ (f '' (s \ t ∪ t \ s)) = 0
[PROOFSTEP]
exact measure_image_eq_zero_of_comap_eq_zero f μ hfi hf hst
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ NullMeasurableSet (f '' s)
[PROOFSTEP]
refine' ⟨toMeasurable μ (f '' toMeasurable (μ.comap f) s), measurableSet_toMeasurable _ _, _⟩
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ f '' s =ᶠ[ae μ] toMeasurable μ (f '' toMeasurable (comap f μ) s)
[PROOFSTEP]
refine' EventuallyEq.trans _ (NullMeasurableSet.toMeasurable_ae_eq _).symm
[GOAL]
case refine'_1
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ f '' s =ᶠ[ae μ] f '' toMeasurable (comap f μ) s
case refine'_2
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ NullMeasurableSet (f '' toMeasurable (comap f μ) s)
[PROOFSTEP]
swap
[GOAL]
case refine'_2
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ NullMeasurableSet (f '' toMeasurable (comap f μ) s)
[PROOFSTEP]
exact hf _ (measurableSet_toMeasurable _ _)
[GOAL]
case refine'_1
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
⊢ f '' s =ᶠ[ae μ] f '' toMeasurable (comap f μ) s
[PROOFSTEP]
have h : toMeasurable (comap f μ) s =ᵐ[comap f μ] s :=
  @NullMeasurableSet.toMeasurable_ae_eq _ _ (μ.comap f : Measure α) s hs
[GOAL]
case refine'_1
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
hfi : Injective f
hf : ∀ (s : Set α), MeasurableSet s → NullMeasurableSet (f '' s)
s : Set α
hs : NullMeasurableSet s
h : toMeasurable (comap f μ) s =ᶠ[ae (comap f μ)] s
⊢ f '' s =ᶠ[ae μ] f '' toMeasurable (comap f μ) s
[PROOFSTEP]
exact ae_eq_image_of_ae_eq_comap f μ hfi hf h.symm
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
β : Type u_8
inst✝ : MeasurableSpace α
mβ : MeasurableSpace β
f : α → β
μ : Measure β
s : Set β
hf : Injective f
hf' : Measurable f
h : ∀ (t : Set α), MeasurableSet t → NullMeasurableSet (f '' t)
hs : MeasurableSet s
⊢ ↑↑(comap f μ) (f ⁻¹' s) = ↑↑μ (s ∩ range f)
[PROOFSTEP]
rw [comap_apply₀ _ _ hf h (hf' hs).nullMeasurableSet, image_preimage_eq_inter_range]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ NullMeasurableSet (Subtype.val '' t)
[PROOFSTEP]
rw [Subtype.instMeasurableSpace, comap_eq_generateFrom] at ht 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ NullMeasurableSet (Subtype.val '' t)
[PROOFSTEP]
refine'
  generateFrom_induction (p := fun t : Set s => NullMeasurableSet ((↑) '' t) μ)
    {t : Set s | ∃ s' : Set α, MeasurableSet s' ∧ (↑) ⁻¹' s' = t} _ _ _ _ ht
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ ∀ (t : Set ↑s),
    t ∈ {t | ∃ s', MeasurableSet s' ∧ Subtype.val ⁻¹' s' = t} → (fun t => NullMeasurableSet (Subtype.val '' t)) t
[PROOFSTEP]
rintro t' ⟨s', hs', rfl⟩
[GOAL]
case refine'_1.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s'✝ t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
s' : Set α
hs' : MeasurableSet s'
⊢ NullMeasurableSet (Subtype.val '' (Subtype.val ⁻¹' s'))
[PROOFSTEP]
rw [Subtype.image_preimage_coe]
[GOAL]
case refine'_1.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s'✝ t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
s' : Set α
hs' : MeasurableSet s'
⊢ NullMeasurableSet (s' ∩ s)
[PROOFSTEP]
exact hs'.nullMeasurableSet.inter hs
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ (fun t => NullMeasurableSet (Subtype.val '' t)) ∅
[PROOFSTEP]
simp only [image_empty, nullMeasurableSet_empty]
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ ∀ (t : Set ↑s), (fun t => NullMeasurableSet (Subtype.val '' t)) t → (fun t => NullMeasurableSet (Subtype.val '' t)) tᶜ
[PROOFSTEP]
intro t'
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
t' : Set ↑s
⊢ (fun t => NullMeasurableSet (Subtype.val '' t)) t' → (fun t => NullMeasurableSet (Subtype.val '' t)) t'ᶜ
[PROOFSTEP]
simp only [← range_diff_image Subtype.coe_injective, Subtype.range_coe_subtype, setOf_mem_eq]
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
t' : Set ↑s
⊢ NullMeasurableSet (Subtype.val '' t') → NullMeasurableSet (s \ (fun a => ↑a) '' t')
[PROOFSTEP]
exact hs.diff
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ ∀ (f : ℕ → Set ↑s),
    (∀ (n : ℕ), (fun t => NullMeasurableSet (Subtype.val '' t)) (f n)) →
      (fun t => NullMeasurableSet (Subtype.val '' t)) (⋃ (i : ℕ), f i)
[PROOFSTEP]
intro f
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
f : ℕ → Set ↑s
⊢ (∀ (n : ℕ), (fun t => NullMeasurableSet (Subtype.val '' t)) (f n)) →
    (fun t => NullMeasurableSet (Subtype.val '' t)) (⋃ (i : ℕ), f i)
[PROOFSTEP]
dsimp only []
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
f : ℕ → Set ↑s
⊢ (∀ (n : ℕ), NullMeasurableSet (Subtype.val '' f n)) → NullMeasurableSet (Subtype.val '' ⋃ (i : ℕ), f i)
[PROOFSTEP]
rw [image_iUnion]
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : Set ↑s
hs : NullMeasurableSet s
ht : MeasurableSet t
f : ℕ → Set ↑s
⊢ (∀ (n : ℕ), NullMeasurableSet (Subtype.val '' f n)) → NullMeasurableSet (⋃ (i : ℕ), Subtype.val '' f i)
[PROOFSTEP]
exact NullMeasurableSet.iUnion
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
s : Set α
inst✝ : MeasureSpace α
p : α → Prop
hs : NullMeasurableSet s
⊢ ↑↑volume univ = ↑↑volume s
[PROOFSTEP]
rw [Subtype.volume_def, comap_apply₀ _ _ _ _ MeasurableSet.univ.nullMeasurableSet]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
s : Set α
inst✝ : MeasureSpace α
p : α → Prop
hs : NullMeasurableSet s
⊢ ↑↑volume (Subtype.val '' univ) = ↑↑volume s
[PROOFSTEP]
congr
[GOAL]
case e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
s : Set α
inst✝ : MeasureSpace α
p : α → Prop
hs : NullMeasurableSet s
⊢ Subtype.val '' univ = s
[PROOFSTEP]
simp only [image_univ, Subtype.range_coe_subtype, setOf_mem_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
s : Set α
inst✝ : MeasureSpace α
p : α → Prop
hs : NullMeasurableSet s
⊢ Injective Subtype.val
[PROOFSTEP]
exact Subtype.coe_injective
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
s : Set α
inst✝ : MeasureSpace α
p : α → Prop
hs : NullMeasurableSet s
⊢ ∀ (s_1 : Set ↑s), MeasurableSet s_1 → NullMeasurableSet (Subtype.val '' s_1)
[PROOFSTEP]
exact fun t => MeasurableSet.nullMeasurableSet_subtype_coe hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ : Set α
m0 : MeasurableSpace α
s : Set α
μ : Measure α
s' : Set α
hs' : MeasurableSet s'
t : Set α
⊢ ↑(↑(OuterMeasure.restrict s) ↑μ) t =
    ↑(↑(OuterMeasure.restrict s) ↑μ) (t ∩ s') + ↑(↑(OuterMeasure.restrict s) ↑μ) (t \ s')
[PROOFSTEP]
suffices μ (s ∩ t) = μ (s ∩ t ∩ s') + μ ((s ∩ t) \ s') by
  simpa [← Set.inter_assoc, Set.inter_comm _ s, ← inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ : Set α
m0 : MeasurableSpace α
s : Set α
μ : Measure α
s' : Set α
hs' : MeasurableSet s'
t : Set α
this : ↑↑μ (s ∩ t) = ↑↑μ (s ∩ t ∩ s') + ↑↑μ ((s ∩ t) \ s')
⊢ ↑(↑(OuterMeasure.restrict s) ↑μ) t =
    ↑(↑(OuterMeasure.restrict s) ↑μ) (t ∩ s') + ↑(↑(OuterMeasure.restrict s) ↑μ) (t \ s')
[PROOFSTEP]
simpa [← Set.inter_assoc, Set.inter_comm _ s, ← inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ : Set α
m0 : MeasurableSpace α
s : Set α
μ : Measure α
s' : Set α
hs' : MeasurableSet s'
t : Set α
⊢ ↑↑μ (s ∩ t) = ↑↑μ (s ∩ t ∩ s') + ↑↑μ ((s ∩ t) \ s')
[PROOFSTEP]
exact le_toOuterMeasure_caratheodory _ _ hs' _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : MeasurableSet s
⊢ ↑(restrict μ s) = ↑(OuterMeasure.restrict s) ↑μ
[PROOFSTEP]
simp_rw [restrict, restrictₗ, liftLinear, LinearMap.coe_mk, AddHom.coe_mk, toMeasure_toOuterMeasure,
  OuterMeasure.restrict_trim h, μ.trimmed]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s'✝ t✝ : Set α
ht : NullMeasurableSet t✝
s' : Set α
hs' : MeasurableSet s'
t : Set α
⊢ ↑(↑(OuterMeasure.restrict s) ↑μ) t =
    ↑(↑(OuterMeasure.restrict s) ↑μ) (t ∩ s') + ↑(↑(OuterMeasure.restrict s) ↑μ) (t \ s')
[PROOFSTEP]
suffices μ (s ∩ t) = μ (s ∩ t ∩ s') + μ ((s ∩ t) \ s') by
  simpa [← Set.inter_assoc, Set.inter_comm _ s, ← inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s'✝ t✝ : Set α
ht : NullMeasurableSet t✝
s' : Set α
hs' : MeasurableSet s'
t : Set α
this : ↑↑μ (s ∩ t) = ↑↑μ (s ∩ t ∩ s') + ↑↑μ ((s ∩ t) \ s')
⊢ ↑(↑(OuterMeasure.restrict s) ↑μ) t =
    ↑(↑(OuterMeasure.restrict s) ↑μ) (t ∩ s') + ↑(↑(OuterMeasure.restrict s) ↑μ) (t \ s')
[PROOFSTEP]
simpa [← Set.inter_assoc, Set.inter_comm _ s, ← inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s'✝ t✝ : Set α
ht : NullMeasurableSet t✝
s' : Set α
hs' : MeasurableSet s'
t : Set α
⊢ ↑↑μ (s ∩ t) = ↑↑μ (s ∩ t ∩ s') + ↑↑μ ((s ∩ t) \ s')
[PROOFSTEP]
exact le_toOuterMeasure_caratheodory _ _ hs' _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ht : NullMeasurableSet t
⊢ ↑(↑(OuterMeasure.restrict s) ↑μ) t = ↑↑μ (t ∩ s)
[PROOFSTEP]
simp only [OuterMeasure.restrict_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ ↑↑(restrict μ s) t = ↑↑μ (t ∩ s)
[PROOFSTEP]
rw [Measure.restrict_toOuterMeasure_eq_toOuterMeasure_restrict hs, OuterMeasure.restrict_apply s t _]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : NullMeasurableSet s
⊢ ↑↑(restrict μ s) t = ↑↑μ (t ∩ s)
[PROOFSTEP]
rw [← restrict_congr_set hs.toMeasurable_ae_eq, restrict_apply' (measurableSet_toMeasurable _ _),
  measure_congr ((ae_eq_refl t).inter hs.toMeasurable_ae_eq)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
⊢ ↑↑μ (toMeasurable (restrict μ t) s ∩ t) = ↑↑(restrict μ t) s
[PROOFSTEP]
rw [← restrict_apply (measurableSet_toMeasurable _ _), measure_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
⊢ ↑↑(restrict μ s) univ = ↑↑μ s
[PROOFSTEP]
rw [restrict_apply MeasurableSet.univ, Set.univ_inter]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : NullMeasurableSet s
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict (restrict μ t) s) u = ↑↑(restrict μ (s ∩ t)) u
[PROOFSTEP]
simp only [Set.inter_assoc, restrict_apply hu, restrict_apply₀ (hu.nullMeasurableSet.inter hs)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
⊢ restrict (restrict μ t) s = restrict μ s
[PROOFSTEP]
ext1 u hu
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict (restrict μ t) s) u = ↑↑(restrict μ s) u
[PROOFSTEP]
rw [restrict_apply hu, restrict_apply hu, restrict_eq_self]
[GOAL]
case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ u ∩ s ⊆ t
[PROOFSTEP]
exact (inter_subset_right _ _).trans h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ht : NullMeasurableSet t
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict (restrict μ t) s) u = ↑↑(restrict μ (s ∩ t)) u
[PROOFSTEP]
simp only [restrict_apply hu, restrict_apply₀' ht, inter_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ restrict (restrict μ t) s = restrict (restrict μ s) t
[PROOFSTEP]
rw [restrict_restrict hs, restrict_restrict' hs, inter_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ s) t = 0 ↔ ↑↑μ (t ∩ s) = 0
[PROOFSTEP]
rw [restrict_apply ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ ↑↑(restrict μ s) t = 0 ↔ ↑↑μ (t ∩ s) = 0
[PROOFSTEP]
rw [restrict_apply' hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ restrict μ s = 0 ↔ ↑↑μ s = 0
[PROOFSTEP]
rw [← measure_univ_eq_zero, restrict_apply_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ ↑↑(restrict μ univ) s = ↑↑μ s
[PROOFSTEP]
simp [hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
ht : NullMeasurableSet t
⊢ restrict μ (s ∩ t) + restrict μ (s \ t) = restrict μ s
[PROOFSTEP]
ext1 u hu
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
ht : NullMeasurableSet t
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict μ (s ∩ t) + restrict μ (s \ t)) u = ↑↑(restrict μ s) u
[PROOFSTEP]
simp only [add_apply, restrict_apply hu, ← inter_assoc, diff_eq]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
ht : NullMeasurableSet t
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (u ∩ s ∩ t) + ↑↑μ (u ∩ s ∩ tᶜ) = ↑↑μ (u ∩ s)
[PROOFSTEP]
exact measure_inter_add_diff₀ (u ∩ s) ht
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
ht : NullMeasurableSet t
⊢ restrict μ (s ∪ t) + restrict μ (s ∩ t) = restrict μ s + restrict μ t
[PROOFSTEP]
rw [← restrict_inter_add_diff₀ (s ∪ t) ht, union_inter_cancel_right, union_diff_right, ← restrict_inter_add_diff₀ s ht,
  add_comm, ← add_assoc, add_right_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : MeasurableSet s
t : Set α
⊢ restrict μ (s ∪ t) + restrict μ (s ∩ t) = restrict μ s + restrict μ t
[PROOFSTEP]
simpa only [union_comm, inter_comm, add_comm] using restrict_union_add_inter t hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : AEDisjoint μ s t
ht : NullMeasurableSet t
⊢ restrict μ (s ∪ t) = restrict μ s + restrict μ t
[PROOFSTEP]
simp [← restrict_union_add_inter₀ s ht, restrict_zero_set h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : Disjoint s t
hs : MeasurableSet s
⊢ restrict μ (s ∪ t) = restrict μ s + restrict μ t
[PROOFSTEP]
rw [union_comm, restrict_union h.symm hs, add_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ restrict μ s + restrict μ sᶜ = μ
[PROOFSTEP]
rw [← restrict_union (@disjoint_compl_right (Set α) _ _) hs.compl, union_compl_self, restrict_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ restrict μ sᶜ + restrict μ s = μ
[PROOFSTEP]
rw [add_comm, restrict_add_restrict_compl hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t s s' : Set α
⊢ restrict μ (s ∪ s') ≤ restrict μ s + restrict μ s'
[PROOFSTEP]
intro t ht
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ s s' t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (s ∪ s')) t ≤ ↑↑(restrict μ s + restrict μ s') t
[PROOFSTEP]
suffices μ (t ∩ s ∪ t ∩ s') ≤ μ (t ∩ s) + μ (t ∩ s') by simpa [ht, inter_union_distrib_left]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ s s' t : Set α
ht : MeasurableSet t
this : ↑↑μ (t ∩ s ∪ t ∩ s') ≤ ↑↑μ (t ∩ s) + ↑↑μ (t ∩ s')
⊢ ↑↑(restrict μ (s ∪ s')) t ≤ ↑↑(restrict μ s + restrict μ s') t
[PROOFSTEP]
simpa [ht, inter_union_distrib_left]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s'✝ t✝ s s' t : Set α
ht : MeasurableSet t
⊢ ↑↑μ (t ∩ s ∪ t ∩ s') ≤ ↑↑μ (t ∩ s) + ↑↑μ (t ∩ s')
[PROOFSTEP]
apply measure_union_le
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
hm : ∀ (i : ι), NullMeasurableSet (s i)
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t = ∑' (i : ι), ↑↑(restrict μ (s i)) t
[PROOFSTEP]
simp only [restrict_apply, ht, inter_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
hm : ∀ (i : ι), NullMeasurableSet (s i)
t : Set α
ht : MeasurableSet t
⊢ ↑↑μ (⋃ (i : ι), t ∩ s i) = ∑' (i : ι), ↑↑μ (t ∩ s i)
[PROOFSTEP]
exact
  measure_iUnion₀ (hd.mono fun i j h => h.mono (inter_subset_right _ _) (inter_subset_right _ _)) fun i =>
    ht.nullMeasurableSet.inter (hm i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t = ⨆ (i : ι), ↑↑(restrict μ (s i)) t
[PROOFSTEP]
simp only [restrict_apply ht, inter_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
t : Set α
ht : MeasurableSet t
⊢ ↑↑μ (⋃ (i : ι), t ∩ s i) = ⨆ (i : ι), ↑↑μ (t ∩ s i)
[PROOFSTEP]
rw [measure_iUnion_eq_iSup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Directed (fun x x_1 => x ⊆ x_1) s
t : Set α
ht : MeasurableSet t
⊢ Directed (fun x x_1 => x ⊆ x_1) fun i => t ∩ s i
[PROOFSTEP]
exacts [hd.mono_comp _ fun s₁ s₂ => inter_subset_inter_right _]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
t : Set β
ht : MeasurableSet t
⊢ ↑↑(restrict (map f μ) s) t = ↑↑(map f (restrict μ (f ⁻¹' s))) t
[PROOFSTEP]
simp [*, hf ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
h : ↑↑μ s ≠ ⊤
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (toMeasurable μ s)) t = ↑↑(restrict μ s) t
[PROOFSTEP]
rw [restrict_apply ht, restrict_apply ht, inter_comm, measure_toMeasurable_inter ht h, inter_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : MeasurableSet s
H : restrict μ s = restrict ν s
t : Set α
hts : t ⊆ s
ht : MeasurableSet t
⊢ ↑↑μ t = ↑↑ν t
[PROOFSTEP]
rw [← inter_eq_self_of_subset_left hts, ← restrict_apply ht, H, restrict_apply ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : MeasurableSet s
H : ∀ (t : Set α), t ⊆ s → MeasurableSet t → ↑↑μ t = ↑↑ν t
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ s) t = ↑↑(restrict ν s) t
[PROOFSTEP]
rw [restrict_apply ht, restrict_apply ht, H _ (inter_subset_right _ _) (ht.inter hs)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : s ⊆ t
h : restrict μ t = restrict ν t
⊢ restrict μ s = restrict ν s
[PROOFSTEP]
rw [← restrict_restrict_of_subset hs, h, restrict_restrict_of_subset hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ restrict μ (s ∪ t) = restrict ν (s ∪ t) ↔ restrict μ s = restrict ν s ∧ restrict μ t = restrict ν t
[PROOFSTEP]
refine' ⟨fun h => ⟨restrict_congr_mono (subset_union_left _ _) h, restrict_congr_mono (subset_union_right _ _) h⟩, _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ restrict μ s = restrict ν s ∧ restrict μ t = restrict ν t → restrict μ (s ∪ t) = restrict ν (s ∪ t)
[PROOFSTEP]
rintro ⟨hs, ht⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
⊢ restrict μ (s ∪ t) = restrict ν (s ∪ t)
[PROOFSTEP]
ext1 u hu
[GOAL]
case intro.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict μ (s ∪ t)) u = ↑↑(restrict ν (s ∪ t)) u
[PROOFSTEP]
simp only [restrict_apply hu, inter_union_distrib_left]
[GOAL]
case intro.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (u ∩ s ∪ u ∩ t) = ↑↑ν (u ∩ s ∪ u ∩ t)
[PROOFSTEP]
rcases exists_measurable_superset₂ μ ν (u ∩ s) with ⟨US, hsub, hm, hμ, hν⟩
[GOAL]
case intro.h.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
US : Set α
hsub : u ∩ s ⊆ US
hm : MeasurableSet US
hμ : ↑↑μ US = ↑↑μ (u ∩ s)
hν : ↑↑ν US = ↑↑ν (u ∩ s)
⊢ ↑↑μ (u ∩ s ∪ u ∩ t) = ↑↑ν (u ∩ s ∪ u ∩ t)
[PROOFSTEP]
calc
  μ (u ∩ s ∪ u ∩ t) = μ (US ∪ u ∩ t) := measure_union_congr_of_subset hsub hμ.le Subset.rfl le_rfl
  _ = μ US + μ ((u ∩ t) \ US) := (measure_add_diff hm _).symm
  _ = restrict μ s u + restrict μ t (u \ US) := by
    simp only [restrict_apply, hu, hu.diff hm, hμ, ← inter_comm t, inter_diff_assoc]
  _ = restrict ν s u + restrict ν t (u \ US) := by rw [hs, ht]
  _ = ν US + ν ((u ∩ t) \ US) := by simp only [restrict_apply, hu, hu.diff hm, hν, ← inter_comm t, inter_diff_assoc]
  _ = ν (US ∪ u ∩ t) := (measure_add_diff hm _)
  _ = ν (u ∩ s ∪ u ∩ t) := Eq.symm <| measure_union_congr_of_subset hsub hν.le Subset.rfl le_rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
US : Set α
hsub : u ∩ s ⊆ US
hm : MeasurableSet US
hμ : ↑↑μ US = ↑↑μ (u ∩ s)
hν : ↑↑ν US = ↑↑ν (u ∩ s)
⊢ ↑↑μ US + ↑↑μ ((u ∩ t) \ US) = ↑↑(restrict μ s) u + ↑↑(restrict μ t) (u \ US)
[PROOFSTEP]
simp only [restrict_apply, hu, hu.diff hm, hμ, ← inter_comm t, inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
US : Set α
hsub : u ∩ s ⊆ US
hm : MeasurableSet US
hμ : ↑↑μ US = ↑↑μ (u ∩ s)
hν : ↑↑ν US = ↑↑ν (u ∩ s)
⊢ ↑↑(restrict μ s) u + ↑↑(restrict μ t) (u \ US) = ↑↑(restrict ν s) u + ↑↑(restrict ν t) (u \ US)
[PROOFSTEP]
rw [hs, ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : restrict μ s = restrict ν s
ht : restrict μ t = restrict ν t
u : Set α
hu : MeasurableSet u
US : Set α
hsub : u ∩ s ⊆ US
hm : MeasurableSet US
hμ : ↑↑μ US = ↑↑μ (u ∩ s)
hν : ↑↑ν US = ↑↑ν (u ∩ s)
⊢ ↑↑(restrict ν s) u + ↑↑(restrict ν t) (u \ US) = ↑↑ν US + ↑↑ν ((u ∩ t) \ US)
[PROOFSTEP]
simp only [restrict_apply, hu, hu.diff hm, hν, ← inter_comm t, inter_diff_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : Finset ι
t : ι → Set α
⊢ restrict μ (⋃ (i : ι) (_ : i ∈ s), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ s), t i) ↔
    ∀ (i : ι), i ∈ s → restrict μ (t i) = restrict ν (t i)
[PROOFSTEP]
induction' s using Finset.induction_on with i s _ hs
[GOAL]
case empty
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
t : ι → Set α
⊢ restrict μ (⋃ (i : ι) (_ : i ∈ ∅), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ ∅), t i) ↔
    ∀ (i : ι), i ∈ ∅ → restrict μ (t i) = restrict ν (t i)
[PROOFSTEP]
simp
[GOAL]
case insert
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
t : ι → Set α
i : ι
s : Finset ι
a✝ : ¬i ∈ s
hs :
  restrict μ (⋃ (i : ι) (_ : i ∈ s), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ s), t i) ↔
    ∀ (i : ι), i ∈ s → restrict μ (t i) = restrict ν (t i)
⊢ restrict μ (⋃ (i_1 : ι) (_ : i_1 ∈ insert i s), t i_1) = restrict ν (⋃ (i_1 : ι) (_ : i_1 ∈ insert i s), t i_1) ↔
    ∀ (i_1 : ι), i_1 ∈ insert i s → restrict μ (t i_1) = restrict ν (t i_1)
[PROOFSTEP]
simp only [forall_eq_or_imp, iUnion_iUnion_eq_or_left, Finset.mem_insert]
[GOAL]
case insert
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
t : ι → Set α
i : ι
s : Finset ι
a✝ : ¬i ∈ s
hs :
  restrict μ (⋃ (i : ι) (_ : i ∈ s), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ s), t i) ↔
    ∀ (i : ι), i ∈ s → restrict μ (t i) = restrict ν (t i)
⊢ restrict μ (t i ∪ ⋃ (x : ι) (_ : x ∈ s), t x) = restrict ν (t i ∪ ⋃ (x : ι) (_ : x ∈ s), t x) ↔
    restrict μ (t i) = restrict ν (t i) ∧ ∀ (a : ι), a ∈ s → restrict μ (t a) = restrict ν (t a)
[PROOFSTEP]
rw [restrict_union_congr, ← hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
⊢ restrict μ (⋃ (i : ι), s i) = restrict ν (⋃ (i : ι), s i) ↔ ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
[PROOFSTEP]
refine' ⟨fun h i => restrict_congr_mono (subset_iUnion _ _) h, fun h => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
⊢ restrict μ (⋃ (i : ι), s i) = restrict ν (⋃ (i : ι), s i)
[PROOFSTEP]
ext1 t ht
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t = ↑↑(restrict ν (⋃ (i : ι), s i)) t
[PROOFSTEP]
have D : Directed (· ⊆ ·) fun t : Finset ι => ⋃ i ∈ t, s i :=
  directed_of_sup fun t₁ t₂ ht => biUnion_subset_biUnion_left ht
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
t : Set α
ht : MeasurableSet t
D : Directed (fun x x_1 => x ⊆ x_1) fun t => ⋃ (i : ι) (_ : i ∈ t), s i
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t = ↑↑(restrict ν (⋃ (i : ι), s i)) t
[PROOFSTEP]
rw [iUnion_eq_iUnion_finset]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
t : Set α
ht : MeasurableSet t
D : Directed (fun x x_1 => x ⊆ x_1) fun t => ⋃ (i : ι) (_ : i ∈ t), s i
⊢ ↑↑(restrict μ (⋃ (t : Finset ι) (i : ι) (_ : i ∈ t), s i)) t =
    ↑↑(restrict ν (⋃ (t : Finset ι) (i : ι) (_ : i ∈ t), s i)) t
[PROOFSTEP]
simp only [restrict_iUnion_apply_eq_iSup D ht, restrict_finset_biUnion_congr.2 fun i _ => h i]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : Set ι
t : ι → Set α
hc : Set.Countable s
⊢ restrict μ (⋃ (i : ι) (_ : i ∈ s), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ s), t i) ↔
    ∀ (i : ι), i ∈ s → restrict μ (t i) = restrict ν (t i)
[PROOFSTEP]
haveI := hc.toEncodable
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : Set ι
t : ι → Set α
hc : Set.Countable s
this : Encodable ↑s
⊢ restrict μ (⋃ (i : ι) (_ : i ∈ s), t i) = restrict ν (⋃ (i : ι) (_ : i ∈ s), t i) ↔
    ∀ (i : ι), i ∈ s → restrict μ (t i) = restrict ν (t i)
[PROOFSTEP]
simp only [biUnion_eq_iUnion, SetCoe.forall', restrict_iUnion_congr]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S : Set (Set α)
hc : Set.Countable S
⊢ restrict μ (⋃₀ S) = restrict ν (⋃₀ S) ↔ ∀ (s : Set α), s ∈ S → restrict μ s = restrict ν s
[PROOFSTEP]
rw [sUnion_eq_biUnion, restrict_biUnion_congr hc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
m : Set (Measure α)
hm : Set.Nonempty m
ht : MeasurableSet t
⊢ restrict (sInf m) t = sInf ((fun μ => restrict μ t) '' m)
[PROOFSTEP]
ext1 s hs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
m0 : MeasurableSpace α
m : Set (Measure α)
hm : Set.Nonempty m
ht : MeasurableSet t
s : Set α
hs : MeasurableSet s
⊢ ↑↑(restrict (sInf m) t) s = ↑↑(sInf ((fun μ => restrict μ t) '' m)) s
[PROOFSTEP]
simp_rw [sInf_apply hs, restrict_apply hs, sInf_apply (MeasurableSet.inter hs ht), Set.image_image,
  restrict_toOuterMeasure_eq_toOuterMeasure_restrict ht, ← Set.image_image _ toOuterMeasure, ←
  OuterMeasure.restrict_sInf_eq_sInf_restrict _ (hm.image _), OuterMeasure.restrict_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : ↑↑μ s ≠ 0
p : α → Prop
hp : ∀ᵐ (x : α) ∂restrict μ s, p x
⊢ ∃ x, x ∈ s ∧ p x
[PROOFSTEP]
rw [← μ.restrict_apply_self, ← frequently_ae_mem_iff] at hs 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : ∃ᵐ (a : α) ∂restrict μ s, a ∈ s
p : α → Prop
hp : ∀ᵐ (x : α) ∂restrict μ s, p x
⊢ ∃ x, x ∈ s ∧ p x
[PROOFSTEP]
exact (hs.and_eventually hp).exists
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : ⋃ (i : ι), s i = univ
⊢ μ = ν ↔ ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
[PROOFSTEP]
rw [← restrict_iUnion_congr, hs, restrict_univ, restrict_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
S : Set ι
s : ι → Set α
hc : Set.Countable S
hs : ⋃ (i : ι) (_ : i ∈ S), s i = univ
⊢ μ = ν ↔ ∀ (i : ι), i ∈ S → restrict μ (s i) = restrict ν (s i)
[PROOFSTEP]
rw [← restrict_biUnion_congr hc, hs, restrict_univ, restrict_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hs : ⋃₀ S = univ
⊢ ⋃ (i : Set α) (_ : i ∈ S), i = univ
[PROOFSTEP]
rwa [← sUnion_eq_biUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
⊢ μ = ν
[PROOFSTEP]
refine' ext_of_sUnion_eq_univ hc hU fun t ht => _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
⊢ restrict μ t = restrict ν t
[PROOFSTEP]
ext1 u hu
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict μ t) u = ↑↑(restrict ν t) u
[PROOFSTEP]
simp only [restrict_apply hu]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (u ∩ t) = ↑↑ν (u ∩ t)
[PROOFSTEP]
refine' induction_on_inter h_gen h_inter _ (ST_eq t ht) _ _ hu
[GOAL]
case h.refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (∅ ∩ t) = ↑↑ν (∅ ∩ t)
[PROOFSTEP]
simp only [Set.empty_inter, measure_empty]
[GOAL]
case h.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
⊢ ∀ (t_1 : Set α), MeasurableSet t_1 → ↑↑μ (t_1 ∩ t) = ↑↑ν (t_1 ∩ t) → ↑↑μ (t_1ᶜ ∩ t) = ↑↑ν (t_1ᶜ ∩ t)
[PROOFSTEP]
intro v hv hvt
[GOAL]
case h.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
v : Set α
hv : MeasurableSet v
hvt : ↑↑μ (v ∩ t) = ↑↑ν (v ∩ t)
⊢ ↑↑μ (vᶜ ∩ t) = ↑↑ν (vᶜ ∩ t)
[PROOFSTEP]
have := T_eq t ht
[GOAL]
case h.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
v : Set α
hv : MeasurableSet v
hvt : ↑↑μ (v ∩ t) = ↑↑ν (v ∩ t)
this : ↑↑μ t = ↑↑ν t
⊢ ↑↑μ (vᶜ ∩ t) = ↑↑ν (vᶜ ∩ t)
[PROOFSTEP]
rw [Set.inter_comm] at hvt ⊢
[GOAL]
case h.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
v : Set α
hv : MeasurableSet v
hvt : ↑↑μ (t ∩ v) = ↑↑ν (t ∩ v)
this : ↑↑μ t = ↑↑ν t
⊢ ↑↑μ (t ∩ vᶜ) = ↑↑ν (t ∩ vᶜ)
[PROOFSTEP]
rwa [← measure_inter_add_diff t hv, ← measure_inter_add_diff t hv, ← hvt, ENNReal.add_right_inj] at this 
[GOAL]
case h.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
v : Set α
hv : MeasurableSet v
hvt : ↑↑μ (t ∩ v) = ↑↑ν (t ∩ v)
this : ↑↑μ (t ∩ v) + ↑↑μ (t \ v) = ↑↑μ (t ∩ v) + ↑↑ν (t \ v)
⊢ ↑↑μ (t ∩ v) ≠ ⊤
[PROOFSTEP]
exact ne_top_of_le_ne_top (htop t ht) (measure_mono <| Set.inter_subset_left _ _)
[GOAL]
case h.refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
⊢ ∀ (f : ℕ → Set α),
    Pairwise (Disjoint on f) →
      (∀ (i : ℕ), MeasurableSet (f i)) →
        (∀ (i : ℕ), ↑↑μ (f i ∩ t) = ↑↑ν (f i ∩ t)) → ↑↑μ ((⋃ (i : ℕ), f i) ∩ t) = ↑↑ν ((⋃ (i : ℕ), f i) ∩ t)
[PROOFSTEP]
intro f hfd hfm h_eq
[GOAL]
case h.refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
f : ℕ → Set α
hfd : Pairwise (Disjoint on f)
hfm : ∀ (i : ℕ), MeasurableSet (f i)
h_eq : ∀ (i : ℕ), ↑↑μ (f i ∩ t) = ↑↑ν (f i ∩ t)
⊢ ↑↑μ ((⋃ (i : ℕ), f i) ∩ t) = ↑↑ν ((⋃ (i : ℕ), f i) ∩ t)
[PROOFSTEP]
simp only [← restrict_apply (hfm _), ← restrict_apply (MeasurableSet.iUnion hfm)] at h_eq ⊢
[GOAL]
case h.refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
hc : Set.Countable T
h_inter : IsPiSystem S
hU : ⋃₀ T = univ
htop : ∀ (t : Set α), t ∈ T → ↑↑μ t ≠ ⊤
ST_eq : ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
T_eq : ∀ (t : Set α), t ∈ T → ↑↑μ t = ↑↑ν t
t : Set α
ht : t ∈ T
u : Set α
hu : MeasurableSet u
f : ℕ → Set α
hfd : Pairwise (Disjoint on f)
hfm : ∀ (i : ℕ), MeasurableSet (f i)
h_eq : ∀ (i : ℕ), ↑↑(restrict μ t) (f i) = ↑↑(restrict ν t) (f i)
⊢ ↑↑(restrict μ t) (⋃ (i : ℕ), f i) = ↑↑(restrict ν t) (⋃ (i : ℕ), f i)
[PROOFSTEP]
simp only [measure_iUnion hfd hfm, h_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
h_inter : IsPiSystem S
h_sub : T ⊆ S
hc : Set.Countable T
hU : ⋃₀ T = univ
htop : ∀ (s : Set α), s ∈ T → ↑↑μ s ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ S → ↑↑μ s = ↑↑ν s
⊢ μ = ν
[PROOFSTEP]
refine' ext_of_generateFrom_of_cover h_gen hc h_inter hU htop _ fun t ht => h_eq t (h_sub ht)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
h_inter : IsPiSystem S
h_sub : T ⊆ S
hc : Set.Countable T
hU : ⋃₀ T = univ
htop : ∀ (s : Set α), s ∈ T → ↑↑μ s ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ S → ↑↑μ s = ↑↑ν s
⊢ ∀ (t : Set α), t ∈ T → ∀ (s : Set α), s ∈ S → ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
[PROOFSTEP]
intro t ht s hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
h_inter : IsPiSystem S
h_sub : T ⊆ S
hc : Set.Countable T
hU : ⋃₀ T = univ
htop : ∀ (s : Set α), s ∈ T → ↑↑μ s ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ S → ↑↑μ s = ↑↑ν s
t : Set α
ht : t ∈ T
s : Set α
hs : s ∈ S
⊢ ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
[PROOFSTEP]
cases' (s ∩ t).eq_empty_or_nonempty with H H
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
h_inter : IsPiSystem S
h_sub : T ⊆ S
hc : Set.Countable T
hU : ⋃₀ T = univ
htop : ∀ (s : Set α), s ∈ T → ↑↑μ s ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ S → ↑↑μ s = ↑↑ν s
t : Set α
ht : t ∈ T
s : Set α
hs : s ∈ S
H : s ∩ t = ∅
⊢ ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
[PROOFSTEP]
simp only [H, measure_empty]
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
S T : Set (Set α)
h_gen : m0 = generateFrom S
h_inter : IsPiSystem S
h_sub : T ⊆ S
hc : Set.Countable T
hU : ⋃₀ T = univ
htop : ∀ (s : Set α), s ∈ T → ↑↑μ s ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ S → ↑↑μ s = ↑↑ν s
t : Set α
ht : t ∈ T
s : Set α
hs : s ∈ S
H : Set.Nonempty (s ∩ t)
⊢ ↑↑μ (s ∩ t) = ↑↑ν (s ∩ t)
[PROOFSTEP]
exact h_eq _ (h_inter _ hs _ (h_sub ht) H)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
C : Set (Set α)
B : ℕ → Set α
hA : m0 = generateFrom C
hC : IsPiSystem C
h1B : ⋃ (i : ℕ), B i = univ
h2B : ∀ (i : ℕ), B i ∈ C
hμB : ∀ (i : ℕ), ↑↑μ (B i) ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
⊢ μ = ν
[PROOFSTEP]
refine' ext_of_generateFrom_of_cover_subset hA hC _ (countable_range B) h1B _ h_eq
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
C : Set (Set α)
B : ℕ → Set α
hA : m0 = generateFrom C
hC : IsPiSystem C
h1B : ⋃ (i : ℕ), B i = univ
h2B : ∀ (i : ℕ), B i ∈ C
hμB : ∀ (i : ℕ), ↑↑μ (B i) ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
⊢ range B ⊆ C
[PROOFSTEP]
rintro _ ⟨i, rfl⟩
[GOAL]
case refine'_1.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
C : Set (Set α)
B : ℕ → Set α
hA : m0 = generateFrom C
hC : IsPiSystem C
h1B : ⋃ (i : ℕ), B i = univ
h2B : ∀ (i : ℕ), B i ∈ C
hμB : ∀ (i : ℕ), ↑↑μ (B i) ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
i : ℕ
⊢ B i ∈ C
[PROOFSTEP]
apply h2B
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
C : Set (Set α)
B : ℕ → Set α
hA : m0 = generateFrom C
hC : IsPiSystem C
h1B : ⋃ (i : ℕ), B i = univ
h2B : ∀ (i : ℕ), B i ∈ C
hμB : ∀ (i : ℕ), ↑↑μ (B i) ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
⊢ ∀ (s : Set α), s ∈ range B → ↑↑μ s ≠ ⊤
[PROOFSTEP]
rintro _ ⟨i, rfl⟩
[GOAL]
case refine'_2.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
C : Set (Set α)
B : ℕ → Set α
hA : m0 = generateFrom C
hC : IsPiSystem C
h1B : ⋃ (i : ℕ), B i = univ
h2B : ∀ (i : ℕ), B i ∈ C
hμB : ∀ (i : ℕ), ↑↑μ (B i) ≠ ⊤
h_eq : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
i : ℕ
⊢ ↑↑μ (B i) ≠ ⊤
[PROOFSTEP]
apply hμB
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : ι → Measure α
i : ι
s : Set α
hs : MeasurableSet s
⊢ ↑↑(μ i) s ≤ ↑↑(sum μ) s
[PROOFSTEP]
simpa only [sum_apply μ hs] using ENNReal.le_tsum i
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
μ : ι → Measure α
s : Set α
⊢ ↑↑(sum μ) s = 0 ↔ ∀ (i : ι), ↑↑(μ i) s = 0
[PROOFSTEP]
refine' ⟨fun h i => nonpos_iff_eq_zero.1 <| h ▸ le_iff'.1 (le_sum μ i) _, fun h => nonpos_iff_eq_zero.1 _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
μ : ι → Measure α
s : Set α
h : ∀ (i : ι), ↑↑(μ i) s = 0
⊢ ↑↑(sum μ) s ≤ 0
[PROOFSTEP]
rcases exists_measurable_superset_forall_eq μ s with ⟨t, hst, htm, ht⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
μ : ι → Measure α
s : Set α
h : ∀ (i : ι), ↑↑(μ i) s = 0
t : Set α
hst : s ⊆ t
htm : MeasurableSet t
ht : ∀ (i : ι), ↑↑(μ i) t = ↑↑(μ i) s
⊢ ↑↑(sum μ) s ≤ 0
[PROOFSTEP]
calc
  sum μ s ≤ sum μ t := measure_mono hst
  _ = 0 := by simp [*]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
μ : ι → Measure α
s : Set α
h : ∀ (i : ι), ↑↑(μ i) s = 0
t : Set α
hst : s ⊆ t
htm : MeasurableSet t
ht : ∀ (i : ι), ↑↑(μ i) t = ↑↑(μ i) s
⊢ ↑↑(sum μ) t = 0
[PROOFSTEP]
simp [*]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : ι → Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sum μ) s = 0 ↔ ∀ (i : ι), ↑↑(μ i) s = 0
[PROOFSTEP]
simp [hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι' : Type u_8
μ : ι → ι' → Measure α
⊢ (sum fun n => sum (μ n)) = sum fun m => sum fun n => μ n m
[PROOFSTEP]
ext1 s hs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
ι' : Type u_8
μ : ι → ι' → Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sum fun n => sum (μ n)) s = ↑↑(sum fun m => sum fun n => μ n m) s
[PROOFSTEP]
simp_rw [sum_apply _ hs]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
ι' : Type u_8
μ : ι → ι' → Measure α
s : Set α
hs : MeasurableSet s
⊢ ∑' (i : ι) (i_1 : ι'), ↑↑(μ i i_1) s = ∑' (i : ι') (i_1 : ι), ↑↑(μ i_1 i) s
[PROOFSTEP]
rw [ENNReal.tsum_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : Fintype ι
μ : ι → Measure α
⊢ sum μ = ∑ i : ι, μ i
[PROOFSTEP]
ext1 s hs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Fintype ι
μ : ι → Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sum μ) s = ↑↑(∑ i : ι, μ i) s
[PROOFSTEP]
simp only [sum_apply, finset_sum_apply, hs, tsum_fintype]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
s : Finset ι
μ : ι → Measure α
⊢ (sum fun i => μ ↑i) = ∑ i in s, μ i
[PROOFSTEP]
rw [sum_fintype, Finset.sum_coe_sort s μ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f : Bool → Measure α
⊢ sum f = f true + f false
[PROOFSTEP]
rw [sum_fintype, Fintype.sum_bool]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
μ : ι → Measure α
s : Set α
hs : MeasurableSet s
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict (sum μ) s) t = ↑↑(sum fun i => restrict (μ i) s) t
[PROOFSTEP]
simp only [sum_apply, restrict_apply, ht, ht.inter hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsEmpty ι
μ : ι → Measure α
⊢ sum μ = 0
[PROOFSTEP]
rw [← measure_univ_eq_zero, sum_apply _ MeasurableSet.univ, tsum_empty]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
s : Set ι
μ : ι → Measure α
⊢ ((sum fun i => μ ↑i) + sum fun i => μ ↑i) = sum μ
[PROOFSTEP]
ext1 t ht
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : Set ι
μ : ι → Measure α
t : Set α
ht : MeasurableSet t
⊢ ↑↑((sum fun i => μ ↑i) + sum fun i => μ ↑i) t = ↑↑(sum μ) t
[PROOFSTEP]
simp only [add_apply, sum_apply _ ht]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : Set ι
μ : ι → Measure α
t : Set α
ht : MeasurableSet t
⊢ ∑' (i : ↑s), ↑↑(μ ↑i) t + ∑' (i : ↑sᶜ), ↑↑(μ ↑i) t = ∑' (i : ι), ↑↑(μ i) t
[PROOFSTEP]
exact tsum_add_tsum_compl (f := fun i => μ i t) ENNReal.summable ENNReal.summable
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : ℕ → Measure α
⊢ sum μ + sum ν = sum fun n => μ n + ν n
[PROOFSTEP]
ext1 s hs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ ν : ℕ → Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sum μ + sum ν) s = ↑↑(sum fun n => μ n + ν n) s
[PROOFSTEP]
simp only [add_apply, sum_apply _ hs, Pi.add_apply, coe_add, tsum_add ENNReal.summable ENNReal.summable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
hm : ∀ (i : ι), NullMeasurableSet (s i)
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t = ↑↑(sum fun i => restrict μ (s i)) t
[PROOFSTEP]
simp only [sum_apply _ ht, restrict_iUnion_apply_ae hd hm ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
⊢ restrict μ (⋃ (i : ι), s i) ≤ sum fun i => restrict μ (s i)
[PROOFSTEP]
intro t ht
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t ≤ ↑↑(sum fun i => restrict μ (s i)) t
[PROOFSTEP]
suffices μ (⋃ i, t ∩ s i) ≤ ∑' i, μ (t ∩ s i) by simpa [ht, inter_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
t : Set α
ht : MeasurableSet t
this : ↑↑μ (⋃ (i : ι), t ∩ s i) ≤ ∑' (i : ι), ↑↑μ (t ∩ s i)
⊢ ↑↑(restrict μ (⋃ (i : ι), s i)) t ≤ ↑↑(sum fun i => restrict μ (s i)) t
[PROOFSTEP]
simpa [ht, inter_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
t : Set α
ht : MeasurableSet t
⊢ ↑↑μ (⋃ (i : ι), t ∩ s i) ≤ ∑' (i : ι), ↑↑μ (t ∩ s i)
[PROOFSTEP]
apply measure_iUnion_le
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑ν s = 0 → ↑↑μ s = 0
⊢ μ ≪ ν
[PROOFSTEP]
intro s hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
h : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑ν s = 0 → ↑↑μ s = 0
s : Set α
hs : ↑↑ν s = 0
⊢ ↑↑μ s = 0
[PROOFSTEP]
rcases exists_measurable_superset_of_null hs with ⟨t, h1t, h2t, h3t⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
h : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑ν s = 0 → ↑↑μ s = 0
s : Set α
hs : ↑↑ν s = 0
t : Set α
h1t : s ⊆ t
h2t : MeasurableSet t
h3t : ↑↑ν t = 0
⊢ ↑↑μ s = 0
[PROOFSTEP]
exact measure_mono_null h1t (h h2t h3t)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
h : μ ≪ ν
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
⊢ ↑↑(map f ν) s = 0 → ↑↑(map f μ) s = 0
[PROOFSTEP]
simpa [hf, hs] using @h _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝² : Monoid R
inst✝¹ : DistribMulAction R ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
h : μ ≪ ν
c : R
s : Set α
hνs : ↑↑ν s = 0
⊢ ↑↑(c • μ) s = 0
[PROOFSTEP]
simp only [h hνs, smul_eq_mul, smul_apply, smul_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
h : ae μ ≤ ae ν
s : Set α
⊢ ↑↑ν s = 0 → ↑↑μ s = 0
[PROOFSTEP]
rw [measure_zero_iff_ae_nmem, measure_zero_iff_ae_nmem]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
h : ae μ ≤ ae ν
s : Set α
⊢ (∀ᵐ (a : α) ∂ν, ¬a ∈ s) → ∀ᵐ (a : α) ∂μ, ¬a ∈ s
[PROOFSTEP]
exact fun hs => h hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
g : β → γ
f : α → β
hg : QuasiMeasurePreserving g
hf : QuasiMeasurePreserving f
⊢ map (g ∘ f) μa ≪ μc
[PROOFSTEP]
rw [← map_map hg.1 hf.1]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
g : β → γ
f : α → β
hg : QuasiMeasurePreserving g
hf : QuasiMeasurePreserving f
⊢ map g (map f μa) ≪ μc
[PROOFSTEP]
exact (hf.2.map hg.1).trans hg.2
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
k : ℕ
hs : f ⁻¹' s =ᵐ[μ] s
⊢ f^[k] ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
induction' k with k ih
[GOAL]
case zero
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ f^[Nat.zero] ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rfl
[GOAL]
case succ
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
k : ℕ
ih : f^[k] ⁻¹' s =ᵐ[μ] s
⊢ f^[Nat.succ k] ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rw [iterate_succ, preimage_comp]
[GOAL]
case succ
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
k : ℕ
ih : f^[k] ⁻¹' s =ᵐ[μ] s
⊢ f ⁻¹' (f^[k] ⁻¹' s) =ᵐ[μ] s
[PROOFSTEP]
exact EventuallyEq.trans (hf.preimage_ae_eq ih) hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
k : ℤ
hs : ↑e '' s =ᵐ[μ] s
⊢ ↑(e ^ k) '' s =ᵐ[μ] s
[PROOFSTEP]
rw [Equiv.image_eq_preimage]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
k : ℤ
hs : ↑e '' s =ᵐ[μ] s
⊢ ↑(e ^ k).symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
obtain ⟨k, rfl | rfl⟩ := k.eq_nat_or_neg
[GOAL]
case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ ↑(e ^ ↑k).symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
replace hs : (⇑e⁻¹) ⁻¹' s =ᵐ[μ] s
[GOAL]
case hs
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ ↑e⁻¹ ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rwa [Equiv.image_eq_preimage] at hs 
[GOAL]
case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
k : ℕ
hs : ↑e⁻¹ ⁻¹' s =ᵐ[μ] s
⊢ ↑(e ^ ↑k).symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
replace he' : (⇑e⁻¹)^[k] ⁻¹' s =ᵐ[μ] s := he'.preimage_iterate_ae_eq k hs
[GOAL]
case intro.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
k : ℕ
hs : ↑e⁻¹ ⁻¹' s =ᵐ[μ] s
he' : (↑e⁻¹)^[k] ⁻¹' s =ᵐ[μ] s
⊢ ↑(e ^ ↑k).symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rwa [Equiv.Perm.iterate_eq_pow e⁻¹ k, inv_pow e k] at he' 
[GOAL]
case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ ↑(e ^ (-↑k)).symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rw [zpow_neg, zpow_ofNat]
[GOAL]
case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ ↑(e ^ k)⁻¹.symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
replace hs : e ⁻¹' s =ᵐ[μ] s
[GOAL]
case hs
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ ↑e ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
convert he.preimage_ae_eq hs.symm
[GOAL]
case h.e'_5
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
hs : ↑e '' s =ᵐ[μ] s
k : ℕ
⊢ s = ↑e ⁻¹' (↑e '' s)
[PROOFSTEP]
rw [Equiv.preimage_image]
[GOAL]
case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he : QuasiMeasurePreserving ↑e
he' : QuasiMeasurePreserving ↑e.symm
k : ℕ
hs : ↑e ⁻¹' s =ᵐ[μ] s
⊢ ↑(e ^ k)⁻¹.symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
replace he : (⇑e)^[k] ⁻¹' s =ᵐ[μ] s := he.preimage_iterate_ae_eq k hs
[GOAL]
case intro.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f : α → β
s : Set α
e : α ≃ α
he' : QuasiMeasurePreserving ↑e.symm
k : ℕ
hs : ↑e ⁻¹' s =ᵐ[μ] s
he : (↑e)^[k] ⁻¹' s =ᵐ[μ] s
⊢ ↑(e ^ k)⁻¹.symm ⁻¹' s =ᵐ[μ] s
[PROOFSTEP]
rwa [Equiv.Perm.iterate_eq_pow e k] at he 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ ∀ (n : ℕ), (preimage f)^[n] s =ᵐ[μ] s
[PROOFSTEP]
intro n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
n : ℕ
⊢ (preimage f)^[n] s =ᵐ[μ] s
[PROOFSTEP]
induction' n with n ih
[GOAL]
case zero
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ (preimage f)^[Nat.zero] s =ᵐ[μ] s
[PROOFSTEP]
rfl
[GOAL]
case succ
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
n : ℕ
ih : (preimage f)^[n] s =ᵐ[μ] s
⊢ (preimage f)^[Nat.succ n] s =ᵐ[μ] s
[PROOFSTEP]
simpa only [iterate_succ', comp_apply] using ae_eq_trans (hf.ae_eq ih) hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ liminf (fun n => (preimage f)^[n] s) atTop =ᵐ[μ] s
[PROOFSTEP]
rw [← ae_eq_set_compl_compl, @Filter.liminf_compl (Set α)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ limsup (compl ∘ fun n => (preimage f)^[n] s) atTop =ᵐ[μ] sᶜ
[PROOFSTEP]
rw [← ae_eq_set_compl_compl, ← preimage_compl] at hs 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' sᶜ =ᵐ[μ] sᶜ
⊢ limsup (compl ∘ fun n => (preimage f)^[n] s) atTop =ᵐ[μ] sᶜ
[PROOFSTEP]
convert hf.limsup_preimage_iterate_ae_eq hs
[GOAL]
case h.e'_4.h.e'_4.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' sᶜ =ᵐ[μ] sᶜ
x✝ : ℕ
⊢ (compl ∘ fun n => (preimage f)^[n] s) x✝ = (preimage f)^[x✝] sᶜ
[PROOFSTEP]
ext1 n
[GOAL]
case h.e'_4.h.e'_4.h.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' sᶜ =ᵐ[μ] sᶜ
x✝ : ℕ
n : α
⊢ n ∈ (compl ∘ fun n => (preimage f)^[n] s) x✝ ↔ n ∈ (preimage f)^[x✝] sᶜ
[PROOFSTEP]
simp only [← Set.preimage_iterate_eq, comp_apply, preimage_compl]
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t✝ : Set α✝
μa μa' : Measure α✝
μb μb' : Measure β
μc : Measure γ
f : α✝ → β
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
s t : Set α
μ : Measure α
g : G
h_qmp : QuasiMeasurePreserving ((fun x x_1 => x • x_1) g⁻¹)
h_ae_eq : s =ᵐ[μ] t
⊢ g • s =ᵐ[μ] g • t
[PROOFSTEP]
simpa only [← preimage_smul_inv] using h_qmp.ae_eq h_ae_eq
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
⊢ Pairwise (AEDisjoint μ on fun g => g • s)
[PROOFSTEP]
intro g₁ g₂ hg
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
hg : g₁ ≠ g₂
⊢ (AEDisjoint μ on fun g => g • s) g₁ g₂
[PROOFSTEP]
let g := g₂⁻¹ * g₁
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
hg : g₁ ≠ g₂
g : G := g₂⁻¹ * g₁
⊢ (AEDisjoint μ on fun g => g • s) g₁ g₂
[PROOFSTEP]
replace hg : g ≠ 1
[GOAL]
case hg
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
hg : g₁ ≠ g₂
g : G := g₂⁻¹ * g₁
⊢ g ≠ 1
[PROOFSTEP]
rw [Ne.def, inv_mul_eq_one]
[GOAL]
case hg
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
hg : g₁ ≠ g₂
g : G := g₂⁻¹ * g₁
⊢ ¬g₂ = g₁
[PROOFSTEP]
exact hg.symm
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
g : G := g₂⁻¹ * g₁
hg : g ≠ 1
⊢ (AEDisjoint μ on fun g => g • s) g₁ g₂
[PROOFSTEP]
have : (· • ·) g₂⁻¹ ⁻¹' (g • s ∩ s) = g₁ • s ∩ g₂ • s := by
  rw [preimage_eq_iff_eq_image (MulAction.bijective g₂⁻¹), image_smul, smul_set_inter, smul_smul, smul_smul,
    inv_mul_self, one_smul]
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
g : G := g₂⁻¹ * g₁
hg : g ≠ 1
⊢ (fun x x_1 => x • x_1) g₂⁻¹ ⁻¹' (g • s ∩ s) = g₁ • s ∩ g₂ • s
[PROOFSTEP]
rw [preimage_eq_iff_eq_image (MulAction.bijective g₂⁻¹), image_smul, smul_set_inter, smul_smul, smul_smul, inv_mul_self,
  one_smul]
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
g : G := g₂⁻¹ * g₁
hg : g ≠ 1
this : (fun x x_1 => x • x_1) g₂⁻¹ ⁻¹' (g • s ∩ s) = g₁ • s ∩ g₂ • s
⊢ (AEDisjoint μ on fun g => g • s) g₁ g₂
[PROOFSTEP]
change μ (g₁ • s ∩ g₂ • s) = 0
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
G : Type u_8
α : Type u_9
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
g₁ g₂ : G
g : G := g₂⁻¹ * g₁
hg : g ≠ 1
this : (fun x x_1 => x • x_1) g₂⁻¹ ⁻¹' (g • s ∩ s) = g₁ • s ∩ g₂ • s
⊢ ↑↑μ (g₁ • s ∩ g₂ • s) = 0
[PROOFSTEP]
exact this ▸ (h_qmp g₂⁻¹).preimage_null (h_ae_disjoint g hg)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
μ : Measure α
⊢ univ ∈ {s | ↑↑μ sᶜ < ⊤}
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hs : s ∈ {s | ↑↑μ sᶜ < ⊤}
ht : t ∈ {s | ↑↑μ sᶜ < ⊤}
⊢ s ∩ t ∈ {s | ↑↑μ sᶜ < ⊤}
[PROOFSTEP]
simp only [compl_inter, mem_setOf_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hs : s ∈ {s | ↑↑μ sᶜ < ⊤}
ht : t ∈ {s | ↑↑μ sᶜ < ⊤}
⊢ ↑↑μ (sᶜ ∪ tᶜ) < ⊤
[PROOFSTEP]
calc
  μ (sᶜ ∪ tᶜ) ≤ μ sᶜ + μ tᶜ := measure_union_le _ _
  _ < ∞ := ENNReal.add_lt_top.2 ⟨hs, ht⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ sᶜ ∈ cofinite μ ↔ ↑↑μ s < ⊤
[PROOFSTEP]
rw [mem_cofinite, compl_compl]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ae μ = ⊥ ↔ μ = 0
[PROOFSTEP]
rw [← empty_mem_iff_bot, mem_ae_iff, compl_empty, measure_univ_eq_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f : α → β
hf : AEMeasurable f
s : Set β
hs : MeasurableSet s
⊢ s ∈ ae (Measure.map f μ) ↔ f ⁻¹' s ∈ ae μ
[PROOFSTEP]
simp only [mem_ae_iff, map_apply_of_aemeasurable hf hs.compl, preimage_compl]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
⊢ ∀ᵐ (x : β) ∂Measure.map f μ, x ∈ range f
[PROOFSTEP]
by_cases h : AEMeasurable f μ
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
h : AEMeasurable f
⊢ ∀ᵐ (x : β) ∂Measure.map f μ, x ∈ range f
[PROOFSTEP]
change range f ∈ (μ.map f).ae
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
h : AEMeasurable f
⊢ range f ∈ ae (Measure.map f μ)
[PROOFSTEP]
rw [mem_ae_map_iff h hf]
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
h : AEMeasurable f
⊢ f ⁻¹' range f ∈ ae μ
[PROOFSTEP]
apply eventually_of_forall
[GOAL]
case pos.hp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
h : AEMeasurable f
⊢ ∀ (x : α), f x ∈ range f
[PROOFSTEP]
exact mem_range_self
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
f : α → β
hf : MeasurableSet (range f)
μ : Measure α
h : ¬AEMeasurable f
⊢ ∀ᵐ (x : β) ∂Measure.map f μ, x ∈ range f
[PROOFSTEP]
simp [map_of_not_aemeasurable h]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
⊢ ae (Measure.restrict μ (s ∪ t)) = ae (Measure.restrict μ s) ⊔ ae (Measure.restrict μ t)
[PROOFSTEP]
simp [union_eq_iUnion, iSup_bool_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
⊢ ae (Measure.restrict μ (⋃ (i : ι) (_ : i ∈ t), s i)) = ⨆ (i : ι) (_ : i ∈ t), ae (Measure.restrict μ (s i))
[PROOFSTEP]
haveI := ht.to_subtype
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
this : Countable ↑t
⊢ ae (Measure.restrict μ (⋃ (i : ι) (_ : i ∈ t), s i)) = ⨆ (i : ι) (_ : i ∈ t), ae (Measure.restrict μ (s i))
[PROOFSTEP]
rw [biUnion_eq_iUnion, ae_restrict_iUnion_eq, ← iSup_subtype'']
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ (⋃ (i : ι), s i), p x) ↔ ∀ (i : ι), ∀ᵐ (x : α) ∂Measure.restrict μ (s i), p x
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t : Set α
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ (s ∪ t), p x) ↔
    (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ∧ ∀ᵐ (x : α) ∂Measure.restrict μ t, p x
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ (⋃ (i : ι) (_ : i ∈ t), s i), p x) ↔
    ∀ (i : ι), i ∈ t → ∀ᵐ (x : α) ∂Measure.restrict μ (s i), p x
[PROOFSTEP]
simp_rw [Filter.Eventually, ae_restrict_biUnion_eq s ht, mem_iSup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : ι → Set α
t : Finset ι
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ (⋃ (i : ι) (_ : i ∈ t), s i), p x) ↔
    ∀ (i : ι), i ∈ t → ∀ᵐ (x : α) ∂Measure.restrict μ (s i), p x
[PROOFSTEP]
simp_rw [Filter.Eventually, ae_restrict_biUnion_finset_eq s, mem_iSup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
f g : α → δ
⊢ f =ᶠ[ae (Measure.restrict μ (⋃ (i : ι), s i))] g ↔ ∀ (i : ι), f =ᶠ[ae (Measure.restrict μ (s i))] g
[PROOFSTEP]
simp_rw [EventuallyEq, ae_restrict_iUnion_eq, eventually_iSup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
f g : α → δ
⊢ f =ᶠ[ae (Measure.restrict μ (⋃ (i : ι) (_ : i ∈ t), s i))] g ↔
    ∀ (i : ι), i ∈ t → f =ᶠ[ae (Measure.restrict μ (s i))] g
[PROOFSTEP]
simp_rw [ae_restrict_biUnion_eq s ht, EventuallyEq, eventually_iSup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : LinearOrder α
a b : α
⊢ ae (Measure.restrict μ (Ι a b)) = ae (Measure.restrict μ (Ioc a b)) ⊔ ae (Measure.restrict μ (Ioc b a))
[PROOFSTEP]
simp only [uIoc_eq_union, ae_restrict_union_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : LinearOrder α
a b : α
P : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ (Ι a b), P x) ↔
    (∀ᵐ (x : α) ∂Measure.restrict μ (Ioc a b), P x) ∧ ∀ᵐ (x : α) ∂Measure.restrict μ (Ioc b a), P x
[PROOFSTEP]
rw [ae_restrict_uIoc_eq, eventually_sup]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ s → p x
[PROOFSTEP]
simp only [ae_iff, ← compl_setOf, Measure.restrict_apply hp.compl]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ ↑↑μ ({x | p x}ᶜ ∩ s) = 0 ↔ ↑↑μ {x | x ∈ s → p x}ᶜ = 0
[PROOFSTEP]
rw [iff_iff_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
⊢ (↑↑μ ({x | p x}ᶜ ∩ s) = 0) = (↑↑μ {x | x ∈ s → p x}ᶜ = 0)
[PROOFSTEP]
congr with x
[GOAL]
case e_a.e_a.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hp : MeasurableSet {x | p x}
x : α
⊢ x ∈ {x | p x}ᶜ ∩ s ↔ x ∈ {x | x ∈ s → p x}ᶜ
[PROOFSTEP]
simp [and_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
p : α → Prop
h : ∀ᵐ (x : α) ∂Measure.restrict μ s, p x
⊢ ∀ᵐ (x : α) ∂μ, x ∈ s → p x
[PROOFSTEP]
simp only [ae_iff] at h ⊢
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
p : α → Prop
h : ↑↑(Measure.restrict μ s) {a | ¬p a} = 0
⊢ ↑↑μ {a | ¬(a ∈ s → p a)} = 0
[PROOFSTEP]
simpa [setOf_and, inter_comm] using measure_inter_eq_zero_of_restrict h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : MeasurableSet s
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ s → p x
[PROOFSTEP]
simp only [ae_iff, ← compl_setOf, restrict_apply_eq_zero' hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : MeasurableSet s
⊢ ↑↑μ ({x | p x}ᶜ ∩ s) = 0 ↔ ↑↑μ {x | x ∈ s → p x}ᶜ = 0
[PROOFSTEP]
rw [iff_iff_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : MeasurableSet s
⊢ (↑↑μ ({x | p x}ᶜ ∩ s) = 0) = (↑↑μ {x | x ∈ s → p x}ᶜ = 0)
[PROOFSTEP]
congr with x
[GOAL]
case e_a.e_a.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : MeasurableSet s
x : α
⊢ x ∈ {x | p x}ᶜ ∩ s ↔ x ∈ {x | x ∈ s → p x}ᶜ
[PROOFSTEP]
simp [and_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ f =ᶠ[ae (Measure.restrict μ s)] g
[PROOFSTEP]
refine' hfg.filter_mono _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ ae (Measure.restrict μ s) ≤ ae μ
[PROOFSTEP]
rw [Measure.ae_le_iff_absolutelyContinuous]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ Measure.restrict μ s ≪ μ
[PROOFSTEP]
exact Measure.absolutelyContinuous_of_le Measure.restrict_le_self
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : NullMeasurableSet s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, x ∈ s
[PROOFSTEP]
rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, ht_eq⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
ht_eq : t =ᶠ[ae μ] s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, x ∈ s
[PROOFSTEP]
rw [← restrict_congr_set ht_eq]
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
ht_eq : t =ᶠ[ae μ] s
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ t, x ∈ s
[PROOFSTEP]
exact (ae_restrict_mem htm).mono hts
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ s → p x
[PROOFSTEP]
refine' ⟨fun h => ae_imp_of_ae_restrict h, fun h => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
hs : NullMeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → p x
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, p x
[PROOFSTEP]
filter_upwards [ae_restrict_mem₀ hs, ae_restrict_of_ae h] with x hx h'x using h'x hx
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ t : Set α
p : α → Prop
ht : ∀ᵐ (x : α) ∂Measure.restrict μ t, p x
htc : ∀ᵐ (x : α) ∂Measure.restrict μ tᶜ, p x
⊢ ↑↑μ {x | ¬p x} = ↑↑μ ({x | ¬p x} ∩ t ∪ {x | ¬p x} ∩ tᶜ)
[PROOFSTEP]
rw [← inter_union_distrib_left, union_compl_self, inter_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ t : Set α
p : α → Prop
ht : ∀ᵐ (x : α) ∂Measure.restrict μ t, p x
htc : ∀ᵐ (x : α) ∂Measure.restrict μ tᶜ, p x
⊢ ↑↑(Measure.restrict μ t) {x | ¬p x} + ↑↑(Measure.restrict μ tᶜ) {x | ¬p x} = 0
[PROOFSTEP]
rw [ae_iff.1 ht, ae_iff.1 htc, zero_add]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β✝
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_8
s : Set α
t : Set β
f : α → β
hs : MeasurableSet s
⊢ t ∈ Filter.map f (ae (Measure.restrict μ s)) ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
rw [mem_map, mem_ae_iff, Measure.restrict_apply' hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : α → Prop
inst✝² : Monoid R
inst✝¹ : DistribMulAction R ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
h : ∀ᵐ (x : α) ∂μ, p x
c : R
⊢ ↑↑(c • μ) {a | ¬p a} = 0
[PROOFSTEP]
rw [smul_apply, ae_iff.1 h, smul_zero]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : AddGroup β
f g : α → β
⊢ f - g =ᶠ[ae μ] 0 ↔ f =ᶠ[ae μ] g
[PROOFSTEP]
refine' ⟨fun h => h.mono fun x hx => _, fun h => h.mono fun x hx => _⟩
[GOAL]
case refine'_1
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : AddGroup β
f g : α → β
h : f - g =ᶠ[ae μ] 0
x : α
hx : (f - g) x = OfNat.ofNat 0 x
⊢ f x = g x
[PROOFSTEP]
rwa [Pi.sub_apply, Pi.zero_apply, sub_eq_zero] at hx 
[GOAL]
case refine'_2
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β✝
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝ : AddGroup β
f g : α → β
h : f =ᶠ[ae μ] g
x : α
hx : f x = g x
⊢ (f - g) x = OfNat.ofNat 0 x
[PROOFSTEP]
rwa [Pi.sub_apply, Pi.zero_apply, sub_eq_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ ae (Measure.restrict μ s) = ae μ ⊓ 𝓟 s
[PROOFSTEP]
ext t
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : MeasurableSet s
t : Set α
⊢ t ∈ ae (Measure.restrict μ s) ↔ t ∈ ae μ ⊓ 𝓟 s
[PROOFSTEP]
simp only [mem_inf_principal, mem_ae_iff, restrict_apply_eq_zero' hs, compl_setOf, not_imp, fun a =>
  and_comm (a := a ∈ s) (b := ¬a ∈ t)]
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ (tᶜ ∩ s) = 0 ↔ ↑↑μ {a | ¬a ∈ t ∧ a ∈ s} = 0
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ s ∈ ae (Measure.restrict μ s)
[PROOFSTEP]
simp only [ae_restrict_eq hs, exists_prop, mem_principal, mem_inf_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ ∃ t₁, t₁ ∈ ae μ ∧ ∃ t₂, s ⊆ t₂ ∧ s = t₁ ∩ t₂
[PROOFSTEP]
exact ⟨_, univ_mem, s, Subset.rfl, (univ_inter s).symm⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
s t : α → Prop
hst : s =ᶠ[ae μ] t
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) → ∀ᵐ (x : α) ∂Measure.restrict μ t, p x
[PROOFSTEP]
simp [Measure.restrict_congr_set hst]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
p : ℕ → α → Prop
hp : ∑' (i : ℕ), ↑↑μ {x | p i x} ≠ ⊤
⊢ ↑↑μ {x | ∃ᶠ (n : ℕ) in atTop, p n x} = 0
[PROOFSTEP]
simpa only [limsup_eq_iInf_iSup_of_nat, frequently_atTop, ← bex_def, setOf_forall, setOf_exists] using
  measure_limsup_eq_zero hp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Preorder α
s : Set α
hsc : Set.Countable s
hst : ∀ (x : α), ∃ y, y ∈ s ∧ x ≤ y
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
⊢ ⨆ (x : α) (_ : x ∈ s), ↑↑μ (Iic x) = ↑↑μ univ
[PROOFSTEP]
rw [← measure_biUnion_eq_iSup hsc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Preorder α
s : Set α
hsc : Set.Countable s
hst : ∀ (x : α), ∃ y, y ∈ s ∧ x ≤ y
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
⊢ ↑↑μ (⋃ (i : α) (_ : i ∈ s), Iic i) = ↑↑μ univ
[PROOFSTEP]
congr
[GOAL]
case e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Preorder α
s : Set α
hsc : Set.Countable s
hst : ∀ (x : α), ∃ y, y ∈ s ∧ x ≤ y
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
⊢ ⋃ (i : α) (_ : i ∈ s), Iic i = univ
[PROOFSTEP]
simp only [← bex_def] at hst 
[GOAL]
case e_a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Preorder α
s : Set α
hsc : Set.Countable s
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
hst : ∀ (x : α), ∃ x_1 x_2, x ≤ x_1
⊢ ⋃ (i : α) (_ : i ∈ s), Iic i = univ
[PROOFSTEP]
exact iUnion₂_eq_univ_iff.2 hst
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Preorder α
s : Set α
hsc : Set.Countable s
hst : ∀ (x : α), ∃ y, y ∈ s ∧ x ≤ y
hdir : DirectedOn (fun x x_1 => x ≤ x_1) s
⊢ DirectedOn ((fun x x_1 => x ⊆ x_1) on fun x => Iic x) s
[PROOFSTEP]
exact directedOn_iff_directed.2 (hdir.directed_val.mono_comp _ fun x y => Iic_subset_Iic.2)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))
[PROOFSTEP]
haveI : Nonempty α := ⟨a⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))
[PROOFSTEP]
have h_mono : Monotone fun x => μ (Ico a x) := fun i j hij => measure_mono (Ico_subset_Ico_right hij)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))
[PROOFSTEP]
convert tendsto_atTop_iSup h_mono
[GOAL]
case h.e'_5.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)
[PROOFSTEP]
obtain ⟨xs, hxs_mono, hxs_tendsto⟩ := exists_seq_monotone_tendsto_atTop_atTop α
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)
[PROOFSTEP]
have h_Ici : Ici a = ⋃ n, Ico a (xs n) := by
  ext1 x
  simp only [mem_Ici, mem_iUnion, mem_Ico, exists_and_left, iff_self_and]
  intro
  obtain ⟨y, hxy⟩ := NoMaxOrder.exists_gt x
  obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto y
  exact ⟨n, hxy.trans_le (hn n le_rfl)⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ Ici a = ⋃ (n : ℕ), Ico a (xs n)
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ x ∈ Ici a ↔ x ∈ ⋃ (n : ℕ), Ico a (xs n)
[PROOFSTEP]
simp only [mem_Ici, mem_iUnion, mem_Ico, exists_and_left, iff_self_and]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ a ≤ x → ∃ x_1, x < xs x_1
[PROOFSTEP]
intro
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
⊢ ∃ x_1, x < xs x_1
[PROOFSTEP]
obtain ⟨y, hxy⟩ := NoMaxOrder.exists_gt x
[GOAL]
case h.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
y : α
hxy : x < y
⊢ ∃ x_1, x < xs x_1
[PROOFSTEP]
obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto y
[GOAL]
case h.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
y : α
hxy : x < y
n : ℕ
hn : ∀ (a : ℕ), n ≤ a → y ≤ xs a
⊢ ∃ x_1, x < xs x_1
[PROOFSTEP]
exact ⟨n, hxy.trans_le (hn n le_rfl)⟩
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_Ici : Ici a = ⋃ (n : ℕ), Ico a (xs n)
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)
[PROOFSTEP]
rw [h_Ici, measure_iUnion_eq_iSup, iSup_eq_iSup_subseq_of_monotone h_mono hxs_tendsto]
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_Ici : Ici a = ⋃ (n : ℕ), Ico a (xs n)
⊢ Directed (fun x x_1 => x ⊆ x_1) fun n => Ico a (xs n)
[PROOFSTEP]
exact Monotone.directed_le fun i j hij => Ico_subset_Ico_right (hxs_mono hij)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
⊢ Tendsto (fun x => ↑↑μ (Ioc x a)) atBot (𝓝 (↑↑μ (Iic a)))
[PROOFSTEP]
haveI : Nonempty α := ⟨a⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
⊢ Tendsto (fun x => ↑↑μ (Ioc x a)) atBot (𝓝 (↑↑μ (Iic a)))
[PROOFSTEP]
have h_mono : Antitone fun x => μ (Ioc x a) := fun i j hij => measure_mono (Ioc_subset_Ioc_left hij)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
⊢ Tendsto (fun x => ↑↑μ (Ioc x a)) atBot (𝓝 (↑↑μ (Iic a)))
[PROOFSTEP]
convert tendsto_atBot_iSup h_mono
[GOAL]
case h.e'_5.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
⊢ ↑↑μ (Iic a) = ⨆ (i : α), ↑↑μ (Ioc i a)
[PROOFSTEP]
obtain ⟨xs, hxs_mono, hxs_tendsto⟩ := exists_seq_antitone_tendsto_atTop_atBot α
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
⊢ ↑↑μ (Iic a) = ⨆ (i : α), ↑↑μ (Ioc i a)
[PROOFSTEP]
have h_Iic : Iic a = ⋃ n, Ioc (xs n) a := by
  ext1 x
  simp only [mem_Iic, mem_iUnion, mem_Ioc, exists_and_right, iff_and_self]
  intro
  obtain ⟨y, hxy⟩ := NoMinOrder.exists_lt x
  obtain ⟨n, hn⟩ := tendsto_atTop_atBot.mp hxs_tendsto y
  exact ⟨n, (hn n le_rfl).trans_lt hxy⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
⊢ Iic a = ⋃ (n : ℕ), Ioc (xs n) a
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
x : α
⊢ x ∈ Iic a ↔ x ∈ ⋃ (n : ℕ), Ioc (xs n) a
[PROOFSTEP]
simp only [mem_Iic, mem_iUnion, mem_Ioc, exists_and_right, iff_and_self]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
x : α
⊢ x ≤ a → ∃ x_1, xs x_1 < x
[PROOFSTEP]
intro
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
x : α
a✝ : x ≤ a
⊢ ∃ x_1, xs x_1 < x
[PROOFSTEP]
obtain ⟨y, hxy⟩ := NoMinOrder.exists_lt x
[GOAL]
case h.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
x : α
a✝ : x ≤ a
y : α
hxy : y < x
⊢ ∃ x_1, xs x_1 < x
[PROOFSTEP]
obtain ⟨n, hn⟩ := tendsto_atTop_atBot.mp hxs_tendsto y
[GOAL]
case h.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
x : α
a✝ : x ≤ a
y : α
hxy : y < x
n : ℕ
hn : ∀ (a : ℕ), n ≤ a → xs a ≤ y
⊢ ∃ x_1, xs x_1 < x
[PROOFSTEP]
exact ⟨n, (hn n le_rfl).trans_lt hxy⟩
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
h_Iic : Iic a = ⋃ (n : ℕ), Ioc (xs n) a
⊢ ↑↑μ (Iic a) = ⨆ (i : α), ↑↑μ (Ioc i a)
[PROOFSTEP]
rw [h_Iic, measure_iUnion_eq_iSup, iSup_eq_iSup_subseq_of_antitone h_mono hxs_tendsto]
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : SemilatticeInf α
inst✝¹ : NoMinOrder α
inst✝ : IsCountablyGenerated atBot
μ : Measure α
a : α
this : Nonempty α
h_mono : Antitone fun x => ↑↑μ (Ioc x a)
xs : ℕ → α
hxs_mono : Antitone xs
hxs_tendsto : Tendsto xs atTop atBot
h_Iic : Iic a = ⋃ (n : ℕ), Ioc (xs n) a
⊢ Directed (fun x x_1 => x ⊆ x_1) fun n => Ioc (xs n) a
[PROOFSTEP]
exact Monotone.directed_le fun i j hij => Ioc_subset_Ioc_left (hxs_mono hij)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
cases isEmpty_or_nonempty α
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
have h1 : ∀ x : α, Iic x = ∅ := fun x => Subsingleton.elim _ _
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
have h2 : (univ : Set α) = ∅ := Subsingleton.elim _ _
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
h2 : univ = ∅
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
simp_rw [h1, h2]
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
h2 : univ = ∅
⊢ Tendsto (fun x => ↑↑μ ∅) atTop (𝓝 (↑↑μ ∅))
[PROOFSTEP]
exact tendsto_const_nhds
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
have h_mono : Monotone fun x => μ (Iic x) := fun i j hij => measure_mono (Iic_subset_Iic.mpr hij)
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))
[PROOFSTEP]
convert tendsto_atTop_iSup h_mono
[GOAL]
case h.e'_5.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)
[PROOFSTEP]
obtain ⟨xs, hxs_mono, hxs_tendsto⟩ := exists_seq_monotone_tendsto_atTop_atTop α
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)
[PROOFSTEP]
have h_univ : (univ : Set α) = ⋃ n, Iic (xs n) := by
  ext1 x
  simp only [mem_univ, mem_iUnion, mem_Iic, true_iff_iff]
  obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto x
  exact ⟨n, hn n le_rfl⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ univ = ⋃ (n : ℕ), Iic (xs n)
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ x ∈ univ ↔ x ∈ ⋃ (n : ℕ), Iic (xs n)
[PROOFSTEP]
simp only [mem_univ, mem_iUnion, mem_Iic, true_iff_iff]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ ∃ i, x ≤ xs i
[PROOFSTEP]
obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto x
[GOAL]
case h.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
n : ℕ
hn : ∀ (a : ℕ), n ≤ a → x ≤ xs a
⊢ ∃ i, x ≤ xs i
[PROOFSTEP]
exact ⟨n, hn n le_rfl⟩
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_univ : univ = ⋃ (n : ℕ), Iic (xs n)
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)
[PROOFSTEP]
rw [h_univ, measure_iUnion_eq_iSup, iSup_eq_iSup_subseq_of_monotone h_mono hxs_tendsto]
[GOAL]
case h.e'_5.h.e'_3.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_univ : univ = ⋃ (n : ℕ), Iic (xs n)
⊢ Directed (fun x x_1 => x ⊆ x_1) fun n => Iic (xs n)
[PROOFSTEP]
exact Monotone.directed_le fun i j hij => Iic_subset_Iic.mpr (hxs_mono hij)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : PartialOrder α
a b : α
ha : ↑↑μ {a} = 0
⊢ Iio a =ᶠ[ae μ] Iic a
[PROOFSTEP]
rw [← Iic_diff_right, diff_ae_eq_self, measure_mono_null (Set.inter_subset_right _ _) ha]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ¬IsFiniteMeasure μ ↔ ↑↑μ univ = ⊤
[PROOFSTEP]
refine' ⟨fun h => _, fun h => fun h' => h'.measure_univ_lt_top.ne h⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : ¬IsFiniteMeasure μ
⊢ ↑↑μ univ = ⊤
[PROOFSTEP]
by_contra h'
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : ¬IsFiniteMeasure μ
h' : ¬↑↑μ univ = ⊤
⊢ False
[PROOFSTEP]
exact h ⟨lt_top_iff_ne_top.mpr h'⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
hs : Fact (↑↑μ s < ⊤)
⊢ ↑↑(Measure.restrict μ s) univ < ⊤
[PROOFSTEP]
simpa using hs.elim
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
s : Set α
h : IsFiniteMeasure μ
⊢ ↑↑(Measure.restrict μ s) univ < ⊤
[PROOFSTEP]
simpa using measure_lt_top μ s
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hs : MeasurableSet s
ht : MeasurableSet t
ε : ℝ≥0∞
h : ↑↑μ s ≤ ↑↑μ t + ε
⊢ ↑↑μ tᶜ ≤ ↑↑μ sᶜ + ε
[PROOFSTEP]
rw [measure_compl ht (measure_ne_top μ _), measure_compl hs (measure_ne_top μ _), tsub_le_iff_right]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hs : MeasurableSet s
ht : MeasurableSet t
ε : ℝ≥0∞
h : ↑↑μ s ≤ ↑↑μ t + ε
⊢ ↑↑μ univ ≤ ↑↑μ univ - ↑↑μ s + ε + ↑↑μ t
[PROOFSTEP]
calc
  μ univ = μ univ - μ s + μ s := (tsub_add_cancel_of_le <| measure_mono s.subset_univ).symm
  _ ≤ μ univ - μ s + (μ t + ε) := (add_le_add_left h _)
  _ = _ := by rw [add_right_comm, add_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hs : MeasurableSet s
ht : MeasurableSet t
ε : ℝ≥0∞
h : ↑↑μ s ≤ ↑↑μ t + ε
⊢ ↑↑μ univ - ↑↑μ s + (↑↑μ t + ε) = ↑↑μ univ - ↑↑μ s + ε + ↑↑μ t
[PROOFSTEP]
rw [add_right_comm, add_assoc]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ↑↑0 univ < ⊤
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsEmpty α
⊢ IsFiniteMeasure μ
[PROOFSTEP]
rw [eq_zero_of_isEmpty μ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsEmpty α
⊢ IsFiniteMeasure 0
[PROOFSTEP]
infer_instance
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
⊢ ↑↑(μ + ν) univ < ⊤
[PROOFSTEP]
rw [Measure.coe_add, Pi.add_apply, ENNReal.add_lt_top]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
⊢ ↑↑μ univ < ⊤ ∧ ↑↑ν univ < ⊤
[PROOFSTEP]
exact ⟨measure_lt_top _ _, measure_lt_top _ _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ↑↑((↑↑μ univ)⁻¹ • μ) univ < ⊤
[PROOFSTEP]
rw [smul_apply, smul_eq_mul, ← ENNReal.div_eq_inv_mul]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
⊢ ↑↑μ univ / ↑↑μ univ < ⊤
[PROOFSTEP]
exact ENNReal.div_self_le_one.trans_lt ENNReal.one_lt_top
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R✝ : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
R : Type ?u.578721
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : IsFiniteMeasure μ
r : R
⊢ IsFiniteMeasure (r • μ)
[PROOFSTEP]
rw [← smul_one_smul ℝ≥0 r μ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R✝ : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
R : Type ?u.578721
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : IsFiniteMeasure μ
r : R
⊢ IsFiniteMeasure ((r • 1) • μ)
[PROOFSTEP]
infer_instance
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
⊢ IsFiniteMeasure (map f μ)
[PROOFSTEP]
by_cases hf : AEMeasurable f μ
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
hf : AEMeasurable f
⊢ IsFiniteMeasure (map f μ)
[PROOFSTEP]
constructor
[GOAL]
case pos.measure_univ_lt_top
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
hf : AEMeasurable f
⊢ ↑↑(map f μ) univ < ⊤
[PROOFSTEP]
rw [map_apply_of_aemeasurable hf MeasurableSet.univ]
[GOAL]
case pos.measure_univ_lt_top
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
hf : AEMeasurable f
⊢ ↑↑μ (f ⁻¹' univ) < ⊤
[PROOFSTEP]
exact measure_lt_top μ _
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
hf : ¬AEMeasurable f
⊢ IsFiniteMeasure (map f μ)
[PROOFSTEP]
rw [map_of_not_aemeasurable hf]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
f : α → β
hf : ¬AEMeasurable f
⊢ IsFiniteMeasure 0
[PROOFSTEP]
exact MeasureTheory.isFiniteMeasureZero
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
⊢ measureUnivNNReal μ = 0 ↔ μ = 0
[PROOFSTEP]
rw [← MeasureTheory.Measure.measure_univ_eq_zero, ← coe_measureUnivNNReal]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
⊢ measureUnivNNReal μ = 0 ↔ ↑(measureUnivNNReal μ) = 0
[PROOFSTEP]
norm_cast
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hμ : μ ≠ 0
⊢ 0 < measureUnivNNReal μ
[PROOFSTEP]
contrapose! hμ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hμ : measureUnivNNReal μ ≤ 0
⊢ μ = 0
[PROOFSTEP]
simpa [measureUnivNNReal_eq_zero, le_zero_iff] using hμ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hμ : IsFiniteMeasure μ
f : ℕ → Set α
hf₁ : ∀ (i : ℕ), MeasurableSet (f i)
hf₂ : Pairwise (Disjoint on f)
⊢ Summable fun x => ENNReal.toReal (↑↑μ (f x))
[PROOFSTEP]
apply ENNReal.summable_toReal
[GOAL]
case hsum
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hμ : IsFiniteMeasure μ
f : ℕ → Set α
hf₁ : ∀ (i : ℕ), MeasurableSet (f i)
hf₂ : Pairwise (Disjoint on f)
⊢ ∑' (x : ℕ), ↑↑μ (f x) ≠ ⊤
[PROOFSTEP]
rw [← MeasureTheory.measure_iUnion hf₂ hf₁]
[GOAL]
case hsum
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hμ : IsFiniteMeasure μ
f : ℕ → Set α
hf₁ : ∀ (i : ℕ), MeasurableSet (f i)
hf₂ : Pairwise (Disjoint on f)
⊢ ↑↑μ (⋃ (i : ℕ), f i) ≠ ⊤
[PROOFSTEP]
exact ne_of_lt (measure_lt_top _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hs : NullMeasurableSet s
⊢ s =ᶠ[ae μ] univ ↔ ↑↑μ s = ↑↑μ univ
[PROOFSTEP]
refine' ⟨measure_congr, fun h => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
hs : NullMeasurableSet s
h : ↑↑μ s = ↑↑μ univ
⊢ s =ᶠ[ae μ] univ
[PROOFSTEP]
obtain ⟨t, -, ht₁, ht₂⟩ := hs.exists_measurable_subset_ae_eq
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
inst✝ : IsFiniteMeasure μ
hs : NullMeasurableSet s
h : ↑↑μ s = ↑↑μ univ
t : Set α
ht₁ : MeasurableSet t
ht₂ : t =ᶠ[ae μ] s
⊢ s =ᶠ[ae μ] univ
[PROOFSTEP]
exact
  ht₂.symm.trans
    (ae_eq_of_subset_of_measure_ge (subset_univ t) (Eq.le ((measure_congr ht₂).trans h).symm) ht₁
      (measure_ne_top μ univ))
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsFiniteMeasure μ
p : α → Prop
hp : NullMeasurableSet {a | p a}
⊢ (∀ᵐ (a : α) ∂μ, p a) ↔ ↑↑μ {a | p a} = ↑↑μ univ
[PROOFSTEP]
rw [← ae_eq_univ_iff_measure_eq hp, eventuallyEq_univ, eventually_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
⊢ |ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t)| ≤ ENNReal.toReal (↑↑μ (s ∆ t))
[PROOFSTEP]
have hst : μ (s \ t) ≠ ∞ := (measure_lt_top_of_subset (diff_subset s t) hs').ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
⊢ |ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t)| ≤ ENNReal.toReal (↑↑μ (s ∆ t))
[PROOFSTEP]
have hts : μ (t \ s) ≠ ∞ := (measure_lt_top_of_subset (diff_subset t s) ht').ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
⊢ |ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t)| ≤ ENNReal.toReal (↑↑μ (s ∆ t))
[PROOFSTEP]
suffices : (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
this : ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) = ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))
⊢ |ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t)| ≤ ENNReal.toReal (↑↑μ (s ∆ t))
[PROOFSTEP]
rw [this, measure_symmDiff_eq hs ht, ENNReal.toReal_add hst hts]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
this : ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) = ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))
⊢ |ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))| ≤
    ENNReal.toReal (↑↑μ (s \ t)) + ENNReal.toReal (↑↑μ (t \ s))
[PROOFSTEP]
convert abs_sub (μ (s \ t)).toReal (μ (t \ s)).toReal
[GOAL]
case h.e'_4.h.e'_5
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
this : ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) = ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))
⊢ ENNReal.toReal (↑↑μ (s \ t)) = |ENNReal.toReal (↑↑μ (s \ t))|
[PROOFSTEP]
simp
[GOAL]
case h.e'_4.h.e'_6
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
this : ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) = ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))
⊢ ENNReal.toReal (↑↑μ (t \ s)) = |ENNReal.toReal (↑↑μ (t \ s))|
[PROOFSTEP]
simp
[GOAL]
case this
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
⊢ ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) = ENNReal.toReal (↑↑μ (s \ t)) - ENNReal.toReal (↑↑μ (t \ s))
[PROOFSTEP]
rw [measure_diff' s ht ht', measure_diff' t hs hs',
  ENNReal.toReal_sub_of_le measure_le_measure_union_right (measure_union_ne_top hs' ht'),
  ENNReal.toReal_sub_of_le measure_le_measure_union_right (measure_union_ne_top ht' hs'), union_comm t s]
[GOAL]
case this
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
⊢ ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) =
    ENNReal.toReal (↑↑μ (s ∪ t)) - ENNReal.toReal (↑↑μ t) - (ENNReal.toReal (↑↑μ (s ∪ t)) - ENNReal.toReal (↑↑μ s))
[PROOFSTEP]
abel
[GOAL]
case this
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : ↑↑μ s ≠ ⊤
ht' : ↑↑μ t ≠ ⊤
hst : ↑↑μ (s \ t) ≠ ⊤
hts : ↑↑μ (t \ s) ≠ ⊤
⊢ ENNReal.toReal (↑↑μ s) - ENNReal.toReal (↑↑μ t) =
    ENNReal.toReal (↑↑μ (s ∪ t)) - ENNReal.toReal (↑↑μ t) - (ENNReal.toReal (↑↑μ (s ∪ t)) - ENNReal.toReal (↑↑μ s))
[PROOFSTEP]
abel
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : IsProbabilityMeasure μ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
simp only [measure_univ, ENNReal.one_lt_top]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : IsProbabilityMeasure μ
⊢ ¬↑↑μ univ = 0
[PROOFSTEP]
simp [measure_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsProbabilityMeasure μ
f : α → β
hf : AEMeasurable f
⊢ ↑↑(Measure.map f μ) univ = 1
[PROOFSTEP]
simp [map_apply_of_aemeasurable, hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsProbabilityMeasure μ
hs : MeasurableSet s
⊢ ↑↑μ sᶜ = 1 - ↑↑μ s
[PROOFSTEP]
simpa only [measure_univ] using measure_compl hs (measure_lt_top μ s).ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsProbabilityMeasure μ
hs : MeasurableSet s
⊢ ↑↑μ sᶜ = 0 ↔ ↑↑μ s = 1
[PROOFSTEP]
rw [prob_compl_eq_one_sub hs, tsub_eq_zero_iff_le, one_le_prob_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsProbabilityMeasure μ
hs : MeasurableSet s
⊢ ↑↑μ sᶜ = 1 ↔ ↑↑μ s = 0
[PROOFSTEP]
rw [← prob_compl_eq_zero_iff hs.compl, compl_compl]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : NoAtoms μ
a : α
⊢ restrict μ {a} = 0
[PROOFSTEP]
simp only [measure_singleton, Measure.restrict_eq_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : NoAtoms μ
s : Set α
⊢ NoAtoms (restrict μ s)
[PROOFSTEP]
refine' ⟨fun x => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : NoAtoms μ
s : Set α
x : α
⊢ ↑↑(restrict μ s) {x} = 0
[PROOFSTEP]
obtain ⟨t, hxt, ht1, ht2⟩ := exists_measurable_superset_of_null (measure_singleton x : μ { x } = 0)
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : NoAtoms μ
s : Set α
x : α
t : Set α
hxt : {x} ⊆ t
ht1 : MeasurableSet t
ht2 : ↑↑μ t = 0
⊢ ↑↑(restrict μ s) {x} = 0
[PROOFSTEP]
apply measure_mono_null hxt
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : NoAtoms μ
s : Set α
x : α
t : Set α
hxt : {x} ⊆ t
ht1 : MeasurableSet t
ht2 : ↑↑μ t = 0
⊢ ↑↑(restrict μ s) t = 0
[PROOFSTEP]
rw [Measure.restrict_apply ht1]
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : NoAtoms μ
s : Set α
x : α
t : Set α
hxt : {x} ⊆ t
ht1 : MeasurableSet t
ht2 : ↑↑μ t = 0
⊢ ↑↑μ (t ∩ s) = 0
[PROOFSTEP]
apply measure_mono_null (inter_subset_left t s) ht2
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
inst✝¹ : NoAtoms μ✝
α : Type u_8
m : MeasurableSpace α
s : Set α
h : Set.Countable s
μ : Measure α
inst✝ : NoAtoms μ
⊢ ↑↑μ s = 0
[PROOFSTEP]
rw [← biUnion_of_singleton s, ← nonpos_iff_eq_zero]
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
inst✝¹ : NoAtoms μ✝
α : Type u_8
m : MeasurableSpace α
s : Set α
h : Set.Countable s
μ : Measure α
inst✝ : NoAtoms μ
⊢ ↑↑μ (⋃ (x : α) (_ : x ∈ s), {x}) ≤ 0
[PROOFSTEP]
refine' le_trans (measure_biUnion_le h _) _
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
inst✝¹ : NoAtoms μ✝
α : Type u_8
m : MeasurableSpace α
s : Set α
h : Set.Countable s
μ : Measure α
inst✝ : NoAtoms μ
⊢ ∑' (p : ↑s), ↑↑μ {↑p} ≤ 0
[PROOFSTEP]
simp
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
inst✝¹ : NoAtoms μ✝
α : Type u_8
m : MeasurableSpace α
s : Set α
h : Set.Countable s
μ : Measure α
inst✝ : NoAtoms μ
⊢ ∀ᵐ (x : α) ∂μ, ¬x ∈ s
[PROOFSTEP]
simpa only [ae_iff, Classical.not_not] using h.measure_zero μ
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
⊢ (fun x => if x ∈ s then f x else g x) =ᶠ[ae μ] g
[PROOFSTEP]
have h_ss : sᶜ ⊆ {a : α | ite (a ∈ s) (f a) (g a) = g a} := fun x hx => by simp [(Set.mem_compl_iff _ _).mp hx]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
x : α
hx : x ∈ sᶜ
⊢ x ∈ {a | (if a ∈ s then f a else g a) = g a}
[PROOFSTEP]
simp [(Set.mem_compl_iff _ _).mp hx]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
⊢ (fun x => if x ∈ s then f x else g x) =ᶠ[ae μ] g
[PROOFSTEP]
refine' measure_mono_null _ hs_zero
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
⊢ {x | (fun x => (fun x => if x ∈ s then f x else g x) x = g x) x}ᶜ ⊆ s
[PROOFSTEP]
conv_rhs => rw [← compl_compl s]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
| s
[PROOFSTEP]
rw [← compl_compl s]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
| s
[PROOFSTEP]
rw [← compl_compl s]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
| s
[PROOFSTEP]
rw [← compl_compl s]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ s = 0
h_ss : sᶜ ⊆ {a | (if a ∈ s then f a else g a) = g a}
⊢ {x | (fun x => (fun x => if x ∈ s then f x else g x) x = g x) x}ᶜ ⊆ sᶜᶜ
[PROOFSTEP]
rwa [Set.compl_subset_compl]
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : ↑↑μ sᶜ = 0
⊢ (fun x => if x ∈ s then f x else g x) =ᶠ[ae μ] f
[PROOFSTEP]
change s ∈ μ.ae at hs_zero 
[GOAL]
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : s ∈ ae μ
⊢ (fun x => if x ∈ s then f x else g x) =ᶠ[ae μ] f
[PROOFSTEP]
filter_upwards [hs_zero]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : s ∈ ae μ
⊢ ∀ (a : α), a ∈ s → (if a ∈ s then f a else g a) = f a
[PROOFSTEP]
intros
[GOAL]
case h
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : s ∈ ae μ
a✝¹ : α
a✝ : a✝¹ ∈ s
⊢ (if a✝¹ ∈ s then f a✝¹ else g a✝¹) = f a✝¹
[PROOFSTEP]
split_ifs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ✝ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ✝
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
γ : Type u_8
f g : α → γ
s : Set α
hs_zero : s ∈ ae μ
a✝¹ : α
a✝ : a✝¹ ∈ s
⊢ f a✝¹ = f a✝¹
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0✝ : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
m0 : MeasurableSpace α
μ : Measure α
⊢ ↑↑μ ∅ < ⊤
[PROOFSTEP]
simp only [measure_empty, WithTop.zero_lt_top]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h : SigmaFinite μ
n : ℕ
⊢ ↑↑μ
      ((fun n =>
          toMeasurable μ (FiniteSpanningSetsIn.set (Nonempty.some (_ : Nonempty (FiniteSpanningSetsIn μ univ))) n))
        n) <
    ⊤
[PROOFSTEP]
rw [measure_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h : SigmaFinite μ
n : ℕ
⊢ ↑↑μ (FiniteSpanningSetsIn.set (Nonempty.some (_ : Nonempty (FiniteSpanningSetsIn μ univ))) n) < ⊤
[PROOFSTEP]
exact h.out.some.finite n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
⊢ ⋃ (i : ℕ), spanningSets μ i = univ
[PROOFSTEP]
simp_rw [spanningSets, iUnion_accumulate, μ.toFiniteSpanningSetsIn.spanning]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
x : α
n : ℕ
⊢ spanningSetsIndex μ x = n ↔ x ∈ disjointed (spanningSets μ) n
[PROOFSTEP]
convert Set.ext_iff.1 (preimage_spanningSetsIndex_singleton μ n) x
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
hs : MeasurableSet s
⊢ ↑↑(restrict μ (⋃ (i : ℕ), spanningSets μ i)) s = ↑↑μ s
[PROOFSTEP]
rw [iUnion_spanningSets, restrict_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
r : ℝ≥0∞
hs : MeasurableSet s
h's : r < ↑↑μ s
⊢ ∃ t, MeasurableSet t ∧ t ⊆ s ∧ r < ↑↑μ t ∧ ↑↑μ t < ⊤
[PROOFSTEP]
rw [← iSup_restrict_spanningSets hs, @lt_iSup_iff _ _ _ r fun i : ℕ => μ.restrict (spanningSets μ i) s] at h's 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
r : ℝ≥0∞
hs : MeasurableSet s
h's✝ : r < ↑↑μ s
h's : ∃ i, r < ↑↑(restrict μ (spanningSets μ i)) s
⊢ ∃ t, MeasurableSet t ∧ t ⊆ s ∧ r < ↑↑μ t ∧ ↑↑μ t < ⊤
[PROOFSTEP]
rcases h's with ⟨n, hn⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
r : ℝ≥0∞
hs : MeasurableSet s
h's : r < ↑↑μ s
n : ℕ
hn : r < ↑↑(restrict μ (spanningSets μ n)) s
⊢ ∃ t, MeasurableSet t ∧ t ⊆ s ∧ r < ↑↑μ t ∧ ↑↑μ t < ⊤
[PROOFSTEP]
simp only [restrict_apply hs] at hn 
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
r : ℝ≥0∞
hs : MeasurableSet s
h's : r < ↑↑μ s
n : ℕ
hn : r < ↑↑μ (s ∩ spanningSets μ n)
⊢ ∃ t, MeasurableSet t ∧ t ⊆ s ∧ r < ↑↑μ t ∧ ↑↑μ t < ⊤
[PROOFSTEP]
refine' ⟨s ∩ spanningSets μ n, hs.inter (measurable_spanningSets _ _), inter_subset_left _ _, hn, _⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : SigmaFinite μ
r : ℝ≥0∞
hs : MeasurableSet s
h's : r < ↑↑μ s
n : ℕ
hn : r < ↑↑μ (s ∩ spanningSets μ n)
⊢ ↑↑μ (s ∩ spanningSets μ n) < ⊤
[PROOFSTEP]
exact (measure_mono (inter_subset_right _ _)).trans_lt (measure_spanningSets_lt_top _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ (∀ (n : ℕ), ↑↑μ (s ∩ spanningSets μ n) = 0) ↔ ↑↑μ s = 0
[PROOFSTEP]
nth_rw 2 [show s = ⋃ n, s ∩ spanningSets μ n by rw [← inter_iUnion, iUnion_spanningSets, inter_univ]]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ s = ⋃ (n : ℕ), s ∩ spanningSets μ n
[PROOFSTEP]
rw [← inter_iUnion, iUnion_spanningSets, inter_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ (∀ (n : ℕ), ↑↑μ (s ∩ spanningSets μ n) = 0) ↔ ↑↑μ (⋃ (n : ℕ), s ∩ spanningSets μ n) = 0
[PROOFSTEP]
rw [measure_iUnion_null_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ (∃ n, 0 < ↑↑μ (s ∩ spanningSets μ n)) ↔ 0 < ↑↑μ s
[PROOFSTEP]
rw [← not_iff_not]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ (¬∃ n, 0 < ↑↑μ (s ∩ spanningSets μ n)) ↔ ¬0 < ↑↑μ s
[PROOFSTEP]
simp only [not_exists, not_lt, nonpos_iff_eq_zero]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ (∀ (x : ℕ), ↑↑μ (s ∩ spanningSets μ x) = 0) ↔ ↑↑μ s = 0
[PROOFSTEP]
exact forall_measure_inter_spanningSets_eq_zero s
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
⊢ Set.Finite {i | ε ≤ ↑↑μ (As i)}
[PROOFSTEP]
by_contra con
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
con : ¬Set.Finite {i | ε ≤ ↑↑μ (As i)}
⊢ False
[PROOFSTEP]
have aux :=
  lt_of_le_of_lt (tsum_meas_le_meas_iUnion_of_disjoint μ As_mble As_disj) (lt_top_iff_ne_top.mpr Union_As_finite)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
con : ¬Set.Finite {i | ε ≤ ↑↑μ (As i)}
aux : ∑' (i : ι), ↑↑μ (As i) < ⊤
⊢ False
[PROOFSTEP]
exact con (ENNReal.finite_const_le_of_tsum_ne_top aux.ne ε_pos.ne.symm)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
⊢ Set.Countable {i | 0 < ↑↑μ (As i)}
[PROOFSTEP]
set posmeas := {i : ι | 0 < μ (As i)} with posmeas_def
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
⊢ Set.Countable posmeas
[PROOFSTEP]
rcases exists_seq_strictAnti_tendsto' (zero_lt_one : (0 : ℝ≥0∞) < 1) with ⟨as, _, as_mem, as_lim⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
⊢ Set.Countable posmeas
[PROOFSTEP]
set fairmeas := fun n : ℕ => {i : ι | as n ≤ μ (As i)}
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
⊢ Set.Countable posmeas
[PROOFSTEP]
have countable_union : posmeas = ⋃ n, fairmeas n :=
  by
  have fairmeas_eq : ∀ n, fairmeas n = (fun i => μ (As i)) ⁻¹' Ici (as n) := fun n =>
    by
    simp only []
    rfl
  simpa only [fairmeas_eq, posmeas_def, ← preimage_iUnion,
    iUnion_Ici_eq_Ioi_of_lt_of_tendsto (0 : ℝ≥0∞) (fun n => (as_mem n).1) as_lim]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
⊢ posmeas = ⋃ (n : ℕ), fairmeas n
[PROOFSTEP]
have fairmeas_eq : ∀ n, fairmeas n = (fun i => μ (As i)) ⁻¹' Ici (as n) := fun n =>
  by
  simp only []
  rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
n : ℕ
⊢ fairmeas n = (fun i => ↑↑μ (As i)) ⁻¹' Ici (as n)
[PROOFSTEP]
simp only []
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
n : ℕ
⊢ {i | as n ≤ ↑↑μ (As i)} = (fun i => ↑↑μ (As i)) ⁻¹' Ici (as n)
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
fairmeas_eq : ∀ (n : ℕ), fairmeas n = (fun i => ↑↑μ (As i)) ⁻¹' Ici (as n)
⊢ posmeas = ⋃ (n : ℕ), fairmeas n
[PROOFSTEP]
simpa only [fairmeas_eq, posmeas_def, ← preimage_iUnion,
  iUnion_Ici_eq_Ioi_of_lt_of_tendsto (0 : ℝ≥0∞) (fun n => (as_mem n).1) as_lim]
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
countable_union : posmeas = ⋃ (n : ℕ), fairmeas n
⊢ Set.Countable posmeas
[PROOFSTEP]
rw [countable_union]
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
countable_union : posmeas = ⋃ (n : ℕ), fairmeas n
⊢ Set.Countable (⋃ (n : ℕ), fairmeas n)
[PROOFSTEP]
refine' countable_iUnion fun n => Finite.countable _
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝ : MeasurableSpace α
μ : Measure α
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
posmeas : Set ι := {i | 0 < ↑↑μ (As i)}
posmeas_def : posmeas = {i | 0 < ↑↑μ (As i)}
as : ℕ → ℝ≥0∞
left✝ : StrictAnti as
as_mem : ∀ (n : ℕ), as n ∈ Ioo 0 1
as_lim : Tendsto as atTop (𝓝 0)
fairmeas : ℕ → Set ι := fun n => {i | as n ≤ ↑↑μ (As i)}
countable_union : posmeas = ⋃ (n : ℕ), fairmeas n
n : ℕ
⊢ Set.Finite (fairmeas n)
[PROOFSTEP]
refine' finite_const_le_meas_of_disjoint_iUnion μ (as_mem n).1 As_mble As_disj Union_As_finite
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
⊢ Set.Countable {i | 0 < ↑↑μ (As i)}
[PROOFSTEP]
have obs : {i : ι | 0 < μ (As i)} ⊆ ⋃ n, {i : ι | 0 < μ (As i ∩ spanningSets μ n)} :=
  by
  intro i i_in_nonzeroes
  by_contra con
  simp only [mem_iUnion, mem_setOf_eq, not_exists, not_lt, nonpos_iff_eq_zero] at *
  simp [(forall_measure_inter_spanningSets_eq_zero _).mp con] at i_in_nonzeroes 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
⊢ {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
[PROOFSTEP]
intro i i_in_nonzeroes
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
i : ι
i_in_nonzeroes : i ∈ {i | 0 < ↑↑μ (As i)}
⊢ i ∈ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
[PROOFSTEP]
by_contra con
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
i : ι
i_in_nonzeroes : i ∈ {i | 0 < ↑↑μ (As i)}
con : ¬i ∈ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
⊢ False
[PROOFSTEP]
simp only [mem_iUnion, mem_setOf_eq, not_exists, not_lt, nonpos_iff_eq_zero] at *
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
i : ι
i_in_nonzeroes : 0 < ↑↑μ (As i)
con : ∀ (x : ℕ), ↑↑μ (As i ∩ spanningSets μ x) = 0
⊢ False
[PROOFSTEP]
simp [(forall_measure_inter_spanningSets_eq_zero _).mp con] at i_in_nonzeroes 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
⊢ Set.Countable {i | 0 < ↑↑μ (As i)}
[PROOFSTEP]
apply Countable.mono obs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
⊢ Set.Countable (⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)})
[PROOFSTEP]
refine' countable_iUnion fun n => countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top μ _ _ _
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
n : ℕ
⊢ ∀ (i : ι), MeasurableSet (As i ∩ spanningSets μ n)
[PROOFSTEP]
exact fun i => MeasurableSet.inter (As_mble i) (measurable_spanningSets μ n)
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
n : ℕ
⊢ Pairwise (Disjoint on fun i => As i ∩ spanningSets μ n)
[PROOFSTEP]
exact fun i j i_ne_j b hbi hbj => As_disj i_ne_j (hbi.trans (inter_subset_left _ _)) (hbj.trans (inter_subset_left _ _))
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
n : ℕ
⊢ ↑↑μ (⋃ (i : ι), As i ∩ spanningSets μ n) ≠ ⊤
[PROOFSTEP]
refine' (lt_of_le_of_lt (measure_mono _) (measure_spanningSets_lt_top μ n)).ne
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_8
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
obs : {i | 0 < ↑↑μ (As i)} ⊆ ⋃ (n : ℕ), {i | 0 < ↑↑μ (As i ∩ spanningSets μ n)}
n : ℕ
⊢ ⋃ (i : ι), As i ∩ spanningSets μ n ⊆ spanningSets μ n
[PROOFSTEP]
exact iUnion_subset fun i => inter_subset_right _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
⊢ ↑↑μ (toMeasurable μ t ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
have A : ∃ (t' : _) (_ : t' ⊇ t), MeasurableSet t' ∧ ∀ u, MeasurableSet u → μ (t' ∩ u) = μ (t ∩ u) :=
  by
  let w n := toMeasurable μ (t ∩ v n)
  have hw : ∀ n, μ (w n) < ∞ := by
    intro n
    simp_rw [measure_toMeasurable]
    exact (h'v n).lt_top
  set t' := ⋃ n, toMeasurable μ (t ∩ disjointed w n) with ht'
  have tt' : t ⊆ t' :=
    calc
      t ⊆ ⋃ n, t ∩ disjointed w n :=
        by
        rw [← inter_iUnion, iUnion_disjointed, inter_iUnion]
        intro x hx
        rcases mem_iUnion.1 (hv hx) with ⟨n, hn⟩
        refine' mem_iUnion.2 ⟨n, _⟩
        have : x ∈ t ∩ v n := ⟨hx, hn⟩
        exact ⟨hx, subset_toMeasurable μ _ this⟩
      _ ⊆ ⋃ n, toMeasurable μ (t ∩ disjointed w n) := iUnion_mono fun n => subset_toMeasurable _ _
  refine' ⟨t', tt', MeasurableSet.iUnion fun n => measurableSet_toMeasurable μ _, fun u hu => _⟩
  apply le_antisymm _ (measure_mono (inter_subset_inter tt' Subset.rfl))
  calc
    μ (t' ∩ u) ≤ ∑' n, μ (toMeasurable μ (t ∩ disjointed w n) ∩ u) :=
      by
      rw [ht', iUnion_inter]
      exact measure_iUnion_le _
    _ = ∑' n, μ (t ∩ disjointed w n ∩ u) := by
      congr 1
      ext1 n
      apply measure_toMeasurable_inter hu
      apply ne_of_lt
      calc
        μ (t ∩ disjointed w n) ≤ μ (t ∩ w n) := measure_mono (inter_subset_inter_right _ (disjointed_le w n))
        _ ≤ μ (w n) := (measure_mono (inter_subset_right _ _))
        _ < ∞ := hw n
    _ = ∑' n, μ.restrict (t ∩ u) (disjointed w n) := by
      congr 1
      ext1 n
      rw [restrict_apply, inter_comm t _, inter_assoc]
      refine MeasurableSet.disjointed (fun n => ?_) n
      exact measurableSet_toMeasurable _ _
    _ = μ.restrict (t ∩ u) (⋃ n, disjointed w n) := by
      rw [measure_iUnion]
      · exact disjoint_disjointed _
      · intro i
        refine MeasurableSet.disjointed (fun n => ?_) i
        exact measurableSet_toMeasurable _ _
    _ ≤ μ.restrict (t ∩ u) univ := (measure_mono (subset_univ _))
    _ = μ (t ∩ u) := by
      rw [restrict_apply MeasurableSet.univ, univ_inter]
        -- thanks to the definition of `toMeasurable`, the previous property will also be shared
          -- by `toMeasurable μ t`, which is enough to conclude the proof.
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
let w n := toMeasurable μ (t ∩ v n)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
have hw : ∀ n, μ (w n) < ∞ := by
  intro n
  simp_rw [measure_toMeasurable]
  exact (h'v n).lt_top
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
⊢ ∀ (n : ℕ), ↑↑μ (w n) < ⊤
[PROOFSTEP]
intro n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
n : ℕ
⊢ ↑↑μ (w n) < ⊤
[PROOFSTEP]
simp_rw [measure_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
n : ℕ
⊢ ↑↑μ (t ∩ v n) < ⊤
[PROOFSTEP]
exact (h'v n).lt_top
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
set t' := ⋃ n, toMeasurable μ (t ∩ disjointed w n) with ht'
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
have tt' : t ⊆ t' :=
  calc
    t ⊆ ⋃ n, t ∩ disjointed w n := by
      rw [← inter_iUnion, iUnion_disjointed, inter_iUnion]
      intro x hx
      rcases mem_iUnion.1 (hv hx) with ⟨n, hn⟩
      refine' mem_iUnion.2 ⟨n, _⟩
      have : x ∈ t ∩ v n := ⟨hx, hn⟩
      exact ⟨hx, subset_toMeasurable μ _ this⟩
    _ ⊆ ⋃ n, toMeasurable μ (t ∩ disjointed w n) := iUnion_mono fun n => subset_toMeasurable _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ t ⊆ ⋃ (n : ℕ), t ∩ disjointed w n
[PROOFSTEP]
rw [← inter_iUnion, iUnion_disjointed, inter_iUnion]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ t ⊆ ⋃ (i : ℕ), t ∩ w i
[PROOFSTEP]
intro x hx
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
⊢ x ∈ ⋃ (i : ℕ), t ∩ w i
[PROOFSTEP]
rcases mem_iUnion.1 (hv hx) with ⟨n, hn⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
⊢ x ∈ ⋃ (i : ℕ), t ∩ w i
[PROOFSTEP]
refine' mem_iUnion.2 ⟨n, _⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
⊢ x ∈ t ∩ w n
[PROOFSTEP]
have : x ∈ t ∩ v n := ⟨hx, hn⟩
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
this : x ∈ t ∩ v n
⊢ x ∈ t ∩ w n
[PROOFSTEP]
exact ⟨hx, subset_toMeasurable μ _ this⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
refine' ⟨t', tt', MeasurableSet.iUnion fun n => measurableSet_toMeasurable μ _, fun u hu => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
[PROOFSTEP]
apply le_antisymm _ (measure_mono (inter_subset_inter tt' Subset.rfl))
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (t' ∩ u) ≤ ↑↑μ (t ∩ u)
[PROOFSTEP]
calc
  μ (t' ∩ u) ≤ ∑' n, μ (toMeasurable μ (t ∩ disjointed w n) ∩ u) :=
    by
    rw [ht', iUnion_inter]
    exact measure_iUnion_le _
  _ = ∑' n, μ (t ∩ disjointed w n ∩ u) := by
    congr 1
    ext1 n
    apply measure_toMeasurable_inter hu
    apply ne_of_lt
    calc
      μ (t ∩ disjointed w n) ≤ μ (t ∩ w n) := measure_mono (inter_subset_inter_right _ (disjointed_le w n))
      _ ≤ μ (w n) := (measure_mono (inter_subset_right _ _))
      _ < ∞ := hw n
  _ = ∑' n, μ.restrict (t ∩ u) (disjointed w n) := by
    congr 1
    ext1 n
    rw [restrict_apply, inter_comm t _, inter_assoc]
    refine MeasurableSet.disjointed (fun n => ?_) n
    exact measurableSet_toMeasurable _ _
  _ = μ.restrict (t ∩ u) (⋃ n, disjointed w n) := by
    rw [measure_iUnion]
    · exact disjoint_disjointed _
    · intro i
      refine MeasurableSet.disjointed (fun n => ?_) i
      exact measurableSet_toMeasurable _ _
  _ ≤ μ.restrict (t ∩ u) univ := (measure_mono (subset_univ _))
  _ = μ (t ∩ u) := by
    rw [restrict_apply MeasurableSet.univ, univ_inter]
      -- thanks to the definition of `toMeasurable`, the previous property will also be shared
        -- by `toMeasurable μ t`, which is enough to conclude the proof.
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (t' ∩ u) ≤ ∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)
[PROOFSTEP]
rw [ht', iUnion_inter]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (⋃ (i : ℕ), toMeasurable μ (t ∩ disjointed w i) ∩ u) ≤ ∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)
[PROOFSTEP]
exact measure_iUnion_le _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u) = ∑' (n : ℕ), ↑↑μ (t ∩ disjointed w n ∩ u)
[PROOFSTEP]
congr 1
[GOAL]
case e_f
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (fun n => ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)) = fun n => ↑↑μ (t ∩ disjointed w n ∩ u)
[PROOFSTEP]
ext1 n
[GOAL]
case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u) = ↑↑μ (t ∩ disjointed w n ∩ u)
[PROOFSTEP]
apply measure_toMeasurable_inter hu
[GOAL]
case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n) ≠ ⊤
[PROOFSTEP]
apply ne_of_lt
[GOAL]
case e_f.h.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n) < ⊤
[PROOFSTEP]
calc
  μ (t ∩ disjointed w n) ≤ μ (t ∩ w n) := measure_mono (inter_subset_inter_right _ (disjointed_le w n))
  _ ≤ μ (w n) := (measure_mono (inter_subset_right _ _))
  _ < ∞ := hw n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ∑' (n : ℕ), ↑↑μ (t ∩ disjointed w n ∩ u) = ∑' (n : ℕ), ↑↑(restrict μ (t ∩ u)) (disjointed w n)
[PROOFSTEP]
congr 1
[GOAL]
case e_f
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (fun n => ↑↑μ (t ∩ disjointed w n ∩ u)) = fun n => ↑↑(restrict μ (t ∩ u)) (disjointed w n)
[PROOFSTEP]
ext1 n
[GOAL]
case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n ∩ u) = ↑↑(restrict μ (t ∩ u)) (disjointed w n)
[PROOFSTEP]
rw [restrict_apply, inter_comm t _, inter_assoc]
[GOAL]
case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ MeasurableSet (disjointed w n)
[PROOFSTEP]
refine MeasurableSet.disjointed (fun n => ?_) n
[GOAL]
case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n✝ n : ℕ
⊢ MeasurableSet (w n)
[PROOFSTEP]
exact measurableSet_toMeasurable _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ∑' (n : ℕ), ↑↑(restrict μ (t ∩ u)) (disjointed w n) = ↑↑(restrict μ (t ∩ u)) (⋃ (n : ℕ), disjointed w n)
[PROOFSTEP]
rw [measure_iUnion]
[GOAL]
case hn
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ Pairwise (Disjoint on fun n => disjointed w n)
[PROOFSTEP]
exact disjoint_disjointed _
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ∀ (i : ℕ), MeasurableSet (disjointed w i)
[PROOFSTEP]
intro i
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
i : ℕ
⊢ MeasurableSet (disjointed w i)
[PROOFSTEP]
refine MeasurableSet.disjointed (fun n => ?_) i
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
i n : ℕ
⊢ MeasurableSet (w n)
[PROOFSTEP]
exact measurableSet_toMeasurable _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict μ (t ∩ u)) univ = ↑↑μ (t ∩ u)
[PROOFSTEP]
rw [restrict_apply MeasurableSet.univ, univ_inter]
  -- thanks to the definition of `toMeasurable`, the previous property will also be shared
    -- by `toMeasurable μ t`, which is enough to conclude the proof.
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
⊢ ↑↑μ (toMeasurable μ t ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
rw [toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
⊢ ↑↑μ
      ((if h : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t then Exists.choose h
        else
          if h' : ∃ t_1 x, MeasurableSet t_1 ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t_1 ∩ u) = ↑↑μ (t ∩ u) then
            Exists.choose h'
          else Exists.choose (_ : ∃ t_1, t ⊆ t_1 ∧ MeasurableSet t_1 ∧ ↑↑μ t_1 = ↑↑μ t)) ∩
        s) =
    ↑↑μ (t ∩ s)
[PROOFSTEP]
split_ifs with ht
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ ↑↑μ (Exists.choose (_ : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t) ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
apply measure_congr
[GOAL]
case pos.H
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ Exists.choose (_ : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t) ∩ s =ᶠ[ae μ] t ∩ s
[PROOFSTEP]
exact ae_eq_set_inter ht.choose_spec.snd.2 (ae_eq_refl _)
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ¬∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ ↑↑μ (Exists.choose A ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
exact A.choose_spec.snd.2 s hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
v : ℕ → Set α
hv : s ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (toMeasurable μ s)) t = ↑↑(restrict μ s) t
[PROOFSTEP]
simp only [restrict_apply ht, inter_comm t, measure_toMeasurable_inter_of_cover ht hv h'v]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑↑μ (toMeasurable μ t ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
have : t ⊆ ⋃ n, spanningSets μ n := by
  rw [iUnion_spanningSets]
  exact subset_univ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
t : Set α
⊢ t ⊆ ⋃ (n : ℕ), spanningSets μ n
[PROOFSTEP]
rw [iUnion_spanningSets]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
t : Set α
⊢ t ⊆ univ
[PROOFSTEP]
exact subset_univ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
t : Set α
this : t ⊆ ⋃ (n : ℕ), spanningSets μ n
⊢ ↑↑μ (toMeasurable μ t ∩ s) = ↑↑μ (t ∩ s)
[PROOFSTEP]
refine measure_toMeasurable_inter_of_cover hs this fun n => ne_of_lt ?_
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s : Set α
hs : MeasurableSet s
t : Set α
this : t ⊆ ⋃ (n : ℕ), spanningSets μ n
n : ℕ
⊢ ↑↑μ (t ∩ spanningSets μ n) < ⊤
[PROOFSTEP]
calc
  μ (t ∩ spanningSets μ n) ≤ μ (spanningSets μ n) := measure_mono (inter_subset_right _ _)
  _ < ∞ := measure_spanningSets_lt_top μ n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝ : SigmaFinite μ
s t : Set α
ht : MeasurableSet t
⊢ ↑↑(restrict μ (toMeasurable μ s)) t = ↑↑(restrict μ s) t
[PROOFSTEP]
rw [restrict_apply ht, inter_comm t, measure_toMeasurable_inter_of_sigmaFinite ht, restrict_apply ht, inter_comm t]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hμ : ∀ (s : Set α), s ∈ S → ↑↑μ s < ⊤
hU : ⋃₀ S = univ
⊢ SigmaFinite μ
[PROOFSTEP]
obtain ⟨s, hμ, hs⟩ : ∃ s : ℕ → Set α, (∀ n, μ (s n) < ∞) ∧ ⋃ n, s n = univ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hμ : ∀ (s : Set α), s ∈ S → ↑↑μ s < ⊤
hU : ⋃₀ S = univ
⊢ ∃ s, (∀ (n : ℕ), ↑↑μ (s n) < ⊤) ∧ ⋃ (n : ℕ), s n = univ
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hμ✝ : ∀ (s : Set α), s ∈ S → ↑↑μ s < ⊤
hU : ⋃₀ S = univ
s : ℕ → Set α
hμ : ∀ (n : ℕ), ↑↑μ (s n) < ⊤
hs : ⋃ (n : ℕ), s n = univ
⊢ SigmaFinite μ
[PROOFSTEP]
exact (@exists_seq_cover_iff_countable _ (fun x => μ x < ⊤) ⟨∅, by simp⟩).2 ⟨S, hc, hμ, hU⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hμ : ∀ (s : Set α), s ∈ S → ↑↑μ s < ⊤
hU : ⋃₀ S = univ
⊢ (fun x => ↑↑μ x < ⊤) ∅
[PROOFSTEP]
simp
[GOAL]
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
S : Set (Set α)
hc : Set.Countable S
hμ✝ : ∀ (s : Set α), s ∈ S → ↑↑μ s < ⊤
hU : ⋃₀ S = univ
s : ℕ → Set α
hμ : ∀ (n : ℕ), ↑↑μ (s n) < ⊤
hs : ⋃ (n : ℕ), s n = univ
⊢ SigmaFinite μ
[PROOFSTEP]
exact ⟨⟨⟨fun n => s n, fun _ => trivial, hμ, hs⟩⟩⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
⊢ SigmaFinite μ ↔ IsFiniteMeasure μ
[PROOFSTEP]
refine'
  ⟨fun h => ⟨_⟩, fun h => by
    haveI := h
    infer_instance⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h : IsFiniteMeasure μ
⊢ SigmaFinite μ
[PROOFSTEP]
haveI := h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h this : IsFiniteMeasure μ
⊢ SigmaFinite μ
[PROOFSTEP]
infer_instance
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h : SigmaFinite μ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
haveI : SigmaFinite μ := h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
h this : SigmaFinite μ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
let s := spanningSets μ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
have hs_univ : ⋃ i, s i = Set.univ := iUnion_spanningSets μ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
have hs_meas : ∀ i, MeasurableSet[⊥] (s i) := measurable_spanningSets μ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), MeasurableSet (s i)
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
simp_rw [MeasurableSpace.measurableSet_bot_iff] at hs_meas 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
by_cases h_univ_empty : Set.univ = ∅
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : univ = ∅
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
rw [h_univ_empty, @measure_empty α ⊥]
[GOAL]
case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : univ = ∅
⊢ 0 < ⊤
[PROOFSTEP]
exact ENNReal.zero_ne_top.lt_top
[GOAL]
case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
obtain ⟨i, hsi⟩ : ∃ i, s i = Set.univ := by
  by_contra' h_not_univ
  have h_empty : ∀ i, s i = ∅ := by simpa [h_not_univ] using hs_meas
  simp only [h_empty, iUnion_empty] at hs_univ 
  exact h_univ_empty hs_univ.symm
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
⊢ ∃ i, s i = univ
[PROOFSTEP]
by_contra' h_not_univ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
h_not_univ : ∀ (i : ℕ), spanningSets μ i ≠ univ
⊢ False
[PROOFSTEP]
have h_empty : ∀ i, s i = ∅ := by simpa [h_not_univ] using hs_meas
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
h_not_univ : ∀ (i : ℕ), spanningSets μ i ≠ univ
⊢ ∀ (i : ℕ), s i = ∅
[PROOFSTEP]
simpa [h_not_univ] using hs_meas
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
h_not_univ : ∀ (i : ℕ), spanningSets μ i ≠ univ
h_empty : ∀ (i : ℕ), s i = ∅
⊢ False
[PROOFSTEP]
simp only [h_empty, iUnion_empty] at hs_univ 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
h_not_univ : ∀ (i : ℕ), spanningSets μ i ≠ univ
h_empty : ∀ (i : ℕ), s i = ∅
hs_univ : ∅ = univ
⊢ False
[PROOFSTEP]
exact h_univ_empty hs_univ.symm
[GOAL]
case inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
i : ℕ
hsi : s i = univ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
rw [← hsi]
[GOAL]
case inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
h this : SigmaFinite μ
s : ℕ → Set α := spanningSets μ
hs_univ : ⋃ (i : ℕ), s i = univ
hs_meas : ∀ (i : ℕ), spanningSets μ i = ∅ ∨ spanningSets μ i = univ
h_univ_empty : ¬univ = ∅
i : ℕ
hsi : s i = univ
⊢ ↑↑μ (s i) < ⊤
[PROOFSTEP]
exact measure_spanningSets_lt_top μ i
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
⊢ SigmaFinite (Measure.restrict μ s)
[PROOFSTEP]
refine' ⟨⟨⟨spanningSets μ, fun _ => trivial, fun i => _, iUnion_spanningSets μ⟩⟩⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
i : ℕ
⊢ ↑↑(Measure.restrict μ s) (spanningSets μ i) < ⊤
[PROOFSTEP]
rw [Measure.restrict_apply (measurable_spanningSets μ i)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
s : Set α
i : ℕ
⊢ ↑↑μ (spanningSets μ i ∩ s) < ⊤
[PROOFSTEP]
exact (measure_mono <| inter_subset_left _ _).trans_lt (measure_spanningSets_lt_top μ i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
⊢ SigmaFinite (sum μ)
[PROOFSTEP]
cases nonempty_fintype ι
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
⊢ SigmaFinite (sum μ)
[PROOFSTEP]
have : ∀ n, MeasurableSet (⋂ i : ι, spanningSets (μ i) n) := fun n =>
  MeasurableSet.iInter fun i => measurable_spanningSets (μ i) n
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
⊢ SigmaFinite (sum μ)
[PROOFSTEP]
refine' ⟨⟨⟨fun n => ⋂ i, spanningSets (μ i) n, fun _ => trivial, fun n => _, _⟩⟩⟩
[GOAL]
case intro.refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
n : ℕ
⊢ ↑↑(sum μ) ((fun n => ⋂ (i : ι), spanningSets (μ i) n) n) < ⊤
[PROOFSTEP]
rw [sum_apply _ (this n), tsum_fintype, ENNReal.sum_lt_top_iff]
[GOAL]
case intro.refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
n : ℕ
⊢ ∀ (a : ι), a ∈ Finset.univ → ↑↑(μ a) (⋂ (i : ι), spanningSets (μ i) n) < ⊤
[PROOFSTEP]
rintro i -
[GOAL]
case intro.refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
n : ℕ
i : ι
⊢ ↑↑(μ i) (⋂ (i : ι), spanningSets (μ i) n) < ⊤
[PROOFSTEP]
exact (measure_mono <| iInter_subset _ i).trans_lt (measure_spanningSets_lt_top (μ i) n)
[GOAL]
case intro.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
⊢ ⋃ (i : ℕ), (fun n => ⋂ (i : ι), spanningSets (μ i) n) i = univ
[PROOFSTEP]
rw [iUnion_iInter_of_monotone]
[GOAL]
case intro.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
⊢ ⋂ (i : ι), ⋃ (j : ℕ), spanningSets (μ i) j = univ
case intro.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
⊢ ∀ (i : ι), Monotone fun i_1 => spanningSets (μ i) i_1
[PROOFSTEP]
simp_rw [iUnion_spanningSets, iInter_univ]
[GOAL]
case intro.refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type ?u.729029
inst✝¹ : Finite ι
μ : ι → Measure α
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
val✝ : Fintype ι
this : ∀ (n : ℕ), MeasurableSet (⋂ (i : ι), spanningSets (μ i) n)
⊢ ∀ (i : ι), Monotone fun i_1 => spanningSets (μ i) i_1
[PROOFSTEP]
exact fun i => monotone_spanningSets (μ i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
⊢ SigmaFinite (μ + ν)
[PROOFSTEP]
rw [← sum_cond]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
⊢ SigmaFinite (sum fun b => bif b then μ else ν)
[PROOFSTEP]
refine' @sum.sigmaFinite _ _ _ _ _ (Bool.rec _ _)
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
⊢ SigmaFinite (bif false then μ else ν)
[PROOFSTEP]
simpa
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
⊢ SigmaFinite (bif true then μ else ν)
[PROOFSTEP]
simpa
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
c : ℝ≥0
⊢ ∀ (i : ℕ), ↑↑(c • μ) (spanningSets μ i) < ⊤
[PROOFSTEP]
intro i
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
c : ℝ≥0
i : ℕ
⊢ ↑↑(c • μ) (spanningSets μ i) < ⊤
[PROOFSTEP]
simp only [smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply, nnreal_smul_coe_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
c : ℝ≥0
i : ℕ
⊢ ↑c * ↑↑μ (spanningSets μ i) < ⊤
[PROOFSTEP]
exact ENNReal.mul_lt_top ENNReal.coe_ne_top (measure_spanningSets_lt_top μ i).ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
f : α → β
hf : AEMeasurable f
h : SigmaFinite (Measure.map f μ)
n : ℕ
⊢ ↑↑μ ((fun n => f ⁻¹' spanningSets (Measure.map f μ) n) n) < ⊤
[PROOFSTEP]
simp only [← map_apply_of_aemeasurable hf, measurable_spanningSets, measure_spanningSets_lt_top]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
f : α → β
hf : AEMeasurable f
h : SigmaFinite (Measure.map f μ)
⊢ ⋃ (i : ℕ), (fun n => f ⁻¹' spanningSets (Measure.map f μ) n) i = univ
[PROOFSTEP]
rw [← preimage_iUnion, iUnion_spanningSets, preimage_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
f : α ≃ᵐ β
h : SigmaFinite μ
⊢ SigmaFinite (Measure.map (↑f) μ)
[PROOFSTEP]
refine' SigmaFinite.of_map _ f.symm.measurable.aemeasurable _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
f : α ≃ᵐ β
h : SigmaFinite μ
⊢ SigmaFinite (Measure.map (↑(MeasurableEquiv.symm f)) (Measure.map (↑f) μ))
[PROOFSTEP]
rwa [map_map f.symm.measurable f.measurable, f.symm_comp_self, Measure.map_id]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
P : α → Prop
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ↑↑ν s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, P x
⊢ ∀ᵐ (x : α) ∂μ, P x
[PROOFSTEP]
have : ∀ n, ∀ᵐ x ∂μ, x ∈ spanningSets (μ + ν) n → P x :=
  by
  intro n
  have :=
    h (spanningSets (μ + ν) n) (measurable_spanningSets _ _)
      ((self_le_add_right _ _).trans_lt (measure_spanningSets_lt_top (μ + ν) _))
      ((self_le_add_left _ _).trans_lt (measure_spanningSets_lt_top (μ + ν) _))
  exact (ae_restrict_iff' (measurable_spanningSets _ _)).mp this
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
P : α → Prop
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ↑↑ν s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, P x
⊢ ∀ (n : ℕ), ∀ᵐ (x : α) ∂μ, x ∈ spanningSets (μ + ν) n → P x
[PROOFSTEP]
intro n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
P : α → Prop
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ↑↑ν s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, P x
n : ℕ
⊢ ∀ᵐ (x : α) ∂μ, x ∈ spanningSets (μ + ν) n → P x
[PROOFSTEP]
have :=
  h (spanningSets (μ + ν) n) (measurable_spanningSets _ _)
    ((self_le_add_right _ _).trans_lt (measure_spanningSets_lt_top (μ + ν) _))
    ((self_le_add_left _ _).trans_lt (measure_spanningSets_lt_top (μ + ν) _))
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
P : α → Prop
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ↑↑ν s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, P x
n : ℕ
this : ∀ᵐ (x : α) ∂Measure.restrict μ (spanningSets (μ + ν) n), P x
⊢ ∀ᵐ (x : α) ∂μ, x ∈ spanningSets (μ + ν) n → P x
[PROOFSTEP]
exact (ae_restrict_iff' (measurable_spanningSets _ _)).mp this
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
P : α → Prop
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ↑↑ν s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, P x
this : ∀ (n : ℕ), ∀ᵐ (x : α) ∂μ, x ∈ spanningSets (μ + ν) n → P x
⊢ ∀ᵐ (x : α) ∂μ, P x
[PROOFSTEP]
filter_upwards [ae_all_iff.2 this] with _ hx using hx _ (mem_spanningSetsIndex _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : IsFiniteMeasure μ
c : ℝ≥0∞
hc : c ≠ ⊤
⊢ IsFiniteMeasure (c • μ)
[PROOFSTEP]
lift c to ℝ≥0 using hc
[GOAL]
case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ : Measure α
inst✝ : IsFiniteMeasure μ
c : ℝ≥0
⊢ IsFiniteMeasure (↑c • μ)
[PROOFSTEP]
exact MeasureTheory.isFiniteMeasureSMulNNReal
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
⊢ ∃ s, x ∈ s ∧ IsOpen s ∧ ↑↑μ s < ⊤
[PROOFSTEP]
simpa only [exists_prop, and_assoc] using (μ.finiteAt_nhds x).exists_mem_basis (nhds_basis_opens x)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
c : ℝ≥0
⊢ IsLocallyFiniteMeasure (c • μ)
[PROOFSTEP]
refine' ⟨fun x => _⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
c : ℝ≥0
x : α
⊢ FiniteAtFilter (c • μ) (𝓝 x)
[PROOFSTEP]
rcases μ.exists_isOpen_measure_lt_top x with ⟨o, xo, o_open, μo⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
c : ℝ≥0
x : α
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
⊢ FiniteAtFilter (c • μ) (𝓝 x)
[PROOFSTEP]
refine' ⟨o, o_open.mem_nhds xo, _⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
c : ℝ≥0
x : α
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
⊢ ↑↑(c • μ) o < ⊤
[PROOFSTEP]
apply ENNReal.mul_lt_top _ μo.ne
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
c : ℝ≥0
x : α
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
⊢ ↑(RingHom.id ℝ≥0∞) (↑ofNNRealHom c) ≠ ⊤
[PROOFSTEP]
simp only [RingHom.id_apply, RingHom.toMonoidHom_eq_coe, ENNReal.coe_ne_top, ENNReal.coe_ofNNRealHom, Ne.def,
  not_false_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ TopologicalSpace.IsTopologicalBasis {s | IsOpen s ∧ ↑↑μ s < ⊤}
[PROOFSTEP]
refine' TopologicalSpace.isTopologicalBasis_of_open_of_nhds (fun s hs => hs.1) _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ ∀ (a : α) (u : Set α), a ∈ u → IsOpen u → ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ a ∈ v ∧ v ⊆ u
[PROOFSTEP]
intro x s xs hs
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
⊢ ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ x ∈ v ∧ v ⊆ s
[PROOFSTEP]
rcases μ.exists_isOpen_measure_lt_top x with ⟨v, xv, hv, μv⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
v : Set α
xv : x ∈ v
hv : IsOpen v
μv : ↑↑μ v < ⊤
⊢ ∃ v, v ∈ {s | IsOpen s ∧ ↑↑μ s < ⊤} ∧ x ∈ v ∧ v ⊆ s
[PROOFSTEP]
refine' ⟨v ∩ s, ⟨hv.inter hs, lt_of_le_of_lt _ μv⟩, ⟨xv, xs⟩, inter_subset_right _ _⟩
[GOAL]
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
x : α
s : Set α
xs : x ∈ s
hs : IsOpen s
v : Set α
xv : x ∈ v
hv : IsOpen v
μv : ↑↑μ v < ⊤
⊢ ↑↑μ (v ∩ s) ≤ ↑↑μ v
[PROOFSTEP]
exact measure_mono (inter_subset_left _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : IsLocallyFiniteMeasure μ
⊢ SigmaFinite μ
[PROOFSTEP]
choose s hsx hsμ using μ.finiteAt_nhds
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : IsLocallyFiniteMeasure μ
s : α → Set α
hsx : ∀ (x : α), s x ∈ 𝓝 x
hsμ : ∀ (x : α), ↑↑μ (s x) < ⊤
⊢ SigmaFinite μ
[PROOFSTEP]
rcases TopologicalSpace.countable_cover_nhds hsx with ⟨t, htc, htU⟩
[GOAL]
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : IsLocallyFiniteMeasure μ
s : α → Set α
hsx : ∀ (x : α), s x ∈ 𝓝 x
hsμ : ∀ (x : α), ↑↑μ (s x) < ⊤
t : Set α
htc : Set.Countable t
htU : ⋃ (x : α) (_ : x ∈ t), s x = univ
⊢ SigmaFinite μ
[PROOFSTEP]
refine' Measure.sigmaFinite_of_countable (htc.image s) (ball_image_iff.2 fun x _ => hsμ x) _
[GOAL]
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : IsLocallyFiniteMeasure μ
s : α → Set α
hsx : ∀ (x : α), s x ∈ 𝓝 x
hsμ : ∀ (x : α), ↑↑μ (s x) < ⊤
t : Set α
htc : Set.Countable t
htU : ⋃ (x : α) (_ : x ∈ t), s x = univ
⊢ ⋃₀ (s '' t) = univ
[PROOFSTEP]
rwa [sUnion_image]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : TopologicalSpace α
inst✝¹ : LocallyCompactSpace α
inst✝ : IsFiniteMeasureOnCompacts μ
⊢ ∀ (x : α), FiniteAtFilter μ (𝓝 x)
[PROOFSTEP]
intro x
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : TopologicalSpace α
inst✝¹ : LocallyCompactSpace α
inst✝ : IsFiniteMeasureOnCompacts μ
x : α
⊢ FiniteAtFilter μ (𝓝 x)
[PROOFSTEP]
rcases exists_compact_mem_nhds x with ⟨K, K_compact, K_mem⟩
[GOAL]
case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝² : TopologicalSpace α
inst✝¹ : LocallyCompactSpace α
inst✝ : IsFiniteMeasureOnCompacts μ
x : α
K : Set α
K_compact : IsCompact K
K_mem : K ∈ 𝓝 x
⊢ FiniteAtFilter μ (𝓝 x)
[PROOFSTEP]
exact ⟨K, K_mem, K_compact.measure_lt_top⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ (i : ι), U i = univ
hμ : μ ≠ 0
⊢ ∃ i, 0 < ↑↑μ (U i)
[PROOFSTEP]
contrapose! hμ with H
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ (i : ι), U i = univ
H : ∀ (i : ι), ↑↑μ (U i) ≤ 0
⊢ μ = 0
[PROOFSTEP]
rw [← measure_univ_eq_zero, ← hU]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ (i : ι), U i = univ
H : ∀ (i : ι), ↑↑μ (U i) ≤ 0
⊢ ↑↑μ (⋃ (i : ι), U i) = 0
[PROOFSTEP]
exact measure_iUnion_null fun i => nonpos_iff_eq_zero.1 (H i)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : PseudoMetricSpace δ
f : α → δ
x : δ
hμ : μ ≠ 0
⊢ ⋃ (i : ℕ), f ⁻¹' Metric.ball x ↑i = univ
[PROOFSTEP]
rw [← preimage_iUnion, Metric.iUnion_ball_nat, preimage_univ]
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
h : ∀ (b : β), ∃ᵐ (x : α) ∂μ, f x ≠ b
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
set m : OuterMeasure β := OuterMeasure.map f μ.toOuterMeasure
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
h : ∀ (b : β), ∃ᵐ (x : α) ∂μ, f x ≠ b
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
replace h : ∀ b : β, m { b }ᶜ ≠ 0 := fun b => not_eventually.mpr (h b)
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
inhabit β
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
have : m univ ≠ 0 := ne_bot_of_le_ne_bot (h default) (m.mono' <| subset_univ _)
[GOAL]
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
this : ↑m univ ≠ 0
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
rcases m.exists_mem_forall_mem_nhds_within_pos this with ⟨b, -, hb⟩
[GOAL]
case intro.intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
this : ↑m univ ≠ 0
b : β
hb : ∀ (t : Set β), t ∈ 𝓝[univ] b → 0 < ↑m t
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
simp only [nhdsWithin_univ] at hb 
[GOAL]
case intro.intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
this : ↑m univ ≠ 0
b : β
hb : ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑(↑(OuterMeasure.map f) ↑μ) t
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
rcases m.exists_mem_forall_mem_nhds_within_pos (h b) with ⟨a, hab : a ≠ b, ha⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
this : ↑m univ ≠ 0
b : β
hb : ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑(↑(OuterMeasure.map f) ↑μ) t
a : β
hab : a ≠ b
ha : ∀ (t : Set β), t ∈ 𝓝[{b}ᶜ] a → 0 < ↑m t
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
simp only [isOpen_compl_singleton.nhdsWithin_eq hab] at ha 
[GOAL]
case intro.intro.intro.intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁵ : MeasurableSpace β✝
inst✝⁴ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
β : Type u_8
inst✝³ : TopologicalSpace β
inst✝² : T1Space β
inst✝¹ : SecondCountableTopology β
inst✝ : Nonempty β
f : α → β
m : OuterMeasure β := ↑(OuterMeasure.map f) ↑μ
h : ∀ (b : β), ↑m {b}ᶜ ≠ 0
inhabited_h : Inhabited β
this : ↑m univ ≠ 0
b : β
hb : ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑(↑(OuterMeasure.map f) ↑μ) t
a : β
hab : a ≠ b
ha : ∀ (t : Set β), t ∈ 𝓝 a → 0 < ↑(↑(OuterMeasure.map f) ↑μ) t
⊢ ∃ a b, a ≠ b ∧ (∀ (s : Set β), s ∈ 𝓝 a → 0 < ↑↑μ (f ⁻¹' s)) ∧ ∀ (t : Set β), t ∈ 𝓝 b → 0 < ↑↑μ (f ⁻¹' t)
[PROOFSTEP]
exact ⟨a, b, hab, ha, hb⟩
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ s = ↑↑ν s
[PROOFSTEP]
haveI : IsFiniteMeasure ν := by
  constructor
  rw [← h_univ]
  apply IsFiniteMeasure.measure_univ_lt_top
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
⊢ IsFiniteMeasure ν
[PROOFSTEP]
constructor
[GOAL]
case measure_univ_lt_top
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
⊢ ↑↑ν univ < ⊤
[PROOFSTEP]
rw [← h_univ]
[GOAL]
case measure_univ_lt_top
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
apply IsFiniteMeasure.measure_univ_lt_top
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
⊢ ↑↑μ s = ↑↑ν s
[PROOFSTEP]
refine' induction_on_inter hA hC (by simp) hμν _ _ hs
[GOAL]
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
⊢ ↑↑μ ∅ = ↑↑ν ∅
[PROOFSTEP]
simp
[GOAL]
case refine'_1
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
⊢ ∀ (t : Set α), MeasurableSet t → ↑↑μ t = ↑↑ν t → ↑↑μ tᶜ = ↑↑ν tᶜ
[PROOFSTEP]
intro t h1t h2t
[GOAL]
case refine'_1
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t✝ : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
t : Set α
h1t : MeasurableSet t
h2t : ↑↑μ t = ↑↑ν t
⊢ ↑↑μ tᶜ = ↑↑ν tᶜ
[PROOFSTEP]
have h1t_ : @MeasurableSet α m₀ t := h _ h1t
[GOAL]
case refine'_1
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t✝ : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
t : Set α
h1t : MeasurableSet t
h2t : ↑↑μ t = ↑↑ν t
h1t_ : MeasurableSet t
⊢ ↑↑μ tᶜ = ↑↑ν tᶜ
[PROOFSTEP]
rw [@measure_compl α m₀ μ t h1t_ (@measure_ne_top α m₀ μ _ t),
  @measure_compl α m₀ ν t h1t_ (@measure_ne_top α m₀ ν _ t), h_univ, h2t]
[GOAL]
case refine'_2
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
⊢ ∀ (f : ℕ → Set α),
    Pairwise (Disjoint on f) →
      (∀ (i : ℕ), MeasurableSet (f i)) →
        (∀ (i : ℕ), ↑↑μ (f i) = ↑↑ν (f i)) → ↑↑μ (⋃ (i : ℕ), f i) = ↑↑ν (⋃ (i : ℕ), f i)
[PROOFSTEP]
intro f h1f h2f h3f
[GOAL]
case refine'_2
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
f : ℕ → Set α
h1f : Pairwise (Disjoint on f)
h2f : ∀ (i : ℕ), MeasurableSet (f i)
h3f : ∀ (i : ℕ), ↑↑μ (f i) = ↑↑ν (f i)
⊢ ↑↑μ (⋃ (i : ℕ), f i) = ↑↑ν (⋃ (i : ℕ), f i)
[PROOFSTEP]
have h2f_ : ∀ i : ℕ, @MeasurableSet α m₀ (f i) := fun i => h _ (h2f i)
[GOAL]
case refine'_2
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α✝
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α✝
s✝ s' t : Set α✝
α : Type u_8
m₀ : MeasurableSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
C : Set (Set α)
hμν : ∀ (s : Set α), s ∈ C → ↑↑μ s = ↑↑ν s
m : MeasurableSpace α
h : m ≤ m₀
hA : m = generateFrom C
hC : IsPiSystem C
h_univ : ↑↑μ univ = ↑↑ν univ
s : Set α
hs : MeasurableSet s
this : IsFiniteMeasure ν
f : ℕ → Set α
h1f : Pairwise (Disjoint on f)
h2f : ∀ (i : ℕ), MeasurableSet (f i)
h3f : ∀ (i : ℕ), ↑↑μ (f i) = ↑↑ν (f i)
h2f_ : ∀ (i : ℕ), MeasurableSet (f i)
⊢ ↑↑μ (⋃ (i : ℕ), f i) = ↑↑ν (⋃ (i : ℕ), f i)
[PROOFSTEP]
simp [measure_iUnion, h1f, h3f, h2f_]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : Filter α
⊢ FiniteAtFilter μ (f ⊓ ae μ) ↔ FiniteAtFilter μ f
[PROOFSTEP]
refine' ⟨_, fun h => h.filter_mono inf_le_left⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
f g : Filter α
⊢ FiniteAtFilter μ (f ⊓ ae μ) → FiniteAtFilter μ f
[PROOFSTEP]
rintro ⟨s, ⟨t, ht, u, hu, rfl⟩, hμ⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : ↑↑μ (t ∩ u) < ⊤
⊢ FiniteAtFilter μ f
[PROOFSTEP]
suffices : μ t ≤ μ (t ∩ u)
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : ↑↑μ (t ∩ u) < ⊤
this : ↑↑μ t ≤ ↑↑μ (t ∩ u)
⊢ FiniteAtFilter μ f
case this
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : ↑↑μ (t ∩ u) < ⊤
⊢ ↑↑μ t ≤ ↑↑μ (t ∩ u)
[PROOFSTEP]
exact ⟨t, ht, this.trans_lt hμ⟩
[GOAL]
case this
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t✝ : Set α
f g : Filter α
t : Set α
ht : t ∈ f
u : Set α
hu : u ∈ ae μ
hμ : ↑↑μ (t ∩ u) < ⊤
⊢ ↑↑μ t ≤ ↑↑μ (t ∩ u)
[PROOFSTEP]
exact measure_mono_ae (mem_of_superset hu fun x hu ht => ⟨ht, hu⟩)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
⊢ ↑↑(Measure.map f μ) s = ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
refine' le_antisymm _ (le_map_apply hf.measurable.aemeasurable s)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
set t := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
have htm : MeasurableSet t :=
  (hf.measurableSet_image.2 <| measurableSet_toMeasurable _ _).union hf.measurableSet_range.compl
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
have hst : s ⊆ t := by
  rw [subset_union_compl_iff_inter_subset, ← image_preimage_eq_inter_range]
  exact image_subset _ (subset_toMeasurable _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
⊢ s ⊆ t
[PROOFSTEP]
rw [subset_union_compl_iff_inter_subset, ← image_preimage_eq_inter_range]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
⊢ f '' (f ⁻¹' s) ⊆ f '' toMeasurable μ (f ⁻¹' s)
[PROOFSTEP]
exact image_subset _ (subset_toMeasurable _ _)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
hst : s ⊆ t
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
have hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s) := by
  rw [preimage_union, preimage_compl, preimage_range, compl_univ, union_empty, hf.injective.preimage_image]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
hst : s ⊆ t
⊢ f ⁻¹' t = toMeasurable μ (f ⁻¹' s)
[PROOFSTEP]
rw [preimage_union, preimage_compl, preimage_range, compl_univ, union_empty, hf.injective.preimage_image]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
hst : s ⊆ t
hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s)
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
calc
  μ.map f s ≤ μ.map f t := measure_mono hst
  _ = μ (f ⁻¹' s) := by rw [map_apply hf.measurable htm, hft, measure_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ (range f)ᶜ
htm : MeasurableSet t
hst : s ⊆ t
hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s)
⊢ ↑↑(Measure.map f μ) t = ↑↑μ (f ⁻¹' s)
[PROOFSTEP]
rw [map_apply hf.measurable htm, hft, measure_toMeasurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
⊢ Measure.map f (Measure.comap f μ) = Measure.restrict μ (range f)
[PROOFSTEP]
ext1 t ht
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
t : Set β
ht : MeasurableSet t
⊢ ↑↑(Measure.map f (Measure.comap f μ)) t = ↑↑(Measure.restrict μ (range f)) t
[PROOFSTEP]
rw [hf.map_apply, comap_apply f hf.injective hf.measurableSet_image' _ (hf.measurable ht),
  image_preimage_eq_inter_range, Measure.restrict_apply ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
s : Set α
⊢ ↑↑(Measure.comap f μ) s = ↑↑(Measure.comap f μ) (f ⁻¹' (f '' s))
[PROOFSTEP]
rw [hf.injective.preimage_image]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
s : Set α
⊢ ↑↑(Measure.map f (Measure.comap f μ)) (f '' s) = ↑↑μ (f '' s)
[PROOFSTEP]
rw [hf.map_comap, restrict_apply' hf.measurableSet_range, inter_eq_self_of_subset_left (image_subset_range _ _)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
p : β → Prop
μ : Measure α
⊢ (∀ᵐ (x : β) ∂Measure.map f μ, p x) ↔ ∀ᵐ (x : α) ∂μ, p (f x)
[PROOFSTEP]
simp only [ae_iff, hf.map_apply, preimage_setOf_eq]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure α
s t : Set β
ht : MeasurableSet t
⊢ ↑↑(Measure.restrict (Measure.map f μ) s) t = ↑↑(Measure.map f (Measure.restrict μ (f ⁻¹' s))) t
[PROOFSTEP]
simp [hf.map_apply, ht, hf.measurable ht]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
s : Set α
hs : MeasurableSet s
μ : Measure α
⊢ Measure.map Subtype.val (Measure.comap Subtype.val μ) = Measure.restrict μ s
[PROOFSTEP]
rw [(MeasurableEmbedding.subtype_coe hs).map_comap, Subtype.range_coe]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : ↑s) ∂Measure.comap Subtype.val μ, p ↑x
[PROOFSTEP]
rw [← map_comap_subtype_coe hs, (MeasurableEmbedding.subtype_coe hs).ae_map_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasureSpace α
s✝ t s : Set α
hs : MeasurableSet s
⊢ Measure.map Subtype.val volume = Measure.restrict volume s
[PROOFSTEP]
rw [volume_set_coe_def, (MeasurableEmbedding.subtype_coe hs).map_comap volume, Subtype.range_coe]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasureSpace α
s t : Set α
hs : NullMeasurableSet s
ht : MeasurableSet t
⊢ ↑↑volume (Subtype.val ⁻¹' t) = ↑↑volume (t ∩ s)
[PROOFSTEP]
rw [volume_set_coe_def,
  comap_apply₀ _ _ Subtype.coe_injective (fun h => MeasurableSet.nullMeasurableSet_subtype_coe hs)
    (measurable_subtype_coe ht).nullMeasurableSet,
  image_preimage_eq_inter_range, Subtype.range_coe]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
⊢ Measure.map (↑(symm e)) (Measure.map (↑e) μ) = μ
[PROOFSTEP]
simp [map_map e.symm.measurable e.measurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
⊢ Measure.map (↑e) (Measure.map (↑(symm e)) ν) = ν
[PROOFSTEP]
simp [map_map e.measurable e.symm.measurable]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
⊢ Injective (Measure.map ↑e)
[PROOFSTEP]
intro μ₁ μ₂ hμ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
μ₁ μ₂ : Measure α
hμ : Measure.map (↑e) μ₁ = Measure.map (↑e) μ₂
⊢ μ₁ = μ₂
[PROOFSTEP]
apply_fun Measure.map e.symm at hμ 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
μ₁ μ₂ : Measure α
hμ : Measure.map (↑(symm e)) (Measure.map (↑e) μ₁) = Measure.map (↑(symm e)) (Measure.map (↑e) μ₂)
⊢ μ₁ = μ₂
[PROOFSTEP]
simpa [map_symm_map e] using hμ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
⊢ Measure.map (↑e) μ = ν ↔ Measure.map (↑(symm e)) ν = μ
[PROOFSTEP]
rw [← (map_measurableEquiv_injective e).eq_iff, map_map_symm, eq_comm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ✝ : Measure α
ν : Measure β
f : α ≃ᵐ β
μ : Measure α
⊢ Filter.map (↑f) (ae μ) = ae (Measure.map (↑f) μ)
[PROOFSTEP]
ext s
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ✝ : Measure α
ν : Measure β
f : α ≃ᵐ β
μ : Measure α
s : Set β
⊢ s ∈ Filter.map (↑f) (ae μ) ↔ s ∈ ae (Measure.map (↑f) μ)
[PROOFSTEP]
simp_rw [mem_map, mem_ae_iff, ← preimage_compl, f.map_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ✝ : Measure α
ν : Measure β
μ : Measure α
e : α ≃ᵐ β
⊢ Measure.map (↑(symm e)) (Measure.map (↑e) μ) ≪ μ
[PROOFSTEP]
rw [Measure.map_map, e.symm_comp_self, Measure.map_id]
[GOAL]
case hg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ✝ : Measure α
ν : Measure β
μ : Measure α
e : α ≃ᵐ β
⊢ Measurable ↑(symm e)
[PROOFSTEP]
measurability
[GOAL]
case hf
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ✝ : Measure α
ν : Measure β
μ : Measure α
e : α ≃ᵐ β
⊢ Measurable ↑e
[PROOFSTEP]
measurability
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
⊢ toMeasure 0 (_ : inst✝ ≤ OuterMeasure.caratheodory 0) = 0
[PROOFSTEP]
rw [← Measure.measure_univ_eq_zero, toMeasure_apply _ _ MeasurableSet.univ, OuterMeasure.coe_zero, Pi.zero_apply]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
⊢ trim μ (_ : inst✝ ≤ inst✝) = μ
[PROOFSTEP]
simp [Measure.trim]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ✝ : Measure α
s : Set α
μ : Measure α
hm : m ≤ m0
⊢ ↑(trim μ hm) = OuterMeasure.trim ↑μ
[PROOFSTEP]
rw [Measure.trim, toMeasure_toOuterMeasure (ms := m)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
⊢ trim 0 hm = 0
[PROOFSTEP]
simp [Measure.trim, @OuterMeasure.toMeasure_zero _ m]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
hs : MeasurableSet s
⊢ ↑↑(trim μ hm) s = ↑↑μ s
[PROOFSTEP]
rw [Measure.trim, toMeasure_apply (ms := m) _ _ hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
⊢ ↑↑μ s ≤ ↑↑(trim μ hm) s
[PROOFSTEP]
simp_rw [Measure.trim]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
⊢ ↑↑μ s ≤ ↑↑(OuterMeasure.toMeasure ↑μ (_ : m ≤ OuterMeasure.caratheodory ↑μ)) s
[PROOFSTEP]
exact @le_toMeasure_apply _ m _ _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
hs : ↑↑(trim μ hm) s = 0
⊢ ↑↑(trim μ hm) (toMeasurable (trim μ hm) s) = 0
[PROOFSTEP]
rwa [@measure_toMeasurable _ m]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
⊢ trim (trim μ hm₂) hm₁₂ = trim μ (_ : m₁ ≤ m0)
[PROOFSTEP]
refine @Measure.ext _ m₁ _ _ (fun t ht => ?_)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
t : Set α
ht : MeasurableSet t
⊢ ↑↑(trim (trim μ hm₂) hm₁₂) t = ↑↑(trim μ (_ : m₁ ≤ m0)) t
[PROOFSTEP]
rw [trim_measurableSet_eq hm₁₂ ht, trim_measurableSet_eq (hm₁₂.trans hm₂) ht, trim_measurableSet_eq hm₂ (hm₁₂ t ht)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ✝ : Measure α
s : Set α
hm : m ≤ m0
μ : Measure α
hs : MeasurableSet s
⊢ Measure.restrict (trim μ hm) s = trim (Measure.restrict μ s) hm
[PROOFSTEP]
refine @Measure.ext _ m _ _ (fun t ht => ?_)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ✝ : Measure α
s : Set α
hm : m ≤ m0
μ : Measure α
hs : MeasurableSet s
t : Set α
ht : MeasurableSet t
⊢ ↑↑(Measure.restrict (trim μ hm) s) t = ↑↑(trim (Measure.restrict μ s) hm) t
[PROOFSTEP]
rw [@Measure.restrict_apply α m _ _ _ ht, trim_measurableSet_eq hm ht, Measure.restrict_apply (hm t ht),
  trim_measurableSet_eq hm (@MeasurableSet.inter α m t s ht hs)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
⊢ ↑↑(trim μ hm) univ < ⊤
[PROOFSTEP]
rw [trim_measurableSet_eq hm (@MeasurableSet.univ _ m)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
exact measure_lt_top _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
⊢ SigmaFinite (trim μ hm)
[PROOFSTEP]
have _ := Measure.FiniteSpanningSetsIn (μ.trim (hm₂.trans hm)) Set.univ
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
⊢ SigmaFinite (trim μ hm)
[PROOFSTEP]
refine' Measure.FiniteSpanningSetsIn.sigmaFinite _
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
⊢ Set (Set α)
[PROOFSTEP]
exact Set.univ
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
⊢ FiniteSpanningSetsIn (trim μ hm) univ
[PROOFSTEP]
refine'
  { set := spanningSets (μ.trim (hm₂.trans hm))
    set_mem := fun _ => Set.mem_univ _
    finite := fun i =>
      _
        -- This is the only one left to prove
    spanning := iUnion_spanningSets _ }
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
i : ℕ
⊢ ↑↑(trim μ hm) (spanningSets (trim μ (_ : m₂ ≤ m0)) i) < ⊤
[PROOFSTEP]
calc
  (μ.trim hm) (spanningSets (μ.trim (hm₂.trans hm)) i) =
      ((μ.trim hm).trim hm₂) (spanningSets (μ.trim (hm₂.trans hm)) i) :=
    by rw [@trim_measurableSet_eq α m₂ m (μ.trim hm) _ hm₂ (measurable_spanningSets _ _)]
  _ = (μ.trim (hm₂.trans hm)) (spanningSets (μ.trim (hm₂.trans hm)) i) := by rw [@trim_trim _ _ μ _ _ hm₂ hm]
  _ < ∞ := measure_spanningSets_lt_top _ _
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
i : ℕ
⊢ ↑↑(trim μ hm) (spanningSets (trim μ (_ : m₂ ≤ m0)) i) =
    ↑↑(trim (trim μ hm) hm₂) (spanningSets (trim μ (_ : m₂ ≤ m0)) i)
[PROOFSTEP]
rw [@trim_measurableSet_eq α m₂ m (μ.trim hm) _ hm₂ (measurable_spanningSets _ _)]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ m0✝ : MeasurableSpace α
μ✝ : Measure α
s : Set α
m m₂ m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
hm₂ : m₂ ≤ m
inst✝ : SigmaFinite (trim μ (_ : m₂ ≤ m0))
x✝ : Type u_1
i : ℕ
⊢ ↑↑(trim (trim μ hm) hm₂) (spanningSets (trim μ (_ : m₂ ≤ m0)) i) =
    ↑↑(trim μ (_ : m₂ ≤ m0)) (spanningSets (trim μ (_ : m₂ ≤ m0)) i)
[PROOFSTEP]
rw [@trim_trim _ _ μ _ _ hm₂ hm]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
⊢ SigmaFinite (trim μ (_ : ⊥ ≤ m0)) ↔ IsFiniteMeasure μ
[PROOFSTEP]
rw [sigmaFinite_bot_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
⊢ IsFiniteMeasure (trim μ (_ : ⊥ ≤ m0)) ↔ IsFiniteMeasure μ
[PROOFSTEP]
refine' ⟨fun h => ⟨_⟩, fun h => ⟨_⟩⟩
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure (trim μ (_ : ⊥ ≤ m0))
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
have h_univ := h.measure_univ_lt_top
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure μ
⊢ ↑↑(trim μ (_ : ⊥ ≤ m0)) univ < ⊤
[PROOFSTEP]
have h_univ := h.measure_univ_lt_top
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure (trim μ (_ : ⊥ ≤ m0))
h_univ : ↑↑(trim μ (_ : ⊥ ≤ m0)) univ < ⊤
⊢ ↑↑μ univ < ⊤
[PROOFSTEP]
rwa [trim_measurableSet_eq bot_le MeasurableSet.univ] at h_univ 
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure μ
h_univ : ↑↑μ univ < ⊤
⊢ ↑↑(trim μ (_ : ⊥ ≤ m0)) univ < ⊤
[PROOFSTEP]
rwa [trim_measurableSet_eq bot_le MeasurableSet.univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
refine' IsCompact.induction_on h _ _ _ _
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
use∅
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∃ x, IsOpen ∅ ∧ ↑↑μ ∅ < ⊤
[PROOFSTEP]
simp [Superset]
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∀ ⦃s t : Set α⦄, s ⊆ t → (∃ U x, IsOpen U ∧ ↑↑μ U < ⊤) → ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
rintro s t hst ⟨U, htU, hUo, hU⟩
[GOAL]
case refine'_2.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s✝ : Set α
h : IsCompact s✝
hμ : ∀ (x : α), x ∈ s✝ → FiniteAtFilter μ (𝓝 x)
s t : Set α
hst : s ⊆ t
U : Set α
htU : U ⊇ t
hUo : IsOpen U
hU : ↑↑μ U < ⊤
⊢ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
exact ⟨U, hst.trans htU, hUo, hU⟩
[GOAL]
case refine'_3
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∀ ⦃s t : Set α⦄, (∃ U x, IsOpen U ∧ ↑↑μ U < ⊤) → (∃ U x, IsOpen U ∧ ↑↑μ U < ⊤) → ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
rintro s t ⟨U, hsU, hUo, hU⟩ ⟨V, htV, hVo, hV⟩
[GOAL]
case refine'_3.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s✝ : Set α
h : IsCompact s✝
hμ : ∀ (x : α), x ∈ s✝ → FiniteAtFilter μ (𝓝 x)
s t U : Set α
hsU : U ⊇ s
hUo : IsOpen U
hU : ↑↑μ U < ⊤
V : Set α
htV : V ⊇ t
hVo : IsOpen V
hV : ↑↑μ V < ⊤
⊢ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
refine'
  ⟨U ∪ V, union_subset_union hsU htV, hUo.union hVo, (measure_union_le _ _).trans_lt <| ENNReal.add_lt_top.2 ⟨hU, hV⟩⟩
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
⊢ ∀ (x : α), x ∈ s → ∃ t, t ∈ 𝓝[s] x ∧ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
intro x hx
[GOAL]
case refine'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
x : α
hx : x ∈ s
⊢ ∃ t, t ∈ 𝓝[s] x ∧ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
rcases(hμ x hx).exists_mem_basis (nhds_basis_opens _) with ⟨U, ⟨hx, hUo⟩, hU⟩
[GOAL]
case refine'_4.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝 x)
x : α
hx✝ : x ∈ s
U : Set α
hU : ↑↑μ U < ⊤
hx : x ∈ U
hUo : IsOpen U
⊢ ∃ t, t ∈ 𝓝[s] x ∧ ∃ U x, IsOpen U ∧ ↑↑μ U < ⊤
[PROOFSTEP]
exact ⟨U, nhdsWithin_le_nhds (hUo.mem_nhds hx), U, Subset.rfl, hUo, hU⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝[s] x)
⊢ ↑↑μ ∅ < ⊤
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
hs : IsCompact s
⊢ (∀ (a : α), a ∈ s → ∃ t, t ∈ 𝓝[s] a ∧ ↑↑μ t = 0) → ↑↑μ s = 0
[PROOFSTEP]
simpa only [← compl_mem_ae_iff] using hs.compl_mem_sets_of_nhdsWithin
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : CompactSpace α
⊢ IsFiniteMeasure μ ↔ IsFiniteMeasureOnCompacts μ
[PROOFSTEP]
constructor
[GOAL]
case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : CompactSpace α
⊢ IsFiniteMeasure μ → IsFiniteMeasureOnCompacts μ
[PROOFSTEP]
intros
[GOAL]
case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : CompactSpace α
⊢ IsFiniteMeasureOnCompacts μ → IsFiniteMeasure μ
[PROOFSTEP]
intros
[GOAL]
case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : CompactSpace α
a✝ : IsFiniteMeasure μ
⊢ IsFiniteMeasureOnCompacts μ
[PROOFSTEP]
infer_instance
[GOAL]
case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : CompactSpace α
a✝ : IsFiniteMeasureOnCompacts μ
⊢ IsFiniteMeasure μ
[PROOFSTEP]
exact CompactSpace.isFiniteMeasure
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ FiniteSpanningSetsIn μ {K | IsOpen K}
[PROOFSTEP]
suffices H : Nonempty (μ.FiniteSpanningSetsIn {K | IsOpen K})
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
H : Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
⊢ FiniteSpanningSetsIn μ {K | IsOpen K}
case H
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
exact H.some
[GOAL]
case H
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
cases isEmpty_or_nonempty α
[GOAL]
case H.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : IsEmpty α
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
exact
  ⟨{  set := fun _ => ∅
      set_mem := fun _ => by simp
      finite := fun _ => by simp
      spanning := by simp }⟩
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : IsEmpty α
x✝ : ℕ
⊢ (fun x => ∅) x✝ ∈ {K | IsOpen K}
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : IsEmpty α
x✝ : ℕ
⊢ ↑↑μ ((fun x => ∅) x✝) < ⊤
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : IsEmpty α
⊢ ⋃ (i : ℕ), (fun x => ∅) i = univ
[PROOFSTEP]
simp
[GOAL]
case H.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
inhabit α
[GOAL]
case H.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
let S : Set (Set α) := {s | IsOpen s ∧ μ s < ∞}
[GOAL]
case H.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
obtain ⟨T, T_count, TS, hT⟩ : ∃ T : Set (Set α), T.Countable ∧ T ⊆ S ∧ ⋃₀ T = ⋃₀ S :=
  isOpen_sUnion_countable S fun s hs => hs.1
[GOAL]
case H.inr.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = ⋃₀ S
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
rw [μ.isTopologicalBasis_isOpen_lt_top.sUnion_eq] at hT 
[GOAL]
case H.inr.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
have T_ne : T.Nonempty := by
  by_contra h'T
  rw [not_nonempty_iff_eq_empty.1 h'T, sUnion_empty] at hT 
  simpa only [← hT] using mem_univ (default : α)
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
⊢ Set.Nonempty T
[PROOFSTEP]
by_contra h'T
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
h'T : ¬Set.Nonempty T
⊢ False
[PROOFSTEP]
rw [not_nonempty_iff_eq_empty.1 h'T, sUnion_empty] at hT 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ∅ = univ
h'T : ¬Set.Nonempty T
⊢ False
[PROOFSTEP]
simpa only [← hT] using mem_univ (default : α)
[GOAL]
case H.inr.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
obtain ⟨f, hf⟩ : ∃ f : ℕ → Set α, T = range f
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
⊢ ∃ f, T = range f
case H.inr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
exact T_count.exists_eq_range T_ne
[GOAL]
case H.inr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
have fS : ∀ n, f n ∈ S := by
  intro n
  apply TS
  rw [hf]
  exact mem_range_self n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
⊢ ∀ (n : ℕ), f n ∈ S
[PROOFSTEP]
intro n
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
n : ℕ
⊢ f n ∈ S
[PROOFSTEP]
apply TS
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
n : ℕ
⊢ f n ∈ T
[PROOFSTEP]
rw [hf]
[GOAL]
case a
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
n : ℕ
⊢ f n ∈ range f
[PROOFSTEP]
exact mem_range_self n
[GOAL]
case H.inr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
⊢ Nonempty (FiniteSpanningSetsIn μ {K | IsOpen K})
[PROOFSTEP]
refine'
  ⟨{  set := f
      set_mem := fun n => (fS n).1
      finite := fun n => (fS n).2
      spanning := _ }⟩
[GOAL]
case H.inr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
⊢ ⋃ (i : ℕ), f i = univ
[PROOFSTEP]
refine eq_univ_of_forall fun x => ?_
[GOAL]
case H.inr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
⊢ x ∈ ⋃ (i : ℕ), f i
[PROOFSTEP]
obtain ⟨t, tT, xt⟩ : ∃ t : Set α, t ∈ range f ∧ x ∈ t :=
  by
  have : x ∈ ⋃₀ T := by simp only [hT, mem_univ]
  simpa only [mem_sUnion, exists_prop, ← hf]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
⊢ ∃ t, t ∈ range f ∧ x ∈ t
[PROOFSTEP]
have : x ∈ ⋃₀ T := by simp only [hT, mem_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
⊢ x ∈ ⋃₀ T
[PROOFSTEP]
simp only [hT, mem_univ]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
this : x ∈ ⋃₀ T
⊢ ∃ t, t ∈ range f ∧ x ∈ t
[PROOFSTEP]
simpa only [mem_sUnion, exists_prop, ← hf]
[GOAL]
case H.inr.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
t : Set α
tT : t ∈ range f
xt : x ∈ t
⊢ x ∈ ⋃ (i : ℕ), f i
[PROOFSTEP]
obtain ⟨n, rfl⟩ : ∃ n : ℕ, f n = t := by simpa only using tT
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
t : Set α
tT : t ∈ range f
xt : x ∈ t
⊢ ∃ n, f n = t
[PROOFSTEP]
simpa only using tT
[GOAL]
case H.inr.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
m : MeasurableSpace α
μ : Measure α
inst✝ : IsLocallyFiniteMeasure μ
h✝ : Nonempty α
inhabited_h : Inhabited α
S : Set (Set α) := {s | IsOpen s ∧ ↑↑μ s < ⊤}
T : Set (Set α)
T_count : Set.Countable T
TS : T ⊆ S
hT : ⋃₀ T = univ
T_ne : Set.Nonempty T
f : ℕ → Set α
hf : T = range f
fS : ∀ (n : ℕ), f n ∈ S
x : α
n : ℕ
tT : f n ∈ range f
xt : x ∈ f n
⊢ x ∈ ⋃ (i : ℕ), f i
[PROOFSTEP]
exact mem_iUnion_of_mem _ xt
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
hs : MeasurableSet s
⊢ piecewise s f g =ᶠ[ae (Measure.restrict μ s)] f
[PROOFSTEP]
rw [ae_restrict_eq hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
hs : MeasurableSet s
⊢ piecewise s f g =ᶠ[ae μ ⊓ 𝓟 s] f
[PROOFSTEP]
exact (piecewise_eqOn s f g).eventuallyEq.filter_mono inf_le_right
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
hs : MeasurableSet s
⊢ piecewise s f g =ᶠ[ae (Measure.restrict μ sᶜ)] g
[PROOFSTEP]
rw [ae_restrict_eq hs.compl]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
hs : MeasurableSet s
⊢ piecewise s f g =ᶠ[ae μ ⊓ 𝓟 sᶜ] g
[PROOFSTEP]
exact (piecewise_eqOn_compl s f g).eventuallyEq.filter_mono inf_le_right
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
hst : s =ᶠ[ae μ] t
x : α
hx : x ∈ s ↔ x ∈ t
⊢ piecewise s f g x = piecewise t f g x
[PROOFSTEP]
simp [piecewise, hx]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ t ∈ Filter.map (indicator s f) (ae μ) ↔ t ∈ Filter.map f (ae (Measure.restrict μ s))
[PROOFSTEP]
simp_rw [mem_map, mem_ae_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (indicator s f ⁻¹' t)ᶜ = 0 ↔ ↑↑(Measure.restrict μ s) (f ⁻¹' t)ᶜ = 0
[PROOFSTEP]
rw [Measure.restrict_apply' hs, Set.indicator_preimage, Set.ite]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (f ⁻¹' t ∩ s ∪ 0 ⁻¹' t \ s)ᶜ = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
simp_rw [Set.compl_union, Set.compl_inter]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ (0 ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
change μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun _ => (0 : β)) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun x => 0) ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
simp only [ht, ← Set.compl_eq_univ_diff, compl_compl, Set.compl_union, if_true, Set.preimage_const]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ s) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
simp_rw [Set.union_inter_distrib_right, Set.compl_inter_self s, Set.union_empty]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : ¬0 ∈ t
⊢ t ∈ Filter.map (indicator s f) (ae μ) ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
[PROOFSTEP]
rw [mem_map, mem_ae_iff, Set.indicator_preimage, Set.ite, Set.compl_union, Set.compl_inter]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : ¬0 ∈ t
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ (0 ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
[PROOFSTEP]
change μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun _ => (0 : β)) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : ¬0 ∈ t
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun x => 0) ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
[PROOFSTEP]
simp only [ht, if_false, Set.compl_empty, Set.empty_diff, Set.inter_univ, Set.preimage_const]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
⊢ Filter.map f (ae (Measure.restrict μ s)) ≤ Filter.map (indicator s f) (ae μ)
[PROOFSTEP]
intro t
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
t : Set β
⊢ t ∈ Filter.map (indicator s f) (ae μ) → t ∈ Filter.map f (ae (Measure.restrict μ s))
[PROOFSTEP]
by_cases ht : (0 : β) ∈ t
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
t : Set β
ht : 0 ∈ t
⊢ t ∈ Filter.map (indicator s f) (ae μ) → t ∈ Filter.map f (ae (Measure.restrict μ s))
[PROOFSTEP]
rw [mem_map_indicator_ae_iff_mem_map_restrict_ae_of_zero_mem ht hs]
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
t : Set β
ht : 0 ∈ t
⊢ t ∈ Filter.map f (ae (Measure.restrict μ s)) → t ∈ Filter.map f (ae (Measure.restrict μ s))
[PROOFSTEP]
exact id
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
t : Set β
ht : ¬0 ∈ t
⊢ t ∈ Filter.map (indicator s f) (ae μ) → t ∈ Filter.map f (ae (Measure.restrict μ s))
[PROOFSTEP]
rw [mem_map_indicator_ae_iff_of_zero_nmem ht, mem_map_restrict_ae_iff hs]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
t : Set β
ht : ¬0 ∈ t
⊢ ↑↑μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0 → ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
[PROOFSTEP]
exact fun h => measure_mono_null ((Set.inter_subset_left _ _).trans (Set.subset_union_left _ _)) h
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : f =ᶠ[ae (Measure.restrict μ sᶜ)] 0
⊢ indicator s f =ᶠ[ae μ] f
[PROOFSTEP]
rw [Filter.EventuallyEq, ae_restrict_iff' hs.compl] at hf 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ sᶜ → f x = OfNat.ofNat 0 x
⊢ indicator s f =ᶠ[ae μ] f
[PROOFSTEP]
filter_upwards [hf] with x hx
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ sᶜ → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ sᶜ → f x = OfNat.ofNat 0 x
⊢ indicator s f x = f x
[PROOFSTEP]
by_cases hxs : x ∈ s
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ sᶜ → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ sᶜ → f x = OfNat.ofNat 0 x
hxs : x ∈ s
⊢ indicator s f x = f x
[PROOFSTEP]
simp only [hxs, Set.indicator_of_mem]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ sᶜ → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ sᶜ → f x = OfNat.ofNat 0 x
hxs : ¬x ∈ s
⊢ indicator s f x = f x
[PROOFSTEP]
simp only [hx hxs, Pi.zero_apply, Set.indicator_apply_eq_zero, eq_self_iff_true, imp_true_iff]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : f =ᶠ[ae (Measure.restrict μ s)] 0
⊢ indicator s f =ᶠ[ae μ] 0
[PROOFSTEP]
rw [Filter.EventuallyEq, ae_restrict_iff' hs] at hf 
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = OfNat.ofNat 0 x
⊢ indicator s f =ᶠ[ae μ] 0
[PROOFSTEP]
filter_upwards [hf] with x hx
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ s → f x = OfNat.ofNat 0 x
⊢ indicator s f x = OfNat.ofNat 0 x
[PROOFSTEP]
by_cases hxs : x ∈ s
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ s → f x = OfNat.ofNat 0 x
hxs : x ∈ s
⊢ indicator s f x = OfNat.ofNat 0 x
[PROOFSTEP]
simp only [hxs, hx hxs, Set.indicator_of_mem]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = OfNat.ofNat 0 x
x : α
hx : x ∈ s → f x = OfNat.ofNat 0 x
hxs : ¬x ∈ s
⊢ indicator s f x = OfNat.ofNat 0 x
[PROOFSTEP]
simp [hx, hxs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
⊢ f =ᶠ[ae (Measure.restrict μ s)] g ↔ indicator s f =ᶠ[ae μ] indicator s g
[PROOFSTEP]
rw [Filter.EventuallyEq, ae_restrict_iff' hs]
[GOAL]
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
⊢ (∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x) ↔ indicator s f =ᶠ[ae μ] indicator s g
[PROOFSTEP]
refine' ⟨fun h => _, fun h => _⟩
[GOAL]
case refine'_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
⊢ indicator s f =ᶠ[ae μ] indicator s g
[PROOFSTEP]
filter_upwards [h] with x hx
[GOAL]
case refine'_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : indicator s f =ᶠ[ae μ] indicator s g
⊢ ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
[PROOFSTEP]
filter_upwards [h] with x hx
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
⊢ indicator s f x = indicator s g x
[PROOFSTEP]
by_cases hxs : x ∈ s
[GOAL]
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
hxs : x ∈ s
⊢ indicator s f x = indicator s g x
[PROOFSTEP]
simp [hxs, hx hxs]
[GOAL]
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x = g x
x : α
hx : x ∈ s → f x = g x
hxs : ¬x ∈ s
⊢ indicator s f x = indicator s g x
[PROOFSTEP]
simp [hxs]
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : indicator s f =ᶠ[ae μ] indicator s g
x : α
hx : indicator s f x = indicator s g x
⊢ x ∈ s → f x = g x
[PROOFSTEP]
intro hxs
[GOAL]
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f : α → β
inst✝ : Zero β
g : α → β
hs : MeasurableSet s
h : indicator s f =ᶠ[ae μ] indicator s g
x : α
hx : indicator s f x = indicator s g x
hxs : x ∈ s
⊢ f x = g x
[PROOFSTEP]
simpa [hxs] using hx
