Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.3. 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 *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Set Universe Polymorphism. Set Implicit Arguments. Generalizable All Variables. Set Asymmetric Patterns. Local Open Scope morphism_scope. Local Open Scope path_scope. Local Open Scope natural_transformation_scope. Section identity. Variables C D : PreCategory. (** There is an identity natrual transformation. We create a number of variants, for various uses. *) Section generalized. Variables F G : Functor C D. Hypothesis HO : object_of F = object_of G. Hypothesis HM : transport (fun GO => forall s d, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G. Local Notation CO c := (transport (fun GO => morphism D (F c) (GO c)) HO (identity (F c))).
C, D: PreCategory
F, G: Functor C D
HO: F = G
HM: transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => morphism D (F _0 d)%object (GO d)) HO 1%morphism o F _1 m = G _1 m o transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => morphism D (F _0 d)%object (GO d)) HO 1%morphism o F _1 m = G _1 m o transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => morphism D (F _0 d)%object (GO d)) HO 1%morphism o F _1 m = transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) s d m o transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => morphism D (F _0 d)%object (GO d)) 1 1%morphism o F _1 m = transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) 1 (morphism_of F) s d m o transport (fun GO : C -> D => morphism D (F _0 s)%object (GO s)) 1 1%morphism
exact (left_identity _ _ _ _ @ (right_identity _ _ _ _)^). Defined.
C, D: PreCategory
F, G: Functor C D
HO: F = G
HM: transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

G _1 m o transport (fun GO : C -> D => morphism D (F _0 s)%object (GO s)) HO 1%morphism = transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

G _1 m o transport (fun GO : C -> D => morphism D (F _0 s)%object (GO s)) HO 1%morphism = transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) s d m o transport (fun GO : C -> D => morphism D (F _0 s)%object (GO s)) HO 1%morphism = transport (fun GO : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) HO (morphism_of F) = morphism_of G
s, d: C
m: morphism C s d

transport (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) 1 (morphism_of F) s d m o transport (fun GO : C -> D => morphism D (F _0 s)%object (GO s)) 1 1%morphism = transport (fun GO : C -> D => morphism D (F _0 d)%object (GO d)) 1 1%morphism o F _1 m
exact (right_identity _ _ _ _ @ (left_identity _ _ _ _)^). Defined. Definition generalized_identity : NaturalTransformation F G := Build_NaturalTransformation' F G (fun c => CO c) generalized_identity_commutes generalized_identity_commutes_sym. End generalized. Global Arguments generalized_identity_commutes / . Global Arguments generalized_identity_commutes_sym / . Global Arguments generalized_identity F G !HO !HM / . Section generalized'. Variables F G : Functor C D. Hypothesis H : 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 (fun GO : C -> D => forall s d : 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 (fun GO : C -> D => forall s d : C, morphism C s d -> morphism D (GO s) (GO d)) (ap object_of 1) (morphism_of F) = morphism_of F
reflexivity. Defined. End generalized'. Definition identity (F : Functor C D) : NaturalTransformation F F := Eval simpl in @generalized_identity F F 1 1. Global Arguments generalized_identity' F G !H / . End identity. Global Arguments generalized_identity_commutes : simpl never. Global Arguments generalized_identity_commutes_sym : simpl never. Module Export NaturalTransformationIdentityNotations. Notation "1" := (identity _) : natural_transformation_scope. End NaturalTransformationIdentityNotations.