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.
(** * Saturation of the Grothendieck Construction of a functor to Set *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import Category.Univalent. Require Import Category.Morphisms. Require Import SetCategory.Core. Require Import Grothendieck.ToSet.Core Grothendieck.ToSet.Morphisms. Require Import HoTT.Basics.Equivalences HoTT.Basics.Trunc. Require Import HoTT.Types.Universe HoTT.Types.Sigma. Set Universe Polymorphism. Set Implicit Arguments. Generalizable All Variables. Set Asymmetric Patterns. Local Open Scope morphism_scope. Section Grothendieck. Context `{Funext}. Variable C : PreCategory. Context `{IsCategory C}. Variable F : Functor C set_cat.
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: Pair F
a: c s = c d

transport (fun c : C => (F _0 c)%object) a (x s) = x d <~> (F _1 (idtoiso C a)) (x s) = x d
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: Pair F
a: c s = c d

transport (fun c : C => (F _0 c)%object) a (x s) = x d <~> (F _1 (idtoiso C a)) (x s) = x d
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: Pair F
a: c s = c d

(transport (fun c : C => (F _0 c)%object) a (x s) = x d) = ((F _1 (idtoiso C a)) (x s) = x d)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: Pair F
a: c s = c d

transport (fun c : C => (F _0 c)%object) a (x s) = (F _1 (idtoiso C a)) (x s)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: Pair F

x s = (F _1 1) (x s)
exact (ap10 (identity_of F _)^ _). Defined. Arguments category_isotoid_helper : simpl never.
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

s = d <~> (s <~=~> d)%category
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

s = d <~> (s <~=~> d)%category
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

((issig_pair F)^-1)%equiv s = ((issig_pair F)^-1)%equiv d <~> {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

{p : (((issig_pair F)^-1)%equiv s).1 = (((issig_pair F)^-1)%equiv d).1 & transport (fun c : C => (F _0 c)%object) p (((issig_pair F)^-1)%equiv s).2 = (((issig_pair F)^-1)%equiv d).2} <~> {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

{p : c s = c d & transport (fun c : C => (F _0 c)%object) p (x s) = x d} <~> {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

c s = c d <~> (c s <~=~> c d)%category
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F
forall a : c s = c d, (fun p : c s = c d => transport (fun c : C => (F _0 c)%object) p (x s) = x d) a <~> (fun e : (c s <~=~> c d)%category => (F _1 e) (x s) = x d) (?f a)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

c s = c d <~> (c s <~=~> c d)%category
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

IsEquiv (idtoiso C (y:=c d))
exact _.
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

forall a : c s = c d, (fun p : c s = c d => transport (fun c : C => (F _0 c)%object) p (x s) = x d) a <~> (fun e : (c s <~=~> c d)%category => (F _1 e) (x s) = x d) ({| equiv_fun := idtoiso C (y:=c d); equiv_isequiv := IsCategory0 (c s) (c d) |} a)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

forall a : c s = c d, (fun p : c s = c d => transport (fun c : C => (F _0 c)%object) p (x s) = x d) a <~> (fun e : (c s <~=~> c d)%category => (F _1 e) (x s) = x d) ({| equiv_fun := idtoiso C (y:=c d); equiv_isequiv := IsCategory0 (c s) (c d) |} a)
exact category_isotoid_helper. } Defined.
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat

IsCategory (category F)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat

IsCategory (category F)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

IsEquiv (idtoiso (category F) (y:=d))
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F

category_isotoid == idtoiso (category F) (y:=d)
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s, d: category F
x: s = d

category_isotoid x = idtoiso (category F) x
H: Funext
C: PreCategory
IsCategory0: IsCategory C
F: Functor C set_cat
s: category F

(category_isotoid 1%path).1 = (idtoiso (category F) 1).1
reflexivity. Defined. End Grothendieck.