Theorem: generateFrom_prod_eq
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: apply le_antisymm
state_before: α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ Prod.instMeasurableSpace = generateFrom (image2 (fun x x_1 => x ×ˢ x_1) C D)
state_after: case a
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ Prod.instMeasurableSpace ≤ generateFrom (image2 (fun x x_1 => x ×ˢ x_1) C D)

case a
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ generateFrom (image2 (fun x x_1 => x ×ˢ x_1) C D) ≤ Prod.instMeasurableSpace

tactic: refine sup_le ?_ ?_ <;> rw [comap_generateFrom] <;> apply generateFrom_le <;>
  rintro _ ⟨s, hs, rfl⟩
state_before: case a
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ Prod.instMeasurableSpace ≤ generateFrom (image2 (fun x x_1 => x ×ˢ x_1) C D)
state_after: case a.refine_1.h.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
⊢ MeasurableSet (Prod.fst ⁻¹' s)

case a.refine_2.h.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
⊢ MeasurableSet (Prod.snd ⁻¹' s)

tactic: rcases hD with ⟨t, h1t, h2t⟩
state_before: case a.refine_1.h.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
⊢ MeasurableSet (Prod.fst ⁻¹' s)
state_after: case a.refine_1.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (Prod.fst ⁻¹' s)

tactic: rw [← prod_univ, ← h2t, prod_iUnion]
state_before: case a.refine_1.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (Prod.fst ⁻¹' s)
state_after: case a.refine_1.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (⋃ i, s ×ˢ t i)

tactic: apply MeasurableSet.iUnion
state_before: case a.refine_1.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (⋃ i, s ×ˢ t i)
state_after: case a.refine_1.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ ∀ (b : ℕ), MeasurableSet (s ×ˢ t b)

tactic: intro n
state_before: case a.refine_1.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
⊢ ∀ (b : ℕ), MeasurableSet (s ×ˢ t b)
state_after: case a.refine_1.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
n : ℕ
⊢ MeasurableSet (s ×ˢ t n)

tactic: apply measurableSet_generateFrom
state_before: case a.refine_1.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
n : ℕ
⊢ MeasurableSet (s ×ˢ t n)
state_after: case a.refine_1.h.intro.intro.intro.intro.h.ht
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
n : ℕ
⊢ s ×ˢ t n ∈ image2 (fun x x_1 => x ×ˢ x_1) C D

tactic: exact ⟨s, hs, t n, h1t n, rfl⟩
state_before: case a.refine_1.h.intro.intro.intro.intro.h.ht
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
s : Set α
hs : s ∈ C
t : ℕ → Set β
h1t : ∀ (n : ℕ), t n ∈ D
h2t : ⋃ n, t n = univ
n : ℕ
⊢ s ×ˢ t n ∈ image2 (fun x x_1 => x ×ˢ x_1) C D
state_after: no goals

tactic: rcases hC with ⟨t, h1t, h2t⟩
state_before: case a.refine_2.h.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
⊢ MeasurableSet (Prod.snd ⁻¹' s)
state_after: case a.refine_2.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (Prod.snd ⁻¹' s)

tactic: rw [← univ_prod, ← h2t, iUnion_prod_const]
state_before: case a.refine_2.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (Prod.snd ⁻¹' s)
state_after: case a.refine_2.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (⋃ i, t i ×ˢ s)

tactic: apply MeasurableSet.iUnion
state_before: case a.refine_2.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ MeasurableSet (⋃ i, t i ×ˢ s)
state_after: case a.refine_2.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ ∀ (b : ℕ), MeasurableSet (t b ×ˢ s)

tactic: rintro n
state_before: case a.refine_2.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
⊢ ∀ (b : ℕ), MeasurableSet (t b ×ˢ s)
state_after: case a.refine_2.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
n : ℕ
⊢ MeasurableSet (t n ×ˢ s)

tactic: apply measurableSet_generateFrom
state_before: case a.refine_2.h.intro.intro.intro.intro.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
n : ℕ
⊢ MeasurableSet (t n ×ˢ s)
state_after: case a.refine_2.h.intro.intro.intro.intro.h.ht
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
n : ℕ
⊢ t n ×ˢ s ∈ image2 (fun x x_1 => x ×ˢ x_1) C D

tactic: exact mem_image2_of_mem (h1t n) hs
state_before: case a.refine_2.h.intro.intro.intro.intro.h.ht
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hD : IsCountablySpanning D
s : Set β
hs : s ∈ D
t : ℕ → Set α
h1t : ∀ (n : ℕ), t n ∈ C
h2t : ⋃ n, t n = univ
n : ℕ
⊢ t n ×ˢ s ∈ image2 (fun x x_1 => x ×ˢ x_1) C D
state_after: no goals

tactic: apply generateFrom_le
state_before: case a
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ generateFrom (image2 (fun x x_1 => x ×ˢ x_1) C D) ≤ Prod.instMeasurableSpace
state_after: case a.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ ∀ t ∈ image2 (fun x x_1 => x ×ˢ x_1) C D, MeasurableSet t

tactic: rintro _ ⟨s, hs, t, ht, rfl⟩
state_before: case a.h
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
⊢ ∀ t ∈ image2 (fun x x_1 => x ×ˢ x_1) C D, MeasurableSet t
state_after: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet ((fun x x_1 => x ×ˢ x_1) s t)

tactic: dsimp only
state_before: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet ((fun x x_1 => x ×ˢ x_1) s t)
state_after: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet (s ×ˢ t)

tactic: rw [prod_eq]
state_before: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet (s ×ˢ t)
state_after: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet (Prod.fst ⁻¹' s ∩ Prod.snd ⁻¹' t)

tactic: apply (measurable_fst _).inter (measurable_snd _)
state_before: case a.h.intro.intro.intro.intro
α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet (Prod.fst ⁻¹' s ∩ Prod.snd ⁻¹' t)
state_after: α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet s

α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet t

tactic: exact measurableSet_generateFrom hs
state_before: α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet s
state_after: no goals

tactic: exact measurableSet_generateFrom ht
state_before: α✝ : Type u_1
α' : Type u_2
β✝ : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁵ : MeasurableSpace α✝
inst✝⁴ : MeasurableSpace α'
inst✝³ : MeasurableSpace β✝
inst✝² : MeasurableSpace β'
inst✝¹ : MeasurableSpace γ
μ μ' : Measure α✝
ν ν' : Measure β✝
τ : Measure γ
inst✝ : NormedAddCommGroup E
α : Type u_7
β : Type u_8
C : Set (Set α)
D : Set (Set β)
hC : IsCountablySpanning C
hD : IsCountablySpanning D
s : Set α
hs : s ∈ C
t : Set β
ht : t ∈ D
⊢ MeasurableSet t
state_after: no goals