#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.