Theorem: ProbabilityTheory.Kernel.compProd_eq_sum_compProd_right
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 α β
η : Kernel (α × β) γ
inst✝ : 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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
hκ : IsSFiniteKernel κ
⊢ (Kernel.sum fun n => Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) = 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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
hκ : IsSFiniteKernel κ
⊢ (Kernel.sum fun n => Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) =
    Kernel.sum fun n => Kernel.sum fun n_1 => κ.seq n_1 ⊗ₖ η.seq n
tactic: simp_rw [compProd_eq_sum_compProd_left κ _]
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 α β
η : Kernel (α × β) γ
inst✝ : IsSFiniteKernel η
hκ : IsSFiniteKernel κ
⊢ (Kernel.sum fun n => Kernel.sum fun m => κ.seq n ⊗ₖ η.seq m) =
    Kernel.sum fun n => Kernel.sum fun n_1 => κ.seq n_1 ⊗ₖ η.seq n
state_after: no goals
tactic: rw [Kernel.sum_comm]