@@ -28,7 +28,6 @@ Require Import TypeTheory.ALV1.Transport_along_Equivs.
2828Require Import TypeTheory.ALV2.RelUniv_Cat_Simple.
2929Require Import TypeTheory.ALV2.RelUniv_Cat.
3030Require Import UniMath.CategoryTheory.catiso.
31- Require Import UniMath.CategoryTheory.Equivalences.Core.
3231
3332Set Automatic Introduction.
3433
@@ -333,293 +332,6 @@ Section RelUniv_Transfer.
333332 - apply reluniv_functor_with_ess_surj_is_faithful, S_faithful.
334333 Defined .
335334
336- Section Surjective_if_R_split_ess_surj.
337- Context (R_ses : split_ess_surj R)
338- (D'_univ : is_univalent D')
339- (invS : functor D' D)
340- (eta : iso (C:=[D, D, pr2 D]) (functor_identity D) (S ∙ invS))
341- (eps : iso (C:=[D', D', pr2 D']) (invS ∙ S) (functor_identity D'))
342- (S_ff : fully_faithful S).
343-
344- Let E := ((S,, (invS,, (pr1 eta, pr1 eps)))
345- ,, ((λ d, (pr2 (Constructions.pointwise_iso_from_nat_iso eta d )))
346- , (λ d', (pr2 (Constructions.pointwise_iso_from_nat_iso eps d')))))
347- : equivalence_of_precats D D'.
348-
349- Let AE := adjointificiation E.
350- Let η' := pr1 (pr121 AE) : nat_trans (functor_identity _) (S ∙ invS).
351- Let ε' := pr2 (pr121 AE) : nat_trans (invS ∙ S) (functor_identity _).
352- Let η := functor_iso_from_pointwise_iso
353- _ _ _ _ _ η' (pr12 (adjointificiation E))
354- : iso (C:=[D, D, pr2 D]) (functor_identity D) (S ∙ invS).
355- Let ε := functor_iso_from_pointwise_iso
356- _ _ _ _ _ ε' (pr22 (adjointificiation E))
357- : iso (C:=[D', D', pr2 D']) (invS ∙ S) (functor_identity D').
358-
359- Let ηx := Constructions.pointwise_iso_from_nat_iso (iso_inv_from_iso η).
360- Let αx := Constructions.pointwise_iso_from_nat_iso (α,,α_is_iso).
361-
362- Section Helpers.
363-
364- Context (u' : reluniv_cat J').
365-
366- Let p' := pr1 u' : mor_total D'.
367- Let Ũ' := pr21 p' : D'.
368- Let U' := pr11 p' : D'.
369- Let pf' := pr2 p' : D' ⟦ Ũ', U' ⟧.
370-
371- Let U := invS U'.
372- Let Ũ := invS Ũ'.
373- Let pf := # invS pf'.
374- Local Definition p := functor_on_mor_total invS p' : mor_total D.
375-
376- Context (X : C) (f : D ⟦ J X, U ⟧).
377-
378- Let X' := R X : C'.
379- Let f' := inv_from_iso (αx X) ;; # S f ;; pr11 ε U'
380- : D' ⟦ J' X' , U' ⟧.
381- Let pb' := pr2 u' X' f' : fpullback J' p' f'.
382- Let Xf' := pr11 pb'.
383-
384- Local Definition Xf := pr1 (R_ses Xf') : C.
385- Let RXf_Xf'_iso := pr2 (R_ses Xf') : iso (R Xf) Xf'.
386-
387- Let pp' := pr121 pb' : C' ⟦ Xf', X' ⟧.
388- Local Definition pp : C ⟦ Xf, X ⟧.
389- Proof .
390- use (invweq (weq_from_fully_faithful ff_J _ _)).
391- use (pr11 η _ ;; _ ;; pr1 (inv_from_iso η) _).
392- use (# invS _).
393- apply (pr1 α Xf ;; # J' (RXf_Xf'_iso ;; pp') ;; inv_from_iso (αx X)).
394- Defined .
395-
396- Let Q' := pr221 pb' : D' ⟦ J' Xf', Ũ' ⟧.
397- Local Definition Q
398- := pr11 η _ ;; # invS (pr1 α Xf ;; # J' RXf_Xf'_iso ;; Q')
399- : D ⟦ J Xf, invS Ũ' ⟧.
400-
401- Let pb'_commutes := pr12 pb' : # J' pp' ;; f' = Q' ;; p'.
402- Let pb'_isPullback := pr22 pb'.
403-
404- Local Definition pb_commutes_and_is_pullback
405- : commutes_and_is_pullback f p (# J pp) Q.
406- Proof .
407- Check @commutes_and_is_pullback_transfer_iso.
408- use (@commutes_and_is_pullback_transfer_iso
409- _ _ _ _ _
410- _ _ _ _
411- _ _ _ (J Xf)
412- f p (# J pp) Q
413- _ _ _ _
414- _ _ _ _
415- (functor_on_square _ _ invS pb'_commutes)
416- ).
417- - apply identity_iso.
418- - eapply iso_comp.
419- apply functor_on_iso, iso_inv_from_iso, αx.
420- apply ηx.
421- - apply identity_iso.
422- - eapply iso_comp. apply functor_on_iso, functor_on_iso.
423- apply iso_inv_from_iso, RXf_Xf'_iso.
424- eapply iso_comp. apply functor_on_iso, iso_inv_from_iso, αx.
425- apply ηx.
426- - unfold f', iso_comp.
427-
428- etrans. apply id_right.
429- etrans. apply functor_comp.
430- etrans. apply maponpaths_2, functor_comp.
431- etrans. apply assoc'.
432- apply pathsinv0.
433- etrans. apply assoc'.
434- apply maponpaths.
435-
436- etrans. apply pathsinv0.
437- apply (nat_trans_ax (inv_from_iso η)).
438- apply maponpaths.
439-
440- apply pathsinv0.
441- etrans. apply pathsinv0, id_left.
442- etrans. apply maponpaths_2, pathsinv0.
443- apply (maponpaths (λ k, pr1 k (invS U'))
444- (iso_after_iso_inv η)).
445-
446- etrans. apply assoc'.
447- etrans. apply maponpaths.
448- set (AE_tr2 := pr2 (pr221 AE) U'
449- : pr11 η (invS U') ;; # invS (pr11 ε U')
450- = identity _).
451- apply AE_tr2.
452- apply id_right.
453-
454- - etrans. apply id_right.
455- apply pathsinv0, id_left.
456-
457- - apply pathsinv0.
458- etrans. apply maponpaths.
459- apply (homotweqinvweq (weq_from_fully_faithful ff_J _ _)). (* *)
460-
461- etrans. apply maponpaths, assoc'.
462- etrans. apply maponpaths, maponpaths, maponpaths_2.
463- apply (functor_comp invS).
464- etrans. apply maponpaths, maponpaths, assoc'.
465- etrans. apply assoc.
466- etrans. apply assoc.
467- apply maponpaths_2.
468-
469- unfold iso_comp, functor_on_iso. simpl.
470- etrans. apply maponpaths_2, maponpaths_2, maponpaths, maponpaths.
471- apply id_right.
472- etrans. apply maponpaths_2, assoc'.
473- etrans. apply maponpaths_2, maponpaths, assoc'.
474- etrans. apply maponpaths_2, maponpaths, maponpaths.
475- apply iso_after_iso_inv.
476-
477- etrans. apply maponpaths_2, maponpaths, id_right.
478- etrans. apply maponpaths, functor_comp.
479- etrans. apply assoc.
480- etrans. apply maponpaths_2, assoc'.
481- etrans. apply maponpaths_2, maponpaths.
482- apply pathsinv0, functor_comp.
483- etrans. apply maponpaths_2, maponpaths, maponpaths.
484- apply iso_after_iso_inv.
485-
486- etrans. apply maponpaths_2, pathsinv0, functor_comp.
487- etrans. apply pathsinv0, functor_comp.
488- apply maponpaths.
489-
490- etrans. apply maponpaths_2, id_right.
491- etrans. apply pathsinv0, functor_comp.
492- apply maponpaths.
493-
494- etrans. apply assoc.
495- etrans. apply maponpaths_2, iso_after_iso_inv.
496- apply id_left.
497-
498- - etrans. apply id_right.
499- apply pathsinv0.
500-
501- unfold Q, iso_comp, functor_on_iso. simpl.
502-
503- etrans. apply maponpaths_2, maponpaths, maponpaths.
504- apply id_right.
505-
506- etrans. apply assoc.
507- etrans. apply maponpaths_2, assoc'.
508- etrans. apply maponpaths_2, maponpaths, assoc'.
509- etrans. apply maponpaths_2, maponpaths, maponpaths.
510- apply iso_after_iso_inv.
511-
512- etrans. apply maponpaths_2, maponpaths.
513- apply id_right.
514-
515- etrans. apply maponpaths, functor_comp.
516- etrans. apply assoc.
517- etrans. apply maponpaths_2, assoc'.
518- etrans. apply maponpaths_2, maponpaths, maponpaths, functor_comp.
519- etrans. apply maponpaths_2, maponpaths, assoc.
520- etrans. apply maponpaths_2, maponpaths, maponpaths_2.
521- apply pathsinv0, functor_comp.
522- etrans. apply maponpaths_2, maponpaths, maponpaths_2.
523- apply maponpaths, iso_after_iso_inv.
524-
525- etrans. apply maponpaths_2, maponpaths.
526- apply pathsinv0, functor_comp.
527- etrans. apply maponpaths_2, maponpaths.
528- apply maponpaths, id_left.
529-
530- etrans. apply maponpaths_2, pathsinv0, functor_comp.
531- etrans. apply pathsinv0, functor_comp.
532- apply maponpaths.
533-
534- etrans. apply maponpaths_2, pathsinv0, functor_comp.
535- etrans. apply maponpaths_2, maponpaths, iso_after_iso_inv.
536- etrans. apply maponpaths_2, functor_id.
537- apply id_left.
538-
539- - use (isPullback_image_square _ _ invS).
540- + apply homset_property.
541- + apply (right_adj_equiv_is_ff _ _ S AE).
542- + apply (right_adj_equiv_is_ess_sur _ _ S AE).
543- + apply pb'_isPullback.
544- Defined .
545-
546- End Helpers.
547-
548- Definition inv_reluniv_with_ess_surj
549- : reluniv_cat J' → reluniv_cat J.
550- Proof .
551- intros u'.
552- use tpair.
553- + apply (p u').
554- + intros X f.
555- use tpair.
556- * use tpair.
557- -- apply (Xf u' X f).
558- -- use make_dirprod.
559- ++ apply pp.
560- ++ apply Q.
561- * apply pb_commutes_and_is_pullback.
562- Defined .
563-
564- Definition reluniv_functor_with_ess_surj_after_inv_iso
565- (u' : reluniv_cat J')
566- : iso u'
567- (reluniv_functor_with_ess_surj (inv_reluniv_with_ess_surj u')).
568- Proof .
569- set (εx := Constructions.pointwise_iso_from_nat_iso ε).
570- set (εx' := Constructions.pointwise_iso_from_nat_iso
571- (iso_inv_from_iso ε)).
572- use z_iso_to_iso.
573- use make_z_iso.
574- - use tpair.
575- + use make_dirprod.
576- * cbn. apply (εx' (pr211 u')).
577- * cbn. apply (εx' (pr111 u')).
578- + unfold is_gen_reluniv_mor.
579- etrans. apply pathsinv0.
580- apply (nat_trans_ax (pr1 (iso_inv_from_iso ε))).
581- apply idpath.
582- - use tpair.
583- + use make_dirprod.
584- * cbn. apply (εx (pr211 u')).
585- * cbn. apply (εx (pr111 u')).
586- + unfold is_gen_reluniv_mor.
587- etrans. apply pathsinv0.
588- apply (nat_trans_ax (pr1 ε)).
589- apply idpath.
590- - use make_dirprod.
591- + use gen_reluniv_mor_eq.
592- * apply (maponpaths (λ k, pr1 k _) (iso_after_iso_inv ε)).
593- * apply (maponpaths (λ k, pr1 k _) (iso_after_iso_inv ε)).
594- + use gen_reluniv_mor_eq.
595- * apply (maponpaths (λ k, pr1 k _) (iso_inv_after_iso ε)).
596- * apply (maponpaths (λ k, pr1 k _) (iso_inv_after_iso ε)).
597- Defined .
598-
599- Definition reluniv_functor_with_ess_surj_after_inv_id
600- (u' : reluniv_cat J')
601- : u' = reluniv_functor_with_ess_surj (inv_reluniv_with_ess_surj u').
602- Proof .
603- use isotoid.
604- - use reluniv_cat_is_univalent.
605- + apply C'_univ.
606- + apply ff_J'.
607- + apply D'_univ.
608- - apply reluniv_functor_with_ess_surj_after_inv_iso.
609- Defined .
610-
611- Definition reluniv_functor_with_ess_surj_issurjective
612- : issurjective reluniv_functor_with_ess_surj.
613- Proof .
614- intros u'.
615- use hinhpr.
616- use tpair.
617- - apply (inv_reluniv_with_ess_surj u').
618- - apply pathsinv0, reluniv_functor_with_ess_surj_after_inv_id.
619- Defined .
620-
621- End Surjective_if_R_split_ess_surj.
622-
623335 End RelUniv_Transfer_with_ess_surj.
624336
625337End RelUniv_Transfer.
@@ -829,29 +541,29 @@ Section WeakRelUniv_Transfer.
829541 apply weak_relu_square_commutes.
830542 Defined .
831543
832- Definition reluniv_functor_with_ess_surj_issurjective_AC
833- (C'_univ : is_univalent C')
834- (AC : AxiomOfChoice.AxiomOfChoice)
835- (obC_isaset : isaset C)
836- : issurjective (reluniv_functor_with_ess_surj
837- _ _ _ _ J J'
838- R S α α_is_iso
839- S_pb C'_univ ff_J' S_full R_es
840- ).
841- Proof .
842- set (W := (weak_from_reluniv_functor J'
843- ,, weak_from_reluniv_functor_is_catiso J' C'_univ ff_J')
844- : catiso _ _).
845- use (Core.issurjective_postcomp_with_weq _ (catiso_ob_weq W)).
846- use (transportf (λ F, issurjective (pr11 F))
847- (! weak_relu_square_commutes_strictly C'_univ)).
848- use issurjcomp.
849- - apply weak_from_reluniv_functor_issurjective.
850- apply AC.
851- apply obC_isaset.
852- - apply issurjectiveweq.
853- apply (catiso_ob_weq (_,,weak_reluniv_functor_is_catiso)).
854- Defined .
544+ Definition reluniv_functor_with_ess_surj_issurjective
545+ (C'_univ : is_univalent C')
546+ (AC : AxiomOfChoice.AxiomOfChoice)
547+ (obC_isaset : isaset C)
548+ : issurjective (reluniv_functor_with_ess_surj
549+ _ _ _ _ J J'
550+ R S α α_is_iso
551+ S_pb C'_univ ff_J' S_full R_es
552+ ).
553+ Proof .
554+ set (W := (weak_from_reluniv_functor J'
555+ ,, weak_from_reluniv_functor_is_catiso J' C'_univ ff_J')
556+ : catiso _ _).
557+ use (Core.issurjective_postcomp_with_weq _ (catiso_ob_weq W)).
558+ use (transportf (λ F, issurjective (pr11 F))
559+ (! weak_relu_square_commutes_strictly C'_univ)).
560+ use issurjcomp.
561+ - apply weak_from_reluniv_functor_issurjective.
562+ apply AC.
563+ apply obC_isaset.
564+ - apply issurjectiveweq.
565+ apply (catiso_ob_weq (_,,weak_reluniv_functor_is_catiso)).
566+ Defined .
855567
856568End WeakRelUniv_Transfer.
857569
@@ -902,9 +614,10 @@ Section RelUniv_Yo_Rezk.
902614 (obC_isaset : isaset C)
903615 : issurjective transfer_of_RelUnivYoneda_functor.
904616 Proof .
905- use (reluniv_functor_with_ess_surj_issurjective_AC
617+ use (reluniv_functor_with_ess_surj_issurjective
906618 _ _ _ _ Yo Yo
907619 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
620+ AC obC_isaset
908621 ).
909622 - apply is_univalent_preShv.
910623 - apply is_univalent_preShv.
@@ -914,8 +627,6 @@ Section RelUniv_Yo_Rezk.
914627 - apply fully_faithful_implies_full_and_faithful.
915628 apply right_adj_equiv_is_ff.
916629 - apply R_full.
917- - apply AC.
918- - apply obC_isaset.
919630 Defined .
920631
921632 Definition transfer_of_WeakRelUnivYoneda_functor
@@ -953,4 +664,4 @@ Section RelUniv_Yo_Rezk.
953664 apply weak_relu_square_commutes_strictly.
954665 Defined .
955666
956- End RelUniv_Yo_Rezk.
667+ End RelUniv_Yo_Rezk.
0 commit comments