Theorem: MeasurableEmbedding.prod_mk_right
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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
⊢ Injective fun y => (f y, x)
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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
y y' : γ
⊢ (fun y => (f y, x)) y = (fun y => (f y, x)) 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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
y y' : γ
⊢ (fun y => (f y, x)) y = (fun y => (f y, x)) 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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
y y' : γ
⊢ f y = f y' → y = y'
tactic: simp only [Prod.mk.injEq, and_true]
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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
⊢ ∀ ⦃s : Set γ⦄, MeasurableSet s → MeasurableSet ((fun y => (f y, x)) '' 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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet ((fun y => (f y, x)) '' 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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet ((fun y => (f y, x)) '' 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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
s : Set γ
hs : MeasurableSet s
⊢ (fun y => (f y, x)) '' s = (f '' s) ×ˢ {x}
tactic: convert (hf.measurableSet_image.mpr hs).prod (MeasurableSet.singleton x)
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 γ
f : γ → β
hf : MeasurableEmbedding f
x : α
s : Set γ
hs : MeasurableSet s
⊢ (fun y => (f y, x)) '' s = (f '' s) ×ˢ {x}
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 γ
f : γ → β
hf : MeasurableEmbedding f
x✝ : α
s : Set γ
hs : MeasurableSet s
x : β × α
⊢ x ∈ (fun y => (f y, x✝)) '' s ↔ x ∈ (f '' s) ×ˢ {x✝}
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 γ
f : γ → β
hf : MeasurableEmbedding f
x✝ : α
s : Set γ
hs : MeasurableSet s
x : β × α
⊢ x ∈ (fun y => (f y, x✝)) '' s ↔ x ∈ (f '' s) ×ˢ {x✝}
state_after: no goals
tactic: simp