kernel_hom tactic #
This file implements the kernel_hom tactic, which transforms equalities of
kernels into equivalent equalities in the monoidal category.
Main declarations #
transformKernelToHom: recursive translation from kernel expressions to categorical morphism expressions.mkKernelHomEqProof: construction of the equivalence proof used by the tactic.applyKernelHom: core implementation on goals and hypotheses.kernel_hom: user-facing tactic (with location support).
Check if a kernel expression corresponds to a left or right unitor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if a kernel expression corresponds to a left unitor.
Equations
- check_leftUnitor κ = check_unitors κ 0 `Prod.snd
Instances For
Check if a kernel expression corresponds to a right unitor.
Equations
- check_rightUnitor κ = check_unitors κ 1 `Prod.fst
Instances For
Recursively decompose a product type into SFinKer objects with monoidal tensor structure.
Compute the SFinKer object corresponding to a measurable space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the left or right unitor morphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if a kernel expression corresponds to a left or right whisker.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if a kernel expression corresponds to a left whisker.
Equations
- check_WhiskerLeft κ = check_Whiskers κ 2
Instances For
Check if a kernel expression corresponds to a right whisker.
Equations
Instances For
Construct the relevant data for converting a kernel expression to its whisker morphism representation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if a kernel expression corresponds to an associator morphism or its inverse.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if a kernel expression corresponds to an associator morphism.
Equations
Instances For
Check if a kernel expression corresponds to an inverse associator morphism.
Equations
Instances For
Get the types and universe levels from a expression of the form X × Y × Z.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the associator morphism or its inverse.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the associator morphism.
Equations
- construct_associator_hom left right maxLvl = construct_associator left right maxLvl true
Instances For
Construct the inverse associator morphism.
Equations
- construct_associator_inv left right maxLvl = construct_associator left right maxLvl false
Instances For
Recursive transformation from kernel expressions to morphism expressions in the SFinKer
category.
Construct the proof of equivalence between the original equality and the transformed one.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The kernel_hom tactic transforms a kernel equality to an equivalent equality in
the category of measurable spaces and s-finite kernels.
The tactic supports location specifiers like rw or simp:
kernel_hom— applies to the goalkernel_hom at h— applies to hypothesishkernel_hom at h₁ h₂— applies to multiple hypotheseskernel_hom at h ⊢— applies to hypothesishand the goalkernel_hom at *— applies to all hypotheses and the goal
Example:
example {W X Y Z : Type*} [MeasurableSpace X] [MeasurableSpace Y] [MeasurableSpace Z]
[MeasurableSpace W] (κ : Kernel X Y) (η : Kernel Y Z) (ξ : Kernel Z W)
[IsFiniteKernel ξ] [IsSFiniteKernel κ] [IsSFiniteKernel η] :
ξ ∘ₖ (η ∘ₖ κ) = ξ ∘ₖ η ∘ₖ κ := by
kernel_hom
exact Category.assoc _ _ _
Equations
- One or more equations did not get rendered due to their size.
Instances For
The kernel_hom tactic transforms a kernel equality to an equivalent equality in
the category of measurable spaces and s-finite kernels.
The tactic supports location specifiers like rw or simp:
kernel_hom— applies to the goalkernel_hom at h— applies to hypothesishkernel_hom at h₁ h₂— applies to multiple hypotheseskernel_hom at h ⊢— applies to hypothesishand the goalkernel_hom at *— applies to all hypotheses and the goal
Example:
example {W X Y Z : Type*} [MeasurableSpace X] [MeasurableSpace Y] [MeasurableSpace Z]
[MeasurableSpace W] (κ : Kernel X Y) (η : Kernel Y Z) (ξ : Kernel Z W)
[IsFiniteKernel ξ] [IsSFiniteKernel κ] [IsSFiniteKernel η] :
ξ ∘ₖ (η ∘ₖ κ) = ξ ∘ₖ η ∘ₖ κ := by
kernel_hom
exact Category.assoc _ _ _
Equations
- One or more equations did not get rendered due to their size.