Skip to content

Finitely generated axiom for (mutiplicative) magmas, semigroups, monoids, groups #17160

@nthiery

Description

@nthiery

This introduce an axiom FinitelyGeneratedAsMagma, as well as related
categories with axioms for magmas, semigroups and groups::

    sage: Groups().FinitelyGeneratedAsMagma()
    Category of finitely generated groups

For ease of notations, when there is no ambiguity, one can do::

    sage: Groups().FinitelyGenerated()
    Category of finitely generated groups

One motivation for this change (for #8678) is that finite semigroups
in Sage used to be automatically endowed with an EnumeratedSets
structure; the default enumeration is then obtained by iteratively
multiplying the semigroup generators. This forced any finite semigroup
to either implement an enumeration, or provide semigroup generators;
this was often inconvenient.

Instead, finite semigroups that provide a distinguished finite set of
generators with semigroup_generators should now explicitly declare
themselves in the category of FinitelyGeneratedSemigroups:

    sage: Semigroups().FinitelyGenerated()
    Category of finitely generated semigroups

This is a backward incompatible change.

TODO:

  • Use the occasion to migrate TransitiveIdeal to RecursivelyEnumeratedSet

Depends on #10668
Depends on #15852

CC: @tscrim @sagetrac-sage-combinat @darijgr @avirmaux

Component: categories

Keywords: days64

Author: Nicolas M. Thiéry

Branch/Commit: 19ceb81

Reviewer: Travis Scrimshaw

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions