Theorem: ProbabilityTheory.kernel.compProd_fst_borelMarkovFromReal_eq_comapRight_compProd
File: Mathlib/Probability/Kernel/Disintegration/Basic.lean

tactic: let e := embeddingReal Ω
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯

tactic: let he := measurableEmbedding_embeddingReal Ω
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯

tactic: let κ' := map κ (Prod.map (id : β → β) e) (measurable_id.prod_map he.measurable)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯

tactic: have hη' : fst κ' ⊗ₖ η = κ' := hη
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯

tactic: have h_prod_embed : MeasurableEmbedding (Prod.map (id : β → β) e) :=
  MeasurableEmbedding.id.prod_mk he
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯

tactic: change fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst κ' ⊗ₖ η) h_prod_embed
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η) ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst κ' ⊗ₖ η) h_prod_embed

tactic: rw [comapRight_compProd_id_prod _ _ he]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = comapRight (fst κ' ⊗ₖ η) h_prod_embed
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ' ⊗ₖ comapRight η he

tactic: have h_fst : fst κ' = fst κ := by
  ext a u
  unfold_let κ'
  rw [fst_apply, map_apply, Measure.map_map measurable_fst h_prod_embed.measurable, fst_apply]
  congr
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ' ⊗ₖ comapRight η he
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ' ⊗ₖ comapRight η he

tactic: rw [h_fst]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ' ⊗ₖ comapRight η he
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ ⊗ₖ comapRight η he

tactic: ext a t ht : 2
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
⊢ fst κ ⊗ₖ borelMarkovFromReal Ω η = fst κ ⊗ₖ comapRight η he
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ((fst κ ⊗ₖ borelMarkovFromReal Ω η) a) t = ((fst κ ⊗ₖ comapRight η he) a) t

tactic: simp_rw [compProd_apply _ _ _ ht]
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ((fst κ ⊗ₖ borelMarkovFromReal Ω η) a) t = ((fst κ ⊗ₖ comapRight η he) a) t
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ((borelMarkovFromReal Ω η) (a, b)) {c | (b, c) ∈ t} ∂(fst κ) a =
    ∫⁻ (b : β), ((comapRight η he) (a, b)) {c | (b, c) ∈ t} ∂(fst κ) a

tactic: refine lintegral_congr_ae ?_
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ((borelMarkovFromReal Ω η) (a, b)) {c | (b, c) ∈ t} ∂(fst κ) a =
    ∫⁻ (b : β), ((comapRight η he) (a, b)) {c | (b, c) ∈ t} ∂(fst κ) a
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (fun b => ((borelMarkovFromReal Ω η) (a, b)) {c | (b, c) ∈ t}) =ᶠ[ae ((fst κ) a)] fun b =>
    ((comapRight η he) (a, b)) {c | (b, c) ∈ t}

tactic: filter_upwards [h_ae] with a ha
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}
⊢ (fun b => ((borelMarkovFromReal Ω η) (a, b)) {c | (b, c) ∈ t}) =ᶠ[ae ((fst κ) a)] fun b =>
    ((comapRight η he) (a, b)) {c | (b, c) ∈ t}
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((borelMarkovFromReal Ω η) (a✝, a)) {c | (a, c) ∈ t} = ((comapRight η he) (a✝, a)) {c | (a, c) ∈ t}

tactic: rw [borelMarkovFromReal, comapRight_apply', comapRight_apply']
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((borelMarkovFromReal Ω η) (a✝, a)) {c | (a, c) ∈ t} = ((comapRight η he) (a✝, a)) {c | (a, c) ∈ t}
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((piecewise ⋯ η (deterministic (fun x => Exists.choose ⋯) ⋯)) (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t}) =
    (η (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t})

case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}

case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}

tactic: rotate_left
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((piecewise ⋯ η (deterministic (fun x => Exists.choose ⋯) ⋯)) (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t}) =
    (η (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t})

case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}

case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}
state_after: case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}

case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}

case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((piecewise ⋯ η (deterministic (fun x => Exists.choose ⋯) ⋯)) (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t}) =
    (η (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t})

tactic: classical
rw [piecewise_apply, if_pos]
exact ha
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((piecewise ⋯ η (deterministic (fun x => Exists.choose ⋯) ⋯)) (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t}) =
    (η (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t})
state_after: no goals

tactic: ext a u
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
⊢ fst κ' = fst κ
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ ((fst κ') a) u = ((fst κ) a) u

tactic: unfold_let κ'
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ ((fst κ') a) u = ((fst κ) a) u
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ ((fst (map κ (Prod.map id e) ⋯)) a) u = ((fst κ) a) u

tactic: rw [fst_apply, map_apply, Measure.map_map measurable_fst h_prod_embed.measurable, fst_apply]
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ ((fst (map κ (Prod.map id e) ⋯)) a) u = ((fst κ) a) u
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ (Measure.map (Prod.fst ∘ Prod.map id e) (κ a)) u = (Measure.map Prod.fst (κ a)) u

tactic: congr
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
a : α
u : Set β
a✝ : MeasurableSet u
⊢ (Measure.map (Prod.fst ∘ Prod.map id e) (κ a)) u = (Measure.map Prod.fst (κ a)) u
state_after: no goals

tactic: rw [← h_fst]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ∀ᵐ (t : β) ∂(fst κ) a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}

tactic: rw [← hη', compProd_null] at h_compProd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (κ' a) (univ ×ˢ range e)ᶜ = 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (Prod.mk b ⁻¹' (univ ×ˢ range e)ᶜ)) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}

case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : ((fst κ' ⊗ₖ η) a) (univ ×ˢ range e)ᶜ = 0
⊢ MeasurableSet (univ ×ˢ range e)ᶜ

tactic: swap
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (Prod.mk b ⁻¹' (univ ×ˢ range e)ᶜ)) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}

case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : ((fst κ' ⊗ₖ η) a) (univ ×ˢ range e)ᶜ = 0
⊢ MeasurableSet (univ ×ˢ range e)ᶜ
state_after: case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : ((fst κ' ⊗ₖ η) a) (univ ×ˢ range e)ᶜ = 0
⊢ MeasurableSet (univ ×ˢ range e)ᶜ

α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (Prod.mk b ⁻¹' (univ ×ˢ range e)ᶜ)) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}

tactic: simp only [preimage_compl, mem_univ, mk_preimage_prod_right] at h_compProd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (Prod.mk b ⁻¹' (univ ×ˢ range e)ᶜ)) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (range e)ᶜ) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}

tactic: exact h_compProd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : (fun b => (η (a, b)) (range e)ᶜ) =ᶠ[ae ((fst κ') a)] 0
⊢ ∀ᵐ (t : β) ∂(fst κ') a, (a, t) ∈ {p | (η p) (range e)ᶜ = 0}
state_after: no goals

tactic: unfold_let κ'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (κ' a) (univ ×ˢ range e)ᶜ = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ((map κ (Prod.map id e) ⋯) a) (univ ×ˢ range e)ᶜ = 0

tactic: rw [map_apply']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ ((map κ (Prod.map id e) ⋯) a) (univ ×ˢ range e)ᶜ = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (κ a) (Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ) = 0

case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ MeasurableSet (univ ×ˢ range e)ᶜ

tactic: swap
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (κ a) (Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ) = 0

case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ MeasurableSet (univ ×ˢ range e)ᶜ
state_after: case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ MeasurableSet (univ ×ˢ range e)ᶜ

α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (κ a) (Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ) = 0

tactic: suffices Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅ by rw [this]; simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ (κ a) (Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
x : β × Ω
⊢ x ∈ Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ ↔ x ∈ ∅

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
x : β × Ω
⊢ x ∈ Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ ↔ x ∈ ∅
state_after: no goals

tactic: exact (MeasurableSet.univ.prod he.measurableSet_range).compl
state_before: case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
⊢ MeasurableSet (univ ×ˢ range e)ᶜ
state_after: no goals

tactic: rw [this]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
this : Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅
⊢ (κ a) (Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
this : Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅
⊢ (κ a) ∅ = 0

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
this : Prod.map id e ⁻¹' (univ ×ˢ range e)ᶜ = ∅
⊢ (κ a) ∅ = 0
state_after: no goals

tactic: exact (MeasurableSet.univ.prod he.measurableSet_range).compl
state_before: case hs
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a : α
t : Set (β × Ω)
ht : MeasurableSet t
h_compProd : ((fst κ' ⊗ₖ η) a) (univ ×ˢ range e)ᶜ = 0
⊢ MeasurableSet (univ ×ˢ range e)ᶜ
state_after: no goals

tactic: exact measurable_prod_mk_left ht
state_before: case h.ht
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ MeasurableSet {c | (a, c) ∈ t}
state_after: no goals

tactic: rw [piecewise_apply, if_pos]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ ((piecewise ⋯ η (deterministic (fun x => Exists.choose ⋯) ⋯)) (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t}) =
    (η (a✝, a)) (embeddingReal Ω '' {c | (a, c) ∈ t})
state_after: case h.hc
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ (a✝, a) ∈ (fun a => (η a) (range (embeddingReal Ω))ᶜ) ⁻¹' {0}

tactic: exact ha
state_before: case h.hc
α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
κ : ↥(kernel α (β × Ω))
inst✝¹ : IsSFiniteKernel κ
η : ↥(kernel (α × β) ℝ)
inst✝ : IsSFiniteKernel η
hη : fst (map κ (Prod.map id (embeddingReal Ω)) ⋯) ⊗ₖ η = map κ (Prod.map id (embeddingReal Ω)) ⋯
e : Ω → ℝ := embeddingReal Ω
he : MeasurableEmbedding (embeddingReal Ω) := measurableEmbedding_embeddingReal Ω
κ' : ↥(kernel α (β × ℝ)) := map κ (Prod.map id e) ⋯
hη' : fst κ' ⊗ₖ η = κ'
h_prod_embed : MeasurableEmbedding (Prod.map id e)
h_fst : fst κ' = fst κ
a✝ : α
t : Set (β × Ω)
ht : MeasurableSet t
h_ae : ∀ᵐ (t : β) ∂(fst κ) a✝, (a✝, t) ∈ {p | (η p) (range e)ᶜ = 0}
a : β
ha : (η (a✝, a)) (range e)ᶜ = 0
⊢ (a✝, a) ∈ (fun a => (η a) (range (embeddingReal Ω))ᶜ) ⁻¹' {0}
state_after: no goals