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

tactic: ext a s hs
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 κ
⊢ η ∘ₖ κ = snd (κ ⊗ₖ prodMkLeft α η)
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 = ((snd (κ ⊗ₖ prodMkLeft α η)) a) 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
⊢ ((η ∘ₖ κ) a) s = ((snd (κ ⊗ₖ prodMkLeft α η)) 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: 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

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: simp only [Set.mem_setOf_eq, Set.setOf_mem_eq, prodMkLeft_apply' _ _ s]
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: exact measurable_snd hs
state_before: 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: no goals