Theorem: MeasureTheory.measure_iInter_eq_iInf'
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: let s := fun i ↦ ⋂ j ≤ i, f j
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
⊢ μ (⋂ i, f i) = ⨅ i, μ (⋂ j, ⋂ (_ : j ≤ i), f j)
state_after: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
⊢ μ (⋂ i, f i) = ⨅ i, μ (⋂ j, ⋂ (_ : j ≤ i), f j)

tactic: have ms : ∀ i, MeasurableSet (s i) :=
  fun i ↦ MeasurableSet.biInter (countable_univ.mono <| subset_univ _) fun i _ ↦ h i
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
⊢ μ (⋂ i, f i) = ⨅ i, μ (⋂ j, ⋂ (_ : j ≤ i), f j)
state_after: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
⊢ μ (⋂ i, f i) = ⨅ i, μ (⋂ j, ⋂ (_ : j ≤ i), f j)

tactic: exact iInter_eq ▸ measure_iInter_eq_iInf ms hd hfin'
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
hfin' : ∃ i, μ (s i) ≠ ⊤
⊢ μ (⋂ i, f i) = ⨅ i, μ (⋂ j, ⋂ (_ : j ≤ i), f j)
state_after: no goals

tactic: ext x
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
⊢ ⋂ i, f i = ⋂ i, s i
state_after: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ x ∈ ⋂ i, f i ↔ x ∈ ⋂ i, s i

tactic: simp [s]
state_before: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ x ∈ ⋂ i, f i ↔ x ∈ ⋂ i, s i
state_after: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i : ι), x ∈ f i) ↔ ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1

tactic: constructor
state_before: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i : ι), x ∈ f i) ↔ ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1
state_after: case h.mp
α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i : ι), x ∈ f i) → ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1

case h.mpr
α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1) → ∀ (i : ι), x ∈ f i

tactic: exact fun h _ j _ ↦ h j
state_before: case h.mp
α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i : ι), x ∈ f i) → ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1
state_after: no goals

tactic: intro h i
state_before: case h.mpr
α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
⊢ (∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1) → ∀ (i : ι), x ∈ f i
state_after: case h.mpr
α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h✝ : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
h : ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1
i : ι
⊢ x ∈ f i

tactic: exact h j i rij
state_before: case h.mpr.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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h✝ : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
x : α
h : ∀ (i i_1 : ι), i_1 ≤ i → x ∈ f i_1
i j : ι
rij : i ≤ j
⊢ x ∈ f i
state_after: no goals

tactic: intro i j
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
⊢ Directed (fun x x_1 => x ⊇ x_1) s
state_after: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
i j : ι
⊢ ∃ z, (fun x x_1 => x ⊇ x_1) (s i) (s z) ∧ (fun x x_1 => x ⊇ x_1) (s j) (s z)

tactic: exact ⟨k, biInter_subset_biInter_left fun j rji ↦ le_trans rji rik,
  biInter_subset_biInter_left fun i rij ↦ le_trans rij rjk⟩
state_before: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
i j k : ι
rik : i ≤ k
rjk : j ≤ k
⊢ ∃ z, (fun x x_1 => x ⊇ x_1) (s i) (s z) ∧ (fun x x_1 => x ⊇ x_1) (s j) (s z)
state_after: no goals

tactic: rcases hfin with ⟨i, hi⟩
state_before: α✝ : 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
hfin : ∃ i, μ (f i) ≠ ⊤
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
⊢ ∃ i, μ (s i) ≠ ⊤
state_after: 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
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
i : ι
hi : μ (f i) ≠ ⊤
⊢ ∃ i, μ (s i) ≠ ⊤

tactic: exact ⟨j, ne_top_of_le_ne_top hi <| measure_mono <| biInter_subset_of_mem rij⟩
state_before: 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
m : MeasurableSpace α✝
μ✝ μ₁ μ₂ : Measure α✝
s✝ s₁ s₂ t : Set α✝
α : Type u_8
ι : Type u_9
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : Countable ι
inst✝¹ : Preorder ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
f : ι → Set α
h : ∀ (i : ι), MeasurableSet (f i)
s : ι → Set α := fun i => ⋂ j, ⋂ (_ : j ≤ i), f j
iInter_eq : ⋂ i, f i = ⋂ i, s i
ms : ∀ (i : ι), MeasurableSet (s i)
hd : Directed (fun x x_1 => x ⊇ x_1) s
i : ι
hi : μ (f i) ≠ ⊤
j : ι
rij : i ≤ j
⊢ ∃ i, μ (s i) ≠ ⊤
state_after: no goals