Dialectica Category
There are a couple of versions of dialectica categories: we shall start with the most general first. Let be a tower of Cartesian Fibrations. The dialectica category is defined as , where denotes the Composition of Displayed Categories, and denotes the Fibrewise Opposite of a Cartesian Fibration.
If we unfold this, the objects over consist of a pair of a and an . Morphisms are a bit involved because of all the fibrewise ops: A map over between and consists of:
- A vertical map
- A vertical map
This is somewhat bonkers to read in categorical notation; here's what happens when we specialize to iterated Family Fibrations over the Category of Sets:
{-# NO_UNIVERSE_CHECK #-}
record Dia : Type where
field
Ix : Type
Shape : Ix → Type
Pos : ∀ (i : Ix) → Shape i → Type
open Dia
record Dia-hom (P Q : Dia) : Type where
field
ix : P .Ix → Q .Ix
shape : ∀ (i : P .Ix) → Q .Shape (ix i) → P .Shape i
pos : ∀ (i : P .Ix) (q : Q .Shape (ix i)) → P .Pos i (shape i q) → Q .Pos (ix i) q
open Dia-hom
References
- Dialectica Models of Type Theory gives a presentation of the basic setup
- Hyland is the first source of this presentation