l3lab/ntp-mathlib huggingface dataset:
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · 

Proof state:
case 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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
n : ℕ
⊢ MeasurableSet (a ∩ disjointed f n)

Next tactic:
exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · 

Proof state:
case 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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
n : ℕ
⊢ a ∩ disjointed f n ⊆ f n

Next tactic:
exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · 

Proof state:
case refine'_3
α : 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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ Summable fun i => ↑v (a ∩ disjointed f i)

Next tactic:
refine' (v.m_iUnion (fun n => _) _).summable
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · 

Proof state:
case refine'_3.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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
n : ℕ
⊢ MeasurableSet (a ∩ disjointed f n)

Next tactic:
exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · 

Proof state:
case refine'_3.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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ Pairwise (Disjoint on fun i => a ∩ disjointed f i)

Next tactic:
exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · 

Proof state:
case refine'_4
α : 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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ Summable fun i => ↑w (a ∩ disjointed f i)

Next tactic:
refine' (w.m_iUnion (fun n => _) _).summable
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · refine' (w.m_iUnion (fun n => _) _).summable
    · 

Proof state:
case refine'_4.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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
n : ℕ
⊢ MeasurableSet (a ∩ disjointed f n)

Next tactic:
exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · refine' (w.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · 

Proof state:
case refine'_4.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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ Pairwise (Disjoint on fun i => a ∩ disjointed f i)

Next tactic:
exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · refine' (w.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · 

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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ ∀ (i : ℕ), MeasurableSet (a ∩ disjointed f i)

Next tactic:
intro n
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · refine' (w.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · intro n
    

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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
n : ℕ
⊢ MeasurableSet (a ∩ disjointed f n)

Next tactic:
exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
theorem restrict_le_restrict_iUnion {f : ℕ → Set α} (hf₁ : ∀ n, MeasurableSet (f n))
    (hf₂ : ∀ n, v ≤[f n] w) : v ≤[⋃ n, f n] w := by
  refine' restrict_le_restrict_of_subset_le v w fun a ha₁ ha₂ => _
  have ha₃ : ⋃ n, a ∩ disjointed f n = a := by
    rwa [← Set.inter_iUnion, iUnion_disjointed, Set.inter_eq_left]
  have ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n) :=
    (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  rw [← ha₃, v.of_disjoint_iUnion_nat _ ha₄, w.of_disjoint_iUnion_nat _ ha₄]
  refine' tsum_le_tsum (fun n => (restrict_le_restrict_iff v w (hf₁ n)).1 (hf₂ n) _ _) _ _
  · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · exact Set.Subset.trans (Set.inter_subset_right _ _) (disjointed_subset _ _)
  · refine' (v.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · refine' (w.m_iUnion (fun n => _) _).summable
    · exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
    · exact (disjoint_disjointed _).mono fun i j => Disjoint.mono inf_le_right inf_le_right
  · intro n
    exact ha₁.inter (MeasurableSet.disjointed hf₁ n)
  · 

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
i j : Set α
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ : ∀ (n : ℕ), restrict v (f n) ≤ restrict w (f n)
a : Set α
ha₁ : MeasurableSet a
ha₂ : a ⊆ ⋃ n, f n
ha₃ : ⋃ n, a ∩ disjointed f n = a
ha₄ : Pairwise (Disjoint on fun n => a ∩ disjointed f n)
⊢ ∀ (i : ℕ), MeasurableSet (a ∩ disjointed f i)

Next tactic:
exact fun n => ha₁.inter (MeasurableSet.disjointed hf₁ n)
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 := by
  

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
⊢ restrict v (⋃ b, f b) ≤ restrict w (⋃ b, f b)

Next tactic:
cases nonempty_encodable β
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 := by
  cases nonempty_encodable β
  

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
⊢ restrict v (⋃ b, f b) ≤ restrict w (⋃ b, f b)

Next tactic:
rw [← Encodable.iUnion_decode₂]
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
⊢ restrict v (⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b) ≤ restrict w (⋃ i, ⋃ b ∈ Encodable.decode₂ β i, f b)

Next tactic:
refine' restrict_le_restrict_iUnion v w _ _
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · 

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
⊢ ∀ (n : ℕ), MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

Next tactic:
intro n
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · intro n
    

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
n : ℕ
⊢ MeasurableSet (⋃ b ∈ Encodable.decode₂ β n, f b)

Next tactic:
measurability
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · intro n
    measurability
  · 

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
⊢ ∀ (n : ℕ), restrict v (⋃ b ∈ Encodable.decode₂ β n, f b) ≤ restrict w (⋃ b ∈ Encodable.decode₂ β n, f b)

Next tactic:
intro n
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · intro n
    measurability
  · intro n
    

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
n : ℕ
⊢ restrict v (⋃ b ∈ Encodable.decode₂ β n, f b) ≤ restrict w (⋃ b ∈ Encodable.decode₂ β n, f b)

Next tactic:
cases' Encodable.decode₂ β n with b
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · intro n
    measurability
  · intro n
    cases' Encodable.decode₂ β n with b
    · 

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
n : ℕ
⊢ restrict v (⋃ b ∈ none, f b) ≤ restrict w (⋃ b ∈ none, f b)

Next tactic:
simp
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 := by
  cases nonempty_encodable β
  rw [← Encodable.iUnion_decode₂]
  refine' restrict_le_restrict_iUnion v w _ _
  · intro n
    measurability
  · intro n
    cases' Encodable.decode₂ β n with b
    · simp
    · 

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
i j : Set α
inst✝ : Countable β
f : β → Set α
hf₁ : ∀ (b : β), MeasurableSet (f b)
hf₂ : ∀ (b : β), restrict v (f b) ≤ restrict w (f b)
val✝ : Encodable β
n : ℕ
b : β
⊢ restrict v (⋃ b_1 ∈ some b, f b_1) ≤ restrict w (⋃ b_1 ∈ some b, f b_1)

Next tactic:
simp [hf₂ b]
theorem restrict_le_restrict_union (hi₁ : MeasurableSet i) (hi₂ : v ≤[i] w) (hj₁ : MeasurableSet j)
    (hj₂ : v ≤[j] w) : v ≤[i ∪ j] w := by
  

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
i j : Set α
hi₁ : MeasurableSet i
hi₂ : restrict v i ≤ restrict w i
hj₁ : MeasurableSet j
hj₂ : restrict v j ≤ restrict w j
⊢ restrict v (i ∪ j) ≤ restrict w (i ∪ j)

Next tactic:
rw [Set.union_eq_iUnion]