Theorem: ProbabilityTheory.integral_compProd
File: Mathlib/Probability/Kernel/IntegralCompProd.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
⊢ ∀ {f : β × γ → E},
    Integrable f ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f (x, y) ∂η (a, x) ∂κ a
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : ¬CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a
tactic: by_cases hE : CompleteSpace E
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : ¬CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : ¬CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a

case pos
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a
tactic: swap
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ Integrable f✝ ((κ ⊗ₖ η) a) → ∫ (z : β × γ), f✝ z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f✝ (x, y) ∂η (a, x) ∂κ a
state_after: case pos.h_ind
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ ∀ (c : E) ⦃s : Set (β × γ)⦄,
    MeasurableSet s →
      ((κ ⊗ₖ η) a) s < ⊤ →
        ∫ (z : β × γ), s.indicator (fun x => c) z ∂(κ ⊗ₖ η) a =
          ∫ (x : β), ∫ (y : γ), s.indicator (fun x => c) (x, y) ∂η (a, x) ∂κ a

case pos.h_add
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ ∀ ⦃f g : β × γ → E⦄,
    Disjoint (support f) (support g) →
      Integrable f ((κ ⊗ₖ η) a) →
        Integrable g ((κ ⊗ₖ η) a) →
          ∫ (z : β × γ), f z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f (x, y) ∂η (a, x) ∂κ a →
            ∫ (z : β × γ), g z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), g (x, y) ∂η (a, x) ∂κ a →
              ∫ (z : β × γ), (f + g) z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), (f + g) (x, y) ∂η (a, x) ∂κ a

case pos.h_closed
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ IsClosed {f | ∫ (z : β × γ), ↑↑f z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), ↑↑f (x, y) ∂η (a, x) ∂κ a}

case pos.h_ae
α : Type u_1
β : Type u_2
γ : Type u_3
E : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁶ : NormedAddCommGroup E
κ : Kernel α β
inst✝⁵ : IsSFiniteKernel κ
η : Kernel (α × β) γ
inst✝⁴ : IsSFiniteKernel η
a : α
inst✝³ : NormedSpace ℝ E
E' : Type u_5
inst✝² : NormedAddCommGroup E'
inst✝¹ : CompleteSpace E'
inst✝ : NormedSpace ℝ E'
f✝ : β × γ → E
hE : CompleteSpace E
⊢ ∀ ⦃f g : β × γ → E⦄,
    f =ᶠ[ae ((κ ⊗ₖ η) a)] g →
      Integrable f ((κ ⊗ₖ η) a) →
        ∫ (z : β × γ), f z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), f (x, y) ∂η (a, x) ∂κ a →
          ∫ (z : β × γ), g z ∂(κ ⊗ₖ η) a = ∫ (x : β), ∫ (y : γ), g (x, y) ∂η (a, x) ∂κ a
tactic: apply Integrable.induction