Hey everyone,

If anybody asks you whether Sage supports groups, here is an answer :
>

Well, the question should be whether Sage supports Cartesian products. 
Right now the answer is not really beyond sets because I don't think anyone 
has wanted it (maybe there's some tickets on this...?). With #10963, we can 
fix some of the problems here fairly easily.

>
> sage: 
> AG=cartesian_product([CyclicPermutationGroup(5),CyclicPermutationGroup(4),CyclicPermutationGroup(4)])
> sage: AG.base_ring() # WTF ??? This has nothing to do here
>

This comes from CategoryObject and there's a TODO to refactor it out into 
the proper category, but that would need everything (with a base ring) to 
be a new-style parent.
 

> sage: AG.construction() # same comment
>

This gives the construction of AG functorially and here should be returning 
the CartesianProduct functor and I believe it's used by the coercion 
framework in pushouts (someone correct me if I'm wrong).
 

> sage: AG.first() # same comment
> ((), (), ())
> sage: AG.last() # same comment
> ((1,5,4,3,2), (1,4,3,2), (1,4,3,2))
>

As mentioned Erik, these are because AG is an enumerated set. 
 

> sage: AG.gens_dict()
> ...
> AttributeError: 'CartesianProduct_with_category' object has no attribute 
> 'gens'
> sage: AG.gens_dict_recursive()
> ...
> AttributeError: 'NoneType' object has no attribute 'gens_dict_recursive'
> sage: AG.group_generators()
> ...
> AttributeError: 'CartesianProduct_with_category' object has no attribute 
> 'gens'
> sage: AG.j_classes()
> ...
> AttributeError: 'CartesianProduct_with_category' object has no attribute 
> 'gens'
> sage: AG.objgen()
> ...
> AttributeError: 'CartesianProduct_with_category' object has no attribute 
> 'gen'
>

   The gens_dict* should also be refactored out like base_ring IMO (manly 
to ParentWithGens once we get those to new-style parents). We do want to 
try and get away from the sometimes ambiguous gens() to 
explicit_generators() (and have them return a Family object so we can 
better index them and for consistency with the infinitely generated 
objects), but we can make gens() return a tuple of explicit_generators(), 
which will fix j_classes. The last one returns the tuple (object, the 
unique generator) and I have no idea what it is for.

Want me to create the ticket?

Best,
Travis

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

Reply via email to