Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Definition of full is nonstandard #118

Open
patrick-nicodemus opened this issue Nov 6, 2022 · 1 comment
Open

Definition of full is nonstandard #118

patrick-nicodemus opened this issue Nov 6, 2022 · 1 comment

Comments

@patrick-nicodemus
Copy link
Contributor

From Theory/Functor.v -

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.

@jwiegley
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants