Class Funext. Axiom isequiv_apD10 : `{Funext} -> forall (A : Type) (P : A -> Type) f g, IsEquiv (@apD10 A P f g) .
#[export] Existing Instance isequiv_apD10.
Definition path_forall `{Funext} {A : Type} {P : A -> Type} (f g : forall x : A, P x) :
(forall x, f x = g x) -> f = g
:=
(@apD10 A P f g)^-1.
End Overture.
ModuleExport Core.
SetImplicitArguments. DelimitScope morphism_scope with morphism. DelimitScope category_scope with category. DelimitScope object_scope with object.
compose : forall s d d',
morphism d d'
-> morphism s d
-> morphism s d' where"f 'o' g" := (compose f g);
associativity : forall x1 x2 x3 x4
(m1 : morphism x1 x2)
(m2 : morphism x2 x3)
(m3 : morphism x3 x4),
(m3 o m2) o m1 = m3 o (m2 o m1)
}.
Bind Scope category_scope with PreCategory. Arguments compose [!C%_category s%_object d%_object d'%_object] m1%_morphism m2%_morphism : rename.
Infix"o" := compose : morphism_scope.
End Core.
LocalOpenScope morphism_scope.
Record Functor (C D : PreCategory) :=
{
object_of :> C -> D;
morphism_of : forall s d, morphism C s d
-> morphism D (object_of s) (object_of d)
}.
Record NaturalTransformation C D (F G : Functor C D) := { components_of :> forall c, morphism D (F c) (G c) }. Section path_natural_transformation.
Context `{Funext}. Variable C : PreCategory. Variable D : PreCategory. Variables F G : Functor C D.
Section path. Variables T U : NaturalTransformation F G. Lemma path'_natural_transformation
: components_of T = components_of U
-> T = U.
admit. Defined. Lemma path_natural_transformation
: (forall x, T x = U x)
-> T = U. Proof. intros. apply path'_natural_transformation. apply path_forall; assumption. Qed. End path. End path_natural_transformation. Ltac path_natural_transformation := repeatmatchgoalwith
| _ => intro
| _ => apply path_natural_transformation; simpl end. Definition comma_category A B C (S : Functor A C) (T : Functor B C)
: PreCategory.
admit. Defined. Definition compose C D (F F' F'' : Functor C D)
(T' : NaturalTransformation F' F'') (T : NaturalTransformation F F')
: NaturalTransformation F F''
:= Build_NaturalTransformation F F''
(fun c => T' c o T c).
Definition associativity `{fs : Funext}
C D F G H I
(V : @NaturalTransformation C D F G)
(U : @NaturalTransformation C D G H)
(T : @NaturalTransformation C D H I)
: (T o U) o V = T o (U o V). Proof.
path_natural_transformation.
apply associativity. Qed. Definition functor_category `{Funext} (C D : PreCategory) : PreCategory
:= @Build_PreCategory (Functor C D)
(@NaturalTransformation C D)
(@compose C D)
(@associativity _ C D).
Notation"C -> D" := (functor_category C D) : category_scope.
Definition pullback_along `{Funext} (C C' D : PreCategory) (p : Functor C C')
: object ((C' -> D) -> (C -> D))
:= Eval hnf in compose_functor _ _ _ p.
Definition IsColimit `{Funext} C D (F : Functor D C)
(x : object
(@comma_category (indiscrete_category Unit)
(@functor_category H (indiscrete_category Unit) C)
(@functor_category H D C)
admit
(@pullback_along H D (indiscrete_category Unit) C
admit))) : Type
:= admit.
Context `(has_colimits
: forall F : Functor D C,
@IsColimit _ C D F (colimits F)). (* Error: Unsatisfied constraints: Top.3773 <= Set
(maybe a bugged tactic). *) End bar.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.