## § Hyperdoctrine

• A hyperdoctrine equips a category with some kind of logic L.
• It's a functor P: T^op -> C for some higher category C, whose objects are categories whose internal logic corresponds to L.
• In the classical case, L is propositional logic, and C is the 2-category of posets. We send A ∈ T to the poset of subobjects Sub_T(A).
• We ask that for every morphism f: A -> B, the morphism P(f) has left and right adjoints.
• These left and right adjoints mimic existential / universal quantifiers.
• If we have maps between cartesian closed categories, then the functor f* obeys frobenius reciprocity if it preserves exponentials: f*(a^b) ~iso~ f*(a)^f*(b).
• https://ncatlab.org/nlab/show/Mitchell-B%C3%A9nabou+language