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.
(** * Identity natural transformation *)Require Import Category.Core Functor.Core NaturalTransformation.Core.Set Implicit Arguments.Generalizable All Variables.LocalOpen Scope morphism_scope.LocalOpen Scope path_scope.LocalOpen Scope natural_transformation_scope.Sectionidentity.VariablesCD : PreCategory.(** There is an identity natural transformation. We create a number of variants, for various uses. *)Sectiongeneralized.VariablesFG : Functor C D.HypothesisHO : object_of F = object_of G.HypothesisHM : transport (funGO => forallsd,
morphism C s d
-> morphism D (GO s) (GO d))
HO
(morphism_of F)
= morphism_of G.Local NotationCO c := (transport (funGO => morphism D (F c) (GO c))
HO
(identity (F c))).
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m =
G _1 m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m =
G _1 m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m =
transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) s d m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) 11%morphism
o F _1 m =
transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
1 (morphism_of F) s d m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) 11%morphism
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
G _1 m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism =
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
G _1 m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism =
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) s d m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) HO
1%morphism =
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) HO
1%morphism
o F _1 m
C, D: PreCategory F, G: Functor C D HO: F = G HM: transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
HO (morphism_of F) =
morphism_of G s, d: C m: morphism C s d
transport
(funGO : C -> D =>
foralls0d0 : C, morphism C s0 d0 -> morphism D (GO s0) (GO d0))
1 (morphism_of F) s d m
o transport (funGO : C -> D => morphism D (F _0 s)%object (GO s)) 11%morphism =
transport (funGO : C -> D => morphism D (F _0 d)%object (GO d)) 11%morphism
o F _1 m
exact (right_identity _ _ _ _ @ (left_identity _ _ _ _)^).Defined.Definitiongeneralized_identity
: NaturalTransformation F G
:= Build_NaturalTransformation'
F G
(func => CO c)
generalized_identity_commutes
generalized_identity_commutes_sym.Endgeneralized.GlobalArguments generalized_identity_commutes / .GlobalArguments generalized_identity_commutes_sym / .GlobalArguments generalized_identity F G !HO !HM / .Sectiongeneralized'.VariablesFG : Functor C D.HypothesisH : F = G.
C, D: PreCategory F, G: Functor C D H: F = G
NaturalTransformation F G
C, D: PreCategory F, G: Functor C D H: F = G
NaturalTransformation F G
C, D: PreCategory F, G: Functor C D H: F = G
transport
(funGO : C -> D =>
forallsd : C, morphism C s d -> morphism D (GO s) (GO d))
(ap object_of H) (morphism_of F) =
morphism_of G
C, D: PreCategory F, G: Functor C D H: F = G
transport
(funGO : C -> D =>
forallsd : C, morphism C s d -> morphism D (GO s) (GO d))
(ap object_of 1) (morphism_of F) =
morphism_of F
reflexivity.Defined.Endgeneralized'.Definitionidentity (F : Functor C D)
: NaturalTransformation F F
:= Evalsimplin @generalized_identity F F 11.GlobalArguments generalized_identity' F G !H / .Endidentity.GlobalArguments generalized_identity_commutes : simpl never.GlobalArguments generalized_identity_commutes_sym : simpl never.ModuleExport NaturalTransformationIdentityNotations.Notation"1" := (identity _) : natural_transformation_scope.EndNaturalTransformationIdentityNotations.