Theorem: ProbabilityTheory.Kernel.comp_eq_snd_compProd
File: Mathlib/Probability/Kernel/Composition.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
⊢ η ∘ₖ κ = (κ ⊗ₖ prodMkLeft α η).snd
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ((η ∘ₖ κ) a) s = ((κ ⊗ₖ prodMkLeft α η).snd a) s
tactic: ext a s hs
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ((η ∘ₖ κ) a) s = ((κ ⊗ₖ prodMkLeft α η).snd a) s
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η b) s ∂κ a = ∫⁻ (b : β), ((prodMkLeft α η) (a, b)) {c | (b, c) ∈ {p | p.2 ∈ s}} ∂κ a

case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.2 ∈ s}
tactic: rw [comp_apply' _ _ _ hs, snd_apply' _ _ hs, compProd_apply]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η b) s ∂κ a = ∫⁻ (b : β), ((prodMkLeft α η) (a, b)) {c | (b, c) ∈ {p | p.2 ∈ s}} ∂κ a

case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.2 ∈ s}
state_after: case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.2 ∈ s}

case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η b) s ∂κ a = ∫⁻ (b : β), ((prodMkLeft α η) (a, b)) {c | (b, c) ∈ {p | p.2 ∈ s}} ∂κ a
tactic: swap
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
f : β → γ
g : γ → α
η : Kernel β γ
inst✝¹ : IsSFiniteKernel η
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
a : α
s : Set γ
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η b) s ∂κ a = ∫⁻ (b : β), ((prodMkLeft α η) (a, b)) {c | (b, c) ∈ {p | p.2 ∈ s}} ∂κ a
state_after: no goals
tactic: simp only [Set.mem_setOf_eq, Set.setOf_mem_eq, prodMkLeft_apply' _ _ s]