Theorem: ProbabilityTheory.Kernel.compProd_eq_sum_compProd_left
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 γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : ¬IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η
tactic: by_cases h : IsSFiniteKernel η
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : ¬IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : ¬IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η

case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η
tactic: swap
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ κ ⊗ₖ η = Kernel.sum fun n => κ.seq n ⊗ₖ η
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ (Kernel.sum fun n => Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) = Kernel.sum fun n => κ.seq n ⊗ₖ η
tactic: rw [compProd_eq_sum_compProd]
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
⊢ (Kernel.sum fun n => Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) = Kernel.sum fun n => κ.seq n ⊗ₖ η
state_after: case pos.e_κ.h.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
n : ℕ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) a) s = ((κ.seq n ⊗ₖ η) a) s
tactic: congr with n a s hs
state_before: case pos.e_κ.h.h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
s✝ : Set (β × γ)
κ : Kernel α β
inst✝ : IsSFiniteKernel κ
η : Kernel (α × β) γ
h : IsSFiniteKernel η
n : ℕ
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) a) s = ((κ.seq n ⊗ₖ η) a) s
state_after: no goals
tactic: simp_rw [Kernel.sum_apply' _ _ hs, compProd_apply_eq_compProdFun _ _ _ hs,
    compProdFun_tsum_right _ η a hs]