@@ -54,6 +54,7 @@ Require Import UniMath.CategoryTheory.Limits.Coproducts.
5454Require Import UniMath.CategoryTheory.Limits.BinCoproducts.
5555Require Import UniMath.CategoryTheory.Limits.Pushouts.
5656Require Import UniMath.CategoryTheory.Adjunctions.Core.
57+ Require Import UniMath.CategoryTheory.Adjunctions.Reflections.
5758
5859Section TwoSig.
5960
@@ -294,25 +295,26 @@ Definition OneSig_to_TwoSig (S : signature C) : TwoSignature := (S ,, ∅ ,, emp
294295
295296(** This induces a left adjoint to the forgetful functor *)
296297Lemma universal_OneSig_to_TwoSig (S : signature C) :
297- is_universal_arrow_to (pr1_category two_signature_disp) S (OneSig_to_TwoSig S) (identity _).
298+ is_reflection (F := pr1_category two_signature_disp)
299+ (make_reflection_data (OneSig_to_TwoSig S) (identity _)).
298300Proof .
299- intros TT f.
300- unshelve eapply unique_exists.
301- - refine (f ,, _) .
302- intro.
303- use empty_rect.
304- - apply id_left.
305- - intro.
306- apply homset_property.
301+ intro f.
302+ use make_reflection_arrow.
303+ - exists (f : signature_category⟦_, _⟧).
304+ intro x.
305+ exact (empty_rect _).
306+ - exact (!id_left _).
307307 - intros y eqy.
308308 apply subtypePath_prop.
309- etrans;[|exact eqy].
310- apply pathsinv0, id_left.
309+ refine (_ @ !eqy).
310+ symmetry.
311+ apply id_left.
311312Defined .
312313
313314Definition TwoSig_OneSig_is_right_adjoint
314315 : is_right_adjoint (pr1_category two_signature_disp)
315- := right_adjoint_left_from_partial (X := signature_category ) _ _ _ universal_OneSig_to_TwoSig.
316+ := invmap (left_adjoint_weq_reflections _)
317+ (λ (S : signature_category), make_reflection _ (universal_OneSig_to_TwoSig S)).
316318
317319Lemma OneSig_TwoSig_fully_faithful
318320 : fully_faithful (left_adjoint TwoSig_OneSig_is_right_adjoint : _ ⟶ TwoSig_category).
@@ -462,20 +464,17 @@ Definition OneMod_TwoMod (M : MOD1) : MOD2 :=
462464
463465(** This induces a left adjoint to the forgetful functor *)
464466Lemma universal_OneMod_TwoMod (M : MOD1) :
465- is_universal_arrow_to TwoMod_OneMod_functor M (OneMod_TwoMod M ) (identity _).
467+ is_reflection (F := TwoMod_OneMod_functor)
468+ (make_reflection_data (OneMod_TwoMod M ) (identity _)).
466469Proof .
467- intros TT f.
468- unshelve eapply unique_exists.
469- - exact ((pr1 f ,, fun x => empty_rect _) ,, pr2 f) .
470- - apply id_left.
471- - intro.
472- apply homset_property.
473- -
474- intros y eqy.
470+ intro f.
471+ use make_reflection_arrow.
472+ - exact ((pr1 (f : MOD1⟦_, _⟧) ,, fun x => empty_rect _) ,, pr2 (f : MOD1⟦_, _⟧)).
473+ - exact (!id_left _).
474+ - intros y eqy.
475475 rewrite id_left in eqy.
476- cbn in eqy.
477- rewrite <- eqy.
478- cbn.
476+ cbn in *.
477+ rewrite eqy.
479478 set (y2' := fun (x : model_equations _) => _).
480479 assert (e : y2' = (pr2 (pr1 y))).
481480 {
@@ -491,8 +490,9 @@ Proof.
491490Defined .
492491
493492
494- Definition TwoMod_OneMod_is_right_adjoint : is_right_adjoint TwoMod_OneMod_functor :=
495- right_adjoint_left_from_partial (X := MOD1) _ _ _ universal_OneMod_TwoMod.
493+ Definition TwoMod_OneMod_is_right_adjoint : is_right_adjoint TwoMod_OneMod_functor
494+ := invmap (left_adjoint_weq_reflections _)
495+ (λ M, make_reflection _ (universal_OneMod_TwoMod M)).
496496
497497Lemma OneMod_TwoMod_fully_faithful : fully_faithful (left_adjoint TwoMod_OneMod_is_right_adjoint).
498498Proof .
0 commit comments