Timings for Sigma.v
(* -*- mode: coq; mode: visual-line -*- *)
Require Import Basics.Overture Basics.Tactics.
Require Import WildCat.Core.
(** ** Indexed sum of categories *)
Context (A : Type) (B : A -> Type)
`{forall a, IsGraph (B a)}
`{forall a, Is01Cat (B a)}
`{forall a, Is0Gpd (B a)}.
Global Instance isgraph_sigma : IsGraph (sig B).
exact {p : x = y & p # u $-> v}.
Global Instance is01cat_sigma : Is01Cat (sig B).
intros [x u] [y v] [z w] [q g] [p f].
Global Instance is0gpd_sigma : Is0Gpd (sig B).
intros [x u] [y v] [p f].
Global Instance is0functor_sigma {A : Type} (B C : A -> Type)
`{forall a, IsGraph (B a)} `{forall a, IsGraph (C a)}
`{forall a, Is01Cat (B a)} `{forall a, Is01Cat (C a)}
(F : forall a, B a -> C a) {ff : forall a, Is0Functor (F a)}
: Is0Functor (fun (x:sig B) => (x.1 ; F x.1 x.2)).
constructor; intros [a1 b1] [a2 b2] [p f]; cbn.