#17160: Finitely generated axiom for (mutiplicative) magmas, semigroups, 
monoids,
groups
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.4
      Component:  categories         |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Nicolas M. ThiƩry  |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/nthiery/categories/finitely-     |  f027ce2b5e1abe22d49bcdc96f2cfeebced8fc16
  generated-magmas-17160             |     Stopgaps:
   Dependencies:  #10668             |
-------------------------------------+-------------------------------------

Comment (by tscrim):

 Replying to [comment:12 nthiery]:
 > Another issue: having a distinguished set of generators and being
 > finitely generated does not necessarily imply that the distinguished
 > set of generators is finite. So we would actually need three axioms:
 > "WithGenerators", "FinitelyGenerated", and "WithFiniteGeneratingSet".
 > So for a finite magma we still would need to do
 > "Magmas().Finite().WithFiniteGeneratingSet()".
 >
 > I am not sure this is worth the complication. Especially since we will
 > have to do something similar for additive magmas, rings, fields, ...

 ...Right... Although I think the right thing is actually
 `WithEnumeratedGeneratingSet` as we can do the same thing for infinite
 enumerated generating sets. However this is mostly an empty category/axiom
 because we can write generic code for `WithGeneratingSet` which will error
 out (at the right spot) for non-enumerated generating sets. In many ways,
 it's just a join with `EnumeratedSets`.

 Another thought, we have 2 axioms `FinitelyGenerated` and `WithGenerators`
 and we create new join categories such as
 `SemigroupWithEnumeratedGeneratingSet` which implements an `__iter__`
 which calls `semigroup_generators`. The reasoning would be for monoids,
 we'd want to `monoid_generators` and need a separate method to avoid
 ambiguities similar to #15381. Or would we use `gens` in this case and
 just push everything up to the category?

 For rings, algebras, fields, I think we get this for free from the axiom
 magic and that they are subcategories of `Magma`. Perhaps I'm
 misunderstanding how things work?

 > Well, also all the code to build the Cayley graph, to compute
 > J/R/L-classes, etc. In short all my finite semigroups code :-)
 >
 > I oppose querying the cardinality, or even just is_finite, for this
 > can be super expensive if not undecidable. We really want something
 > declarative here.

 Yep, it's a bad idea.

 > We probably should bring the discussion to sage-dev. As usual this
 > takes a bit of preparation to have an efficient discussion there.
 > I'll try to do this soon.

 Probably.

--
Ticket URL: <http://trac.sagemath.org/ticket/17160#comment:13>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to