Theorem: MeasurableEmbedding.prod_mk_left
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

Proof steps:
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
⊢ Injective fun y => (x, f y)
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
y y' : γ
⊢ (fun y => (x, f y)) y = (fun y => (x, f y)) y' → y = y'
tactic: intro y y'
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
y y' : γ
⊢ (fun y => (x, f y)) y = (fun y => (x, f y)) y' → y = y'
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
y y' : γ
⊢ f y = f y' → y = y'
tactic: simp only [Prod.mk.injEq, true_and]
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
y y' : γ
⊢ f y = f y' → y = y'
state_after: no goals
tactic: exact fun h ↦ hf.injective h
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
⊢ ∀ ⦃s : Set γ⦄, MeasurableSet s → MeasurableSet ((fun y => (x, f y)) '' s)
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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet ((fun y => (x, f y)) '' s)
tactic: intro s 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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet ((fun y => (x, f y)) '' s)
state_after: case h.e'_3
α : 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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
⊢ (fun y => (x, f y)) '' s = {x} ×ˢ (f '' s)
tactic: convert (MeasurableSet.singleton x).prod (hf.measurableSet_image.mpr hs)
state_before: case h.e'_3
α : 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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
⊢ (fun y => (x, f y)) '' s = {x} ×ˢ (f '' s)
state_after: case h.e'_3.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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x✝ : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
x : α × β
⊢ x ∈ (fun y => (x✝, f y)) '' s ↔ x ∈ {x✝} ×ˢ (f '' s)
tactic: ext x
state_before: case h.e'_3.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
inst✝ : MeasurableSingletonClass α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
x✝ : α
f : γ → β
hf : MeasurableEmbedding f
s : Set γ
hs : MeasurableSet s
x : α × β
⊢ x ∈ (fun y => (x✝, f y)) '' s ↔ x ∈ {x✝} ×ˢ (f '' s)
state_after: no goals
tactic: simp