Markov Categories #
Copy-discard categories where deletion is natural for all morphisms.
Main definitions #
MarkovCategory
- Copy-discard category with natural deletion
Main results #
eq_discard
- Any morphism to the unit equals discardisTerminalUnit
- The monoidal unit is terminal
Implementation notes #
Natural discard forces probabilistic interpretation: morphisms preserve normalization. The unit being terminal follows from naturality of discard.
The key property discard_natural : f ≫ ε[Y] = ε[X]
means discard "erases" any preceding
morphism, a distinguishing feature of Markov categories in categorical probability.
References #
- Cho and Jacobs, Disintegration and Bayesian inversion via string diagrams
- Fritz, A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics
Tags #
Markov category, probability, categorical probability
class
CategoryTheory.MarkovCategory
(C : Type u)
[Category.{v, u} C]
[MonoidalCategory C]
extends CategoryTheory.CopyDiscardCategory C :
Type (max u v)
Copy-discard category where discard is natural.
- braiding_naturality_right (X : C) {Y Z : C} (f : Y ⟶ Z) : CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft X f) (β_ X Z).hom = CategoryStruct.comp (β_ X Y).hom (MonoidalCategoryStruct.whiskerRight f X)
- braiding_naturality_left {X Y : C} (f : X ⟶ Y) (Z : C) : CategoryStruct.comp (MonoidalCategoryStruct.whiskerRight f Z) (β_ Y Z).hom = CategoryStruct.comp (β_ X Z).hom (MonoidalCategoryStruct.whiskerLeft Z f)
- hexagon_forward (X Y Z : C) : CategoryStruct.comp (MonoidalCategoryStruct.associator X Y Z).hom (CategoryStruct.comp (β_ X (MonoidalCategoryStruct.tensorObj Y Z)).hom (MonoidalCategoryStruct.associator Y Z X).hom) = CategoryStruct.comp (MonoidalCategoryStruct.whiskerRight (β_ X Y).hom Z) (CategoryStruct.comp (MonoidalCategoryStruct.associator Y X Z).hom (MonoidalCategoryStruct.whiskerLeft Y (β_ X Z).hom))
- hexagon_reverse (X Y Z : C) : CategoryStruct.comp (MonoidalCategoryStruct.associator X Y Z).inv (CategoryStruct.comp (β_ (MonoidalCategoryStruct.tensorObj X Y) Z).hom (MonoidalCategoryStruct.associator Z X Y).inv) = CategoryStruct.comp (MonoidalCategoryStruct.whiskerLeft X (β_ Y Z).hom) (CategoryStruct.comp (MonoidalCategoryStruct.associator X Z Y).inv (MonoidalCategoryStruct.whiskerRight (β_ X Z).hom Y))
- symmetry (X Y : C) : CategoryStruct.comp (β_ X Y).hom (β_ Y X).hom = CategoryStruct.id (MonoidalCategoryStruct.tensorObj X Y)
Process then discard equals discard directly.
Instances
@[simp]
theorem
CategoryTheory.MarkovCategory.discard_natural_assoc
{C : Type u}
{inst✝ : Category.{v, u} C}
{inst✝¹ : MonoidalCategory C}
[self : MarkovCategory C]
{X Y : C}
(f : X ⟶ Y)
{Z : C}
(h : MonoidalCategoryStruct.tensorUnit C ⟶ Z)
:
theorem
CategoryTheory.MarkovCategory.eq_discard
{C : Type u}
[Category.{v, u} C]
[MonoidalCategory C]
[MarkovCategory C]
(X : C)
(f : X ⟶ MonoidalCategoryStruct.tensorUnit C)
:
Any morphism to the unit equals discard.
def
CategoryTheory.MarkovCategory.isTerminalUnit
{C : Type u}
[Category.{v, u} C]
[MonoidalCategory C]
[MarkovCategory C]
:
The monoidal unit is a terminal object.
Equations
Instances For
instance
CategoryTheory.MarkovCategory.instSubsingletonHomTensorUnit
{C : Type u}
[Category.{v, u} C]
[MonoidalCategory C]
[MarkovCategory C]
(X : C)
:
There is a unique morphism to the unit (it is terminal).