Kleisli Category of SPComp as a Symmetric Monoidal Category #
This file shows that the Kleisli category of SPComp (stateful probabilistic computations)
forms a symmetric monoidal category with Sum as tensor and Empty as unit.
Main results #
Objects of the Kleisli category of SPComp. Opaque wrapper around Type to avoid
conflicting with Mathlib's CategoryTheory.types : Category Type.
Equations
Instances For
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[simp]
@[simp]
Monoidal definitions #
All structural morphisms use explicit pattern matching on Sum constructors
so their equations are directly available to simp.
Equations
- CatCrypt.Core.KlSPComp.wkR f Y (Sum.inl a) = CatCrypt.Core.SPComp.map Sum.inl (f a)
- CatCrypt.Core.KlSPComp.wkR f Y (Sum.inr c) = CatCrypt.Core.SPComp.pure (Sum.inr c)
Instances For
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
Simp lemmas for class projections #
These bridge from Mathlib notation (◁, ▷, ⊗ₘ, α_, λ_, ρ_) to our
concrete definitions (wkL, wkR, assocIso, lUnit, rUnit).
@[simp]
@[simp]
@[simp]
theorem
CatCrypt.Core.KlSPComp.tensorHom_eq
{X₁ Y₁ X₂ Y₂ : KlSPComp}
(f : X₁ ⟶ Y₁)
(g : X₂ ⟶ Y₂)
:
CategoryTheory.MonoidalCategoryStruct.tensorHom f g = CategoryTheory.CategoryStruct.comp (wkR f X₂) (Y₁.wkL g)
@[simp]
@[simp]
@[simp]
@[simp]
MonoidalCategory #
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
BraidedCategory and SymmetricCategory #
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
Equations
- CatCrypt.Core.KlSPComp.instSymmetricCategory = { toBraidedCategory := CatCrypt.Core.KlSPComp.instBraidedCategory, symmetry := CatCrypt.Core.KlSPComp.instSymmetricCategory._proof_1 }