Lecture 8: Categories in 2-level type theory, Fibrations and co-Fibrations
Category in 2-level type theory
strict equality (UIP) univalent equality which can be eliminated only over fibrant predicate
Model structure on a category
-
3 classes of morphisms
satsifies 2-out-of-3 property-
and are weak factorization systems, whereand
First factorization system on
Retracts
is a retract of :-
we can find maps such that the following diagram commutes:
NB:
Recall that
Fibrations
is a fibration:-
if there exists a fibrant predicate
s.t.-
is a retract of -
-
NB:
The following diagram is a pushout:
Cylinder: HIT:
:
Acyclic fibrations (AF)
is an acyclic fibration (AF):-
if there exists a fibrant predicate
s.t. is a retract of and is contractible for all
For all
, is contractible.
Proof:
So the naive definition
obtained naively from the pushout (and that type checks) is not a good one.
The Fibrancy Structure in Coq
cf. model structure.v
For the Cylinder HIT:
(* in a Module: *)
Private Inductive Cyl f : B -> Type :=
| top: forall x:A, Cyl f (f x)
| base: forall y:B, Cyl f y
Axiom Cyl_eq: forall x:A, top x = base (f x)
Definition Cyl_ind P top' base' Cyl_eq': forall y:B, (c: Cyl f y), P y c
Then, we define fibrancy (the trick is to add an axiom in the theory):
Axiom Fibrant: Type -> Type
so that the only way to show that a type is fibrant will be to use the axioms.
Definition Type F := exists T:Type, Fibrant T
Axiom Fibrant_forall: forall A (B: A -> Type),
Fibrant A
-> forall x: A, Fibrant (B x)
-> Fibrant (forall x:A, B x)
NB: In Haskell for instance, there’s no way of talking of dependent type as a family of the form
(* In another Module *)
Private Inductive Path A (x:A): A -> Type
| id_path := Path A x x (* := x = x *)
Definition path_ind A (x:A)
(P: forall y:A, x=y -> Type)
(P_idpath P x (id_path x)) (y: A) (e: x=y)
(Fib A : Fibrant A)
(Fib P : forall y e, Fibrant (P y e)):
forall y e, P y e
We declare “Fibrant” as a type class, so that when we will want to show Fibrant A
, Coq will do automatic proof search (by looking at all the rules to construct Fibrant types), and backtrack whenever it fails.
The only type that we declare as fibrant is the cylinder (other inductive types are not mentioned).
Back to the Model Structure
To define the model structure, we’ve showed that
and
which leads us to:
Epi-mono factorization system
When
where
Image of a function
Naive attempt at defining the image of a function:
But the right notion is rather:
so that it’s no longer equivalent to
Moreover, in the epi-mono factorization,
Mono/Embedding
is a mono/an embedding:-
if
is an equivalence:
is a mono
Indeed:
-
-
By proof irrelevance:
-truncated maps
is -truncated:-
iff for all
, is -truncated (i.e. is an -type)
Prop:
Proof: For all
Let’s construct
And
Conversely:
for all
is -truncated
Proof:
-connectedness
It’s the dual notion of
is -connected:-
if for all
, is contractible
The map
is
-connected
-
is contractible -
Leave a comment