You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Class Full `(F : C ⟶ D) := {
prefmap {x y} (g : F x ~> F y) : x ~> y;
prefmap_respects {x y} : Proper (equiv ==> equiv) (@prefmap x y);
prefmap_id : ∀ x, @prefmap x x id ≈ id;
prefmap_comp : ∀ x y z (f : F y ~> F z) (g : F x ~> F y),
prefmap (f ∘ g) ≈ prefmap f ∘ prefmap g;
fmap_sur {x y} (g : F x ~> F y) : fmap[F] (prefmap g) ≈ g
}.
This definition of 'full' is nonstandard. Do you have a motivation/justification for this choice of definition?
I would advocate instead
Class Full `(F : C ⟶ D) := {
prefmap {x y} (g : F x ~> F y) : x ~> y;
fmap_sur {x y} (g : F x ~> F y) : fmap[F] (prefmap g) ≈ g
}.
Or for modularity, define what it means for a map of setoids to be surjective and use that definition.
The question of whether prefmap should respect equality is more an issue of constructive mathematics than of category theory but in Bishop-style constructive math you do not require existence to respect equality.
The text was updated successfully, but these errors were encountered:
So we're just dropping the functoriality? I think that makes sense, as I cannot recall why I originally added that to the definition. I concur with your assessment.
From Theory/Functor.v -
This definition of 'full' is nonstandard. Do you have a motivation/justification for this choice of definition?
I would advocate instead
Or for modularity, define what it means for a map of setoids to be surjective and use that definition.
The question of whether
prefmap
should respect equality is more an issue of constructive mathematics than of category theory but in Bishop-style constructive math you do not require existence to respect equality.The text was updated successfully, but these errors were encountered: