Theorem: ProbabilityTheory.kernel.IsSFiniteKernel.withDensity
File: Mathlib/Probability/Kernel/WithDensity.lean

tactic: have h_eq_sum : withDensity κ f = kernel.sum fun i => withDensity (seq κ i) f := by
  rw [← withDensity_kernel_sum _ _]
  congr
  exact (kernel_sum_seq κ).symm
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ IsSFiniteKernel (kernel.withDensity κ f)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
h_eq_sum : kernel.withDensity κ f = kernel.sum fun i => kernel.withDensity (seq κ i) f
⊢ IsSFiniteKernel (kernel.withDensity κ f)

tactic: rw [h_eq_sum]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
h_eq_sum : kernel.withDensity κ f = kernel.sum fun i => kernel.withDensity (seq κ i) f
⊢ IsSFiniteKernel (kernel.withDensity κ f)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
h_eq_sum : kernel.withDensity κ f = kernel.sum fun i => kernel.withDensity (seq κ i) f
⊢ IsSFiniteKernel (kernel.sum fun i => kernel.withDensity (seq κ i) f)

tactic: exact isSFiniteKernel_sum fun n =>
  isSFiniteKernel_withDensity_of_isFiniteKernel (seq κ n) hf_ne_top
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
h_eq_sum : kernel.withDensity κ f = kernel.sum fun i => kernel.withDensity (seq κ i) f
⊢ IsSFiniteKernel (kernel.sum fun i => kernel.withDensity (seq κ i) f)
state_after: no goals

tactic: rw [← withDensity_kernel_sum _ _]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ kernel.withDensity κ f = kernel.sum fun i => kernel.withDensity (seq κ i) f
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ kernel.withDensity κ f = kernel.withDensity (kernel.sum (seq κ)) f

tactic: congr
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ kernel.withDensity κ f = kernel.withDensity (kernel.sum (seq κ)) f
state_after: case e_κ
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ κ = kernel.sum (seq κ)

tactic: exact (kernel_sum_seq κ).symm
state_before: case e_κ
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
hf_ne_top : ∀ (a : α) (b : β), f a b ≠ ⊤
⊢ κ = kernel.sum (seq κ)
state_after: no goals