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.
(** * Dependent Product Category *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import Basics.Trunc.Set Universe Polymorphism.Set Implicit Arguments.Generalizable All Variables.Set Asymmetric Patterns.LocalOpen Scope category_scope.LocalOpen Scope morphism_scope.(** ** Definition of [∀], or [∏], for categories *)Sectionpi.Context `{Funext}.VariableA : Type.VariableP : A -> PreCategory.
H: Funext A: Type P: A -> PreCategory
PreCategory
refine (@Build_PreCategory
(foralla : A, P a)
(funsd => foralla : A, morphism (P a) (s a) (d a))
(funx => funa => identity (x a))
(funsdd'm2m1 => funa => m2 a o m1 a)
_
_
_
_);
abstract (
repeat (intro || apply path_forall);
auto with morphism
).Defined.Endpi.LocalNotation"'forall' x .. y , P" := (forallx, .. (forally, P) ..) : type_scope.LocalNotation"'forall' x .. y , P" := (pi (funx => .. (pi (funy => P)) .. )) : category_scope.(** ** The product of strict categories is strict *)
H: Funext A: Type P: A -> PreCategory H0: (foralla : A, IsStrictCategory (P a))%type
IsStrictCategory (foralla : A, P a)
H: Funext A: Type P: A -> PreCategory H0: (foralla : A, IsStrictCategory (P a))%type
IsStrictCategory (foralla : A, P a)
typeclasses eauto.Qed.Local Set Warnings Append "-notation-overridden".ModuleExport CategoryPiNotations.Notation"'forall' x .. y , P" := (forallx, .. (forally, P) ..)%type : type_scope.Notation"'forall' x .. y , P" := (pi (funx => .. (pi (funy => P)) .. )) : category_scope.EndCategoryPiNotations.