Documentation

Mathlib.CategoryTheory.Category.RelCat

Basics on the category of relations #

We define the category of types CategoryTheory.RelCat with binary relations as morphisms. Associating each function with the relation defined by its graph yields a faithful and essentially surjective functor graphFunctor that also characterizes all isomorphisms (see rel_iso_iff).

By flipping the arguments to a relation, we construct an equivalence opEquivalence between RelCat and its opposite.

A type synonym for Type u, which carries the category instance for which morphisms are binary relations.

Instances For
    @[implicit_reducible]

    The morphisms in the relation category are relations.

    • ofRel :: (
      • rel : SetRel X Y

        The underlying relation between X and Y of a morphism X โŸถ Y for X Y : RelCat.

    • )
    Instances For
      @[implicit_reducible]

      The category of types with binary relations as morphisms.

      theorem CategoryTheory.RelCat.Hom.ext {X Y : RelCat} (f g : X โŸถ Y) (h : f.rel = g.rel) :
      f = g
      theorem CategoryTheory.RelCat.Hom.ext_iff {X Y : RelCat} {f g : X โŸถ Y} :
      f = g โ†” f.rel = g.rel
      theorem CategoryTheory.RelCat.Hom.rel_comp_applyโ‚‚ {X Y Z : RelCat} (f : X โŸถ Y) (g : Y โŸถ Z) (x : X) (z : Z) :
      (x, z) โˆˆ (CategoryStruct.comp f g).rel โ†” โˆƒ (y : Y), (x, y) โˆˆ f.rel โˆง (y, z) โˆˆ g.rel

      The essentially surjective faithful embedding from the category of types and functions into the category of types and relations.

      Instances For
        @[simp]
        theorem CategoryTheory.RelCat.rel_graphFunctor_map {Xโœ Yโœ : Type u} (f : Xโœ โŸถ Yโœ) :
        theorem CategoryTheory.RelCat.rel_iso_iff {X Y : RelCat} (r : X โŸถ Y) :
        IsIso r โ†” โˆƒ (f : X โ‰… Y), graphFunctor.map f.hom = r

        A relation is an isomorphism in RelCat iff it is the image of an isomorphism in Type u.

        The argument-swap isomorphism from RelCat to its opposite.

        Instances For

          RelCat is self-dual: The map that swaps the argument order of a relation induces an equivalence between RelCat and its opposite.

          Instances For