Built with Alectryon. 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.
(** * Classification of morphisms of the Grothendieck Construction of a functor to Set *)Require Import Category.Core Functor.Core.Require Import Category.Morphisms.Require Import SetCategory.Core.Require Import Grothendieck.ToSet.Core.Require Import HoTT.Basics HoTT.Types.Set Implicit Arguments.Generalizable All Variables.LocalOpen Scope morphism_scope.SectionGrothendieck.Context `{Funext}.Context {C : PreCategory}
{F : Functor C set_cat}.
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(s <~=~> d)%category <~>
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(s <~=~> d)%category <~>
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(s <~=~> d)%category -> {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} -> (s <~=~> d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
?f o ?g == idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
?g o ?f == idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(s <~=~> d)%category -> {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(c s <~=~> c d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(fune : (c s <~=~> c d)%category => (F _1 e) (x s) = x d) ?proj1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(c s <~=~> c d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
IsIsomorphism m.1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(m^-1).1 o m.1 = 1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
m.1 o (m^-1).1 = 1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(m^-1).1 o m.1 = 1
exact (ap proj1 (@left_inverse _ _ _ m _)).
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
m.1 o (m^-1).1 = 1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
m.1 o (m^-1).1 = 1
exact (ap proj1 (@right_inverse _ _ _ m _)).}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(fune : (c s <~=~> c d)%category => (F _1 e) (x s) = x d)
{|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: (s <~=~> d)%category
(fune : (c s <~=~> c d)%category => (F _1 e) (x s) = x d)
{|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|}
exact (m : morphism _ _ _).2.}
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} -> (s <~=~> d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2))
o ?g == idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
?g
o (funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2)) ==
idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
{e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} -> (s <~=~> d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
(s <~=~> d)%category
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
IsIsomorphism (m.1; m.2)
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2)).1 =
1.1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))).1 =
1.1
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2)).1 =
1.1
exact left_inverse.
H: Funext C: PreCategory F: Functor C set_cat s, d: category F m: {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d}
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))).1 =
1.1
exact right_inverse.
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2))
o (funm : {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} =>
{|
morphism_isomorphic := (m.1; m.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((m.1)^-1%morphism;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s));
left_inverse :=
path_sigma_hprop
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2))%morphism
1 left_inverse;
right_inverse :=
path_sigma_hprop
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s)))%morphism
1 right_inverse
|}
|}) ==
idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} =>
{|
morphism_isomorphic := (m.1; m.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((m.1)^-1%morphism;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s));
left_inverse :=
path_sigma_hprop
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2))%morphism
1 left_inverse;
right_inverse :=
path_sigma_hprop
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s)))%morphism
1 right_inverse
|}
|})
o (funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2)) ==
idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2))
o (funm : {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} =>
{|
morphism_isomorphic := (m.1; m.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((m.1)^-1%morphism;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s));
left_inverse :=
path_sigma_hprop
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2))%morphism
1 left_inverse;
right_inverse :=
path_sigma_hprop
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s)))%morphism
1 right_inverse
|}
|}) ==
idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F x: {e : (c s <~=~> c d)%category & (F _1 e) (Core.x s) = Core.x d}
({|
morphism_isomorphic :=
{|
morphism_isomorphic := (x.1; x.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m) left_inverse) @
identity_of F (c s))
(Core.x s));
left_inverse :=
path_sigma_hprop
(((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m)
left_inverse) @
identity_of F (c s))
(Core.x s))
o (x.1; x.2))
1 left_inverse;
right_inverse :=
path_sigma_hprop
((x.1; x.2)
o ((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m)
left_inverse) @
identity_of F (c s))
(Core.x s)))
1 right_inverse
|}
|}.1;
isisomorphism_isomorphic :=
{|
morphism_inverse :=
({|
morphism_isomorphic := (x.1; x.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m)
left_inverse) @
identity_of F (c s))
(Core.x s));
left_inverse :=
path_sigma_hprop
(((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m)
left_inverse) @
identity_of F (c s))
(Core.x s))
o (x.1; x.2))
1 left_inverse;
right_inverse :=
path_sigma_hprop
((x.1; x.2)
o ((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m)
left_inverse) @
identity_of F (c s))
(Core.x s)))
1 right_inverse
|}
|}^-1).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
{|
morphism_isomorphic := (x.1; x.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m) left_inverse) @
identity_of F (c s))
(Core.x s));
left_inverse :=
path_sigma_hprop
(((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m) left_inverse) @
identity_of F (c s))
(Core.x s))
o (x.1; x.2))
1 left_inverse;
right_inverse :=
path_sigma_hprop
((x.1; x.2)
o ((x.1)^-1;
(ap (F _1 (x.1)^-1) x.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) x.1 (x.1)^-1)^ @
ap (funm : morphism C (c s) (c s) => F _1 m) left_inverse) @
identity_of F (c s))
(Core.x s)))
1 right_inverse
|}
|}.2).1 = x.1
reflexivity.
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} =>
{|
morphism_isomorphic := (m.1; m.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((m.1)^-1%morphism;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s));
left_inverse :=
path_sigma_hprop
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2))%morphism
1 left_inverse;
right_inverse :=
path_sigma_hprop
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s)))%morphism
1 right_inverse
|}
|})
o (funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2)) ==
idmap
H: Funext C: PreCategory F: Functor C set_cat s, d: category F
(funm : {e : (c s <~=~> c d)%category & (F _1 e) (x s) = x d} =>
{|
morphism_isomorphic := (m.1; m.2);
isisomorphism_isomorphic :=
{|
morphism_inverse :=
((m.1)^-1%morphism;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s));
left_inverse :=
path_sigma_hprop
(((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0) left_inverse) @
identity_of F (c s))
(x s))
o (m.1; m.2))%morphism
1 left_inverse;
right_inverse :=
path_sigma_hprop
((m.1; m.2)
o ((m.1)^-1;
(ap (F _1 (m.1)^-1) m.2)^ @
ap10
(((composition_of F (c s) (c d) (c s) m.1 (m.1)^-1)^ @
ap (funm0 : morphism C (c s) (c s) => F _1 m0)
left_inverse) @
identity_of F (c s))
(x s)))%morphism
1 right_inverse
|}
|})
o (funm : (s <~=~> d)%category =>
({|
morphism_isomorphic := m.1;
isisomorphism_isomorphic :=
{|
morphism_inverse := (m^-1%morphism).1;
left_inverse := ap pr1 left_inverse;
right_inverse := ap pr1 right_inverse
|}
|};
(m : morphism (category F) s d).2)) ==
idmap