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

Axioms for semigroups: L,R,J,H-trivial, aperiodic #18265

Closed
nthiery opened this issue Apr 21, 2015 · 34 comments
Closed

Axioms for semigroups: L,R,J,H-trivial, aperiodic #18265

nthiery opened this issue Apr 21, 2015 · 34 comments

Comments

@nthiery
Copy link
Contributor

nthiery commented Apr 21, 2015

This ticket defines the usual Green axioms for semigroups, and provides stubs for the corresponding categories:

sage: Semigroups().LTrivial()
Category of ltrivial semigroups
sage: Semigroups().LTrivial().RTrivial()
Category of jtrivial semigroups
sage: Semigroups().HTrivial().Finite()
Category of finite aperiodic semigroups
sage: Semigroups().Commutative().RTrivial()
Category of commutative jtrivial semigroups

This is a first step toward #18001.

CC: @hivert @saliola @avirmaux @sagetrac-sage-combinat

Component: algebra

Author: Nicolas M. Thiéry

Branch/Commit: 6158f0e

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/18265

@nthiery nthiery added this to the sage-6.7 milestone Apr 21, 2015
@nthiery

This comment has been minimized.

@nthiery
Copy link
Contributor Author

nthiery commented Apr 21, 2015

Branch: u/nthiery/semigroups/axioms-18265

@nthiery
Copy link
Contributor Author

nthiery commented Apr 26, 2016

Work Issues: Create a ticket and reference it in the doc

@nthiery
Copy link
Contributor Author

nthiery commented Apr 26, 2016

New commits:

2e678e618265: setup axioms for L,R,J,H trivial and aperiodic semigroups

@nthiery
Copy link
Contributor Author

nthiery commented Apr 26, 2016

Commit: 2e678e6

@nthiery
Copy link
Contributor Author

nthiery commented Apr 26, 2016

comment:4

I am setting it to needs review to get the patchbot to pick it up.

@tscrim
Copy link
Collaborator

tscrim commented Apr 26, 2016

comment:5

It would be good for the new files to have the standard copyright template: http://doc.sagemath.org/html/en/developer/coding_basics.html#headings-of-sage-library-code-files.

Patchbot report has also come in and states errors in

sage -t --long src/sage/categories/semigroups.py  # 5 doctests failed

along with docbuilding issues.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

f5185bcMerge branch 'develop' into semigroups/axioms-18265
ba12c4118265: minor doc improvement, non verbose TestSuite, marked category example as not implemented (in this ticket)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Changed commit from 2e678e6 to ba12c41

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Changed commit from ba12c41 to 2dc3f8a

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

282be1f18265: added reference to #20515 + some explanations
01a9efe18265: fixed the copyright headers of the new files
2dc3f8a18265: added the new categories to the reference manual

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

77776ed18265: fixed monoid to semigroup in several spots of the documentation
18baeef18265: uncapitalize module title

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Changed commit from 2dc3f8a to 18baeef

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

61cf0f418265: fixed references to wikipedia

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Changed commit from 18baeef to 61cf0f4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Changed commit from 61cf0f4 to 7943a39

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

7943a3918265: proofread the html documentation

@nthiery
Copy link
Contributor Author

nthiery commented Apr 28, 2016

Changed work issues from Create a ticket and reference it in the doc to none

@nthiery
Copy link
Contributor Author

nthiery commented Apr 28, 2016

comment:12

Thanks Travis for having a look. The patchbot should go green now, and I have finished cleaning things up.

Up for review for real now!

@tscrim
Copy link
Collaborator

tscrim commented Apr 29, 2016

comment:13

Some comments:

  • Do we want these to be axioms since these properties for subcategories do not make as much sense (e.g., for groups, L-trivial = R-trivial = J-trivial = category consisting only of the trivial group, correct?)
  • Typo "preoder".
  • Do we want to spend some time trying to beautiful axiom printing (i.e., "J-trivial" instead of "jtrivial")?
  • I would like to see the defining properties to the category level documentation, not only in the subcategory methods.

@tscrim tscrim modified the milestones: sage-6.7, sage-7.2 Apr 29, 2016
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 30, 2016

Changed commit from 7943a39 to d09fe3b

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 30, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

d09fe3b18265: typo: preoder -> preorder

@nthiery
Copy link
Contributor Author

nthiery commented Apr 30, 2016

comment:15

Hi Travis,

Thanks for the review.

Replying to @tscrim:

  • Do we want these to be axioms since these properties for subcategories do not make as much sense (e.g., for groups, L-trivial = R-trivial = J-trivial = category consisting only of the trivial group, correct?)

We want them to be axioms to interact nicely with each other: there
will be many interesting combinations between the Finite / X-trivial /
Unital axioms (and more will come, like Regular, ...). In fact
implementing those was one of my original motivation for implementing
axioms in Sage :-)

Indeed Groups().XTrivial() is, well, trivial, so that's boring. But
this is only polluting the namespace of the Groups() category, not the
groups themselves, so that's a minimal annoyance.

  • Typo "preoder".

Thanks for catching. Fixed!

  • Do we want to spend some time trying to beautiful axiom printing
    (i.e., "J-trivial" instead of "jtrivial")?

This would be cute, indeed. I'll have a quick look if it's trivial to
do. Otherwise, we can leave it for later; that will be easy to change
anyway.

  • I would like to see the defining properties to the category level
    documentation, not only in the subcategory methods.

I agree that documentation at the category level would be highly
desirable. But I don't want to duplicate manually the documentation.
That's a general problem that requires a general solution by having a
nice automatically generated default documentation for categories with
axioms. See also the related:

#16363

In the mean time the subcategory methods are the most appropriate
location for the doc, since this makes it accessible for all
subcategories by XXX.Jtrivial?


New commits:

d09fe3b18265: typo: preoder -> preorder

@tscrim
Copy link
Collaborator

tscrim commented Apr 30, 2016

comment:16

Replying to @nthiery:

Replying to @tscrim:

  • Do we want these to be axioms since these properties for subcategories do not make as much sense (e.g., for groups, L-trivial = R-trivial = J-trivial = category consisting only of the trivial group, correct?)

We want them to be axioms to interact nicely with each other: there
will be many interesting combinations between the Finite / X-trivial /
Unital axioms (and more will come, like Regular, ...). In fact
implementing those was one of my original motivation for implementing
axioms in Sage :-)

I think we should also add that an inverse H-trivial monoids implies J-trivial.

Indeed Groups().XTrivial() is, well, trivial, so that's boring. But
this is only polluting the namespace of the Groups() category, not the
groups themselves, so that's a minimal annoyance.

Considering there is exactly 1 X-trivial group (up to isomorphism), there won't be any additional pollution from Parent/ElementMethods either. So I agree, minimal annoyance.

  • Do we want to spend some time trying to beautiful axiom printing
    (i.e., "J-trivial" instead of "jtrivial")?

This would be cute, indeed. I'll have a quick look if it's trivial to
do. Otherwise, we can leave it for later; that will be easy to change
anyway.

Let me know.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 30, 2016

Changed commit from d09fe3b to 06d9bb4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 30, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

06d9bb418265: fixed category_with_axiom.uncamelcase to also split on single capitals; e.g. JTrivial is displayed as j trivial, not jtrivial

@nthiery
Copy link
Contributor Author

nthiery commented Apr 30, 2016

comment:18

Replying to @tscrim:

I think we should also add that an inverse R-trivial monoids implies J/H-trivial.

Yes, but only when we will have the "inverse" axiom in the sense of
local inverses in semigroups. Our current Inverse axiom is about
having a global inverse (it's indeed annoying that we have this naming
conflict, but there is nothing much we can do about it).

Of course an R-trivial monoid with a global inverse is J/H trivial,
but that's not super interesting :-)

This would be cute, indeed. I'll have a quick look if it's trivial to
do. Otherwise, we can leave it for later; that will be easy to change
anyway.

Let me know.

I made a quick fix, so that JTrivial is displayed as j trivial and not
jtrivial; it only slightly better, but requires no special casing and
makes for a more consistent implementation of uncamelcasing.

It's been discussed several times that axioms like AdditiveAssociative
would be better displayed as additive-associative, to raise
ambiguities in expressions such as:

    Category of associative additive commutative additive associative additive unital distributive magmas and additive magmas

This would make the j trivial into j-trivial as a by-product
without any special casing. However this is a relatively invasive
change (it will require updating a bunch of doctests"), so I vote for
doing this in a separate ticket.

Do you agree that this is good enough for now?

@tscrim
Copy link
Collaborator

tscrim commented Apr 30, 2016

Reviewer: Travis Scrimshaw

@tscrim
Copy link
Collaborator

tscrim commented Apr 30, 2016

comment:19

Replying to @nthiery:

Replying to @tscrim:

I think we should also add that an inverse R-trivial monoids implies J/H-trivial.

Yes, but only when we will have the "inverse" axiom in the sense of
local inverses in semigroups. Our current Inverse axiom is about
having a global inverse (it's indeed annoying that we have this naming
conflict, but there is nothing much we can do about it).

Of course an R-trivial monoid with a global inverse is J/H trivial,
but that's not super interesting :-)

I'm somewhat leaning towards having the implication for the global inverse, but considering the category of X-trivial groups is, well, trivial, I don't feel strongly about this. So if you don't feel like doing it, then you can set this to a positive review.

This would make the j trivial into j-trivial as a by-product
without any special casing. However this is a relatively invasive
change (it will require updating a bunch of doctests"), so I vote for
doing this in a separate ticket.

Yes, I believe this should be on a separate ticket.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 6, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

6158f0e18265: added the (dummy) implication H-trivial -> J-trivial for groups

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 6, 2016

Changed commit from 06d9bb4 to 6158f0e

@nthiery
Copy link
Contributor Author

nthiery commented May 6, 2016

comment:21

Replying to @tscrim:

I'm somewhat leaning towards having the implication for the global inverse, but considering the category of X-trivial groups is, well, trivial, I don't feel strongly about this. So if you don't feel like doing it, then you can set this to a positive review.

Done and pushed!

@tscrim
Copy link
Collaborator

tscrim commented May 6, 2016

comment:22

Thank you.

@vbraun
Copy link
Member

vbraun commented May 17, 2016

Changed branch from u/nthiery/semigroups/axioms-18265 to 6158f0e

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

No branches or pull requests

3 participants