Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.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.
(** * The coproduct of categories *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Set Universe Polymorphism.Set Implicit Arguments.Generalizable All Variables.Set Asymmetric Patterns.(** ** Definition of [+] for categories *)Sectioninternals.VariablesCD : PreCategory.Definitionsum_morphism (sd : C + D) : Type
:= match s, d with
| inl s, inl d => morphism C s d
| inr s, inr d => morphism D s d
| _, _ => Empty
end.GlobalArguments sum_morphism _ _ / .Definitionsum_identity (x : C + D) : sum_morphism x x
:= match x with
| inl x => identity x
| inr x => identity x
end.GlobalArguments sum_identity _ / .
C, D: PreCategory s, d, d': C + D m1: sum_morphism d d' m2: sum_morphism s d
sum_morphism s d'
C, D: PreCategory s, d, d': C + D m1: sum_morphism d d' m2: sum_morphism s d
sum_morphism s d'
case s, d, d'; simplin *;
solve [ case m1
| case m2
| eapply compose; eassumption ].Defined.GlobalArguments sum_compose [_ _ _] _ _ / .Endinternals.
C, D: PreCategory
PreCategory
C, D: PreCategory
PreCategory
refine (@Build_PreCategory
(C + D)
(sum_morphism C D)
(sum_identity C D)
(sum_compose C D)
_
_
_
_);
abstract (
repeat (simpl || apply istrunc_S || intros [] || intro);
auto with morphism;
typeclasses eauto
).Defined.ModuleExport CategorySumNotations.Infix"+" := sum : category_scope.EndCategorySumNotations.