-- Mathlib/MeasureTheory/VectorMeasure/Basic.lean
theorem restrict_le_restrict_countable_iUnion [Countable β] {f : β → Set α}
    (hf₁ : ∀ b, MeasurableSet (f b)) (hf₂ : ∀ b, v ≤[f b] w) : v ≤[⋃ b, f b] w

Proof state:
case intro.refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ v ≤[⋃ b ∈ Encodable.decode₂ β n, f b] w

Tactic:
rcases Encodable.decode₂ β n with - | b

Result:
case intro.refine_2.none
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ v ≤[⋃ b ∈ none, f b] w

case intro.refine_2.some
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
b : β
⊢ v ≤[⋃ b_1 ∈ some b, f b_1] w

Proof state:
case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ v ≤[⋃ b, f b] w

Tactic:
rw [← Encodable.iUnion_decode₂]

Result:
case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ v ≤[⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b] w

Proof state:
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
⊢ v ≤[⋃ b, f b] w

Tactic:
cases nonempty_encodable β

Result:
case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ v ≤[⋃ b, f b] w

Proof state:
case intro.refine_2.some
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
b : β
⊢ v ≤[⋃ b_1 ∈ some b, f b_1] w

Tactic:
simp [hf₂ b]

Result:
no goals

Proof state:
case intro.refine_2.none
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ v ≤[⋃ b ∈ none, f b] w

Tactic:
simp

Result:
no goals

Proof state:
case intro.refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

Tactic:
measurability

Result:
no goals

Proof state:
case intro.refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ ∀ (n : ℕ), MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

Tactic:
intro n

Result:
case intro.refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

Proof state:
case intro.refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ ∀ (n : ℕ), v ≤[⋃ b ∈ Encodable.decode₂ β n, f b] w

Tactic:
intro n

Result:
case intro.refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
n : ℕ
⊢ v ≤[⋃ b ∈ Encodable.decode₂ β n, f b] w

Proof state:
case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ v ≤[⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b] w

Tactic:
refine restrict_le_restrict_iUnion v w ?_ ?_

Result:
case intro.refine_1
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ ∀ (n : ℕ), MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

case intro.refine_2
α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝³ : TopologicalSpace M
inst✝² : OrderedAddCommMonoid M
inst✝¹ : OrderClosedTopology M
v w : VectorMeasure α M
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), v ≤[f b] w
val✝ : Encodable β
⊢ ∀ (n : ℕ), v ≤[⋃ b ∈ Encodable.decode₂ β n, f b] w