Library TypeTheory.Displayed_Cats.SIP
Require Import UniMath.Foundations.Sets.
Require Import UniMath.CategoryTheory.Categories.
Require Import TypeTheory.Auxiliary.Auxiliary.
Require Import TypeTheory.Auxiliary.UnicodeNotations.
Require Import TypeTheory.Displayed_Cats.Auxiliary.
Require Import TypeTheory.Displayed_Cats.Core.
Require Import TypeTheory.Displayed_Cats.Constructions.
Local Open Scope mor_disp_scope.
Local Set Automatic Introduction.
Variable C : category.
Variable univC : is_univalent C.
Variable P : ob C -> UU.
Variable Pisset : ∏ x, isaset (P x).
Variable H : ∏ (x y : C), P x → P y → C⟦x,y⟧ → UU.
Arguments H {_ _} _ _ _ .
Variable Hisprop : ∏ x y a b (f : C⟦x,y⟧), isaprop (H a b f).
Variable Hid : ∏ (x : C) (a : P x), H a a (identity _ ).
Variable Hcomp : ∏ (x y z : C) a b c (f : C⟦x,y⟧) (g : C⟦y,z⟧),
H a b f → H b c g → H a c (f ;; g).
Variable Hstandard : ∏ (x : C) (a a' : P x),
H a a' (identity _ ) → H a' a (identity _ ) → a = a'.
Lemma is_univalent_disp_from_SIP_data : is_univalent_disp disp_cat_from_SIP_data.
Proof.
apply is_univalent_disp_from_fibers.
intros x a b.
apply isweqimplimpl.
- intro i. apply Hstandard.
* apply i.
* apply (inv_mor_disp_from_iso i).
- apply Pisset.
- apply isofhleveltotal2.
+ apply Hisprop.
+ intro. apply (@isaprop_is_iso_disp _ disp_cat_from_SIP_data).
Defined.
Definition SIP : is_univalent (total_category disp_cat_from_SIP_data).
Proof.
apply is_univalent_total_category.
- apply univC.
- apply is_univalent_disp_from_SIP_data.
Defined.
End SIP.
TODO: add some examples