Built with Alectryon. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
(** * Indiscrete category *)Require Import Functor.Core Category.Strict Category.Univalent Category.Morphisms.Require Import Types.Unit Trunc HoTT.Tactics Equivalences.Set Implicit Arguments.Generalizable All Variables.(** ** Definition of an indiscrete category *)ModuleExport Core.Sectionindiscrete_category.(** The indiscrete category has exactly one morphism between any two objects. *)VariableX : Type.(** We define the symmetrized version of associativity differently so that the dual of an indiscrete category is convertible with the indiscrete category. *)Definitionindiscrete_category : PreCategory
:= @Build_PreCategory' X
(fun__ => Unit)
(fun_ => tt)
(fun_____ => tt)
(fun_______ => idpath)
(fun_______ => idpath)
(fun__f => match f with tt => idpath end)
(fun__f => match f with tt => idpath end)
(fun_ => idpath)
_.Endindiscrete_category.(** *** Indiscrete categories are strict categories *)Definitionisstrict_indiscrete_category `{H : IsHSet X}
: IsStrictCategory (indiscrete_category X)
:= H.(** *** Indiscrete categories are (saturated/univalent) categories *)
X: Type H: IsHProp X
IsCategory (indiscrete_category X)
X: Type H: IsHProp X
IsCategory (indiscrete_category X)
X: Type H: IsHProp X s, d: indiscrete_category X
IsEquiv (idtoiso (indiscrete_category X) (y:=d))
eapply (isequiv_adjointify
(idtoiso (indiscrete_category X) (x := s) (y := d))
(fun_ => center _));
abstract (
repeatintro;
destruct_head_hnf @Isomorphic;
destruct_head_hnf @IsIsomorphism;
destruct_head_hnf @Unit;
path_induction_hammer
).Defined.EndCore.(** ** Functors to an indiscrete category are given by their action on objects *)ModuleFunctors.Sectionto.VariableX : Type.VariableC : PreCategory.VariableobjOf : C -> X.Definitionto : Functor C (indiscrete_category X)
:= Build_Functor C (indiscrete_category X)
objOf
(fun___ => tt)
(fun_____ => idpath)
(fun_ => idpath).Endto.EndFunctors.