GAP has a function, FactorCosetAction(), for action on cosets of a subgroup. I don't think there is a need to implement anything of this sort directly, and not use it via libgap.
https://docs.gap-system.org/doc/ref/chap41.html#X7FED50ED7ACA5FB2 On 3 February 2024 19:50:55 GMT, 'Ruchit Jagodara' via sage-devel <sage-devel@googlegroups.com> wrote: >Okay , thank you for your help ! : ) > >On Saturday, February 3, 2024 at 11:59:31 PM UTC+5:30 David Joyner wrote: > >> On Sat, Feb 3, 2024 at 1:13 PM 'Ruchit Jagodara' via sage-devel < >> sage-...@googlegroups.com> wrote: >> >>> So, why is the quotient function implemented in Sage is >>> giving RegularActionHomomorphism of G/N ? Is there any particular reason >>> for it? Should I change it (because I found a FIXME note also, saying that >>> gap has a better way to find quotient)? I am implementing some functions >>> related to group theory, and I can work on this as well. >>> >> >> The function quotient in the PermutationGroups class is returning another >> instance of that class. What you want is in a different Python class. >> Instead of "fixing" the quotient function, you can simply implement another >> quotient function, call it quotient_to_cosets or something like that. >> >> >> >>> On Saturday, February 3, 2024 at 10:24:54 PM UTC+5:30 David Roe wrote: >>> >>>> You can lift elements via the quotient map to get representatives of >>>> each coset. I'm not sure that this is wrapped in Sage, but using gap >>>> directly you have: >>>> >>>> sage: Pgap = p._libgap_() >>>> sage: Ngap = N._libgap_() >>>> sage: phi = Pgap.NaturalHomomorphismByNormalSubgroup(Ngap); phi >>>> [ (2,3,4,5,6,7) ] -> [ f1^2 ] >>>> sage: PN = phi.ImagesSource() # the quotient as an isomorphic group >>>> sage: preimages_gens = [phi.PreImagesRepresentative(g) for g in >>>> PN.GeneratorsOfGroup()] >>>> sage: preimages_gens >>>> [(2,4,6)(3,5,7)] >>>> sage: all_preimages = [phi.PreImagesRepresentative(g) for g in PN.List()] >>>> sage: all_preimages >>>> [(), (2,4,6)(3,5,7), (2,6,4)(3,7,5)] >>>> >>>> David >>>> >>>> On Sat, Feb 3, 2024 at 10:58 AM 'Ruchit Jagodara' via sage-devel < >>>> sage-...@googlegroups.com> wrote: >>>> >>>>> I think this is giving a group isomorphic to the actual quotient group >>>>> but I need the actual quotient group. Therefor, I don't know how to find >>>>> that exact group. Below is one example, >>>>> >>>>> sage: p = PermutationGroup([(2,3,4,5,6,7)]) >>>>> sage: N = p.minimal_normal_subgroups()[0] >>>>> sage: N >>>>> Subgroup generated by [(2,5)(3,6)(4,7)] of (Permutation Group with >>>>> generators [(2,3,4,5,6,7)]) >>>>> sage: N.list() >>>>> [(), (2,5)(3,6)(4,7)] >>>>> sage: p.quotient(N) >>>>> Permutation Group with generators [(1,2,3)] >>>>> sage: _.list() >>>>> [(), (1,2,3), (1,3,2)] >>>>> >>>>> If this is the collection of representative elements(for cosets) then >>>>> ``1`` should not be in any of the permutations. >>>>> >>>>> I need a quotient group structure whose elements(the cosets) have the >>>>> representative element (from the original group) and the normal subgroup >>>>> (which was used to create the quotient group) as their properties or >>>>> available in some other form. >>>>> On Friday, January 19, 2024 at 10:33:21 PM UTC+5:30 Dima Pasechnik >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On 19 January 2024 15:18:45 GMT, 'Ruchit Jagodara' via sage-devel < >>>>>> sage-...@googlegroups.com> wrote: >>>>>> >In case my questions have caused any confusion, I am rephrasing them >>>>>> as >>>>>> >below. >>>>>> > >>>>>> >I have a group G and its minimal normal subgroup N. >>>>>> > >>>>>> >I want to find G/N. Do you know how I can do that? (I also want G/N >>>>>> to be >>>>>> >an object of the same class as G.) >>>>>> >>>>>> It's G.quotient(N), no? >>>>>> >>>>>> > >>>>>> >My another question is: How can I find the group operation of a group >>>>>> G? >>>>>> >On Thursday, January 18, 2024 at 7:13:50 PM UTC+5:30 Dima Pasechnik >>>>>> wrote: >>>>>> > >>>>>> >> On Thu, Jan 18, 2024 at 11:39 AM 'Ruchit Jagodara' via sage-devel >>>>>> >> <sage-...@googlegroups.com> wrote: >>>>>> >> > >>>>>> >> > Actually, that won't work according to the implementation. >>>>>> >> >>>>>> >> sorry, I don't understand what won't work. >>>>>> >> Did you mean to ask a different question? >>>>>> >> >>>>>> >> > Can you please take a look at the code I wrote (although I have >>>>>> not >>>>>> >> written it according to codestyle of sage, yet. But I will do that >>>>>> when the >>>>>> >> code starts working.), where minimum_generating_set is the main >>>>>> function? >>>>>> >> > >>>>>> >> > Link- >>>>>> >> >>>>>> https://github.com/RuchitJagodara/sage/blob/8b642329b6d579c536511d5f1d1511fb842c9c54/src/sage/groups/libgap_wrapper.pyx#L405C1-L513C1 >>>>>> >>>>>> >> > >>>>>> >> > I have implemented this code according to the research paper. >>>>>> >> >>>>>> >> Sorry, what paper are you talking about? >>>>>> >> >>>>>> >> >>>>>> >> > The algorithm can find the minimum generating set in polynomial >>>>>> time, >>>>>> >> which is very cool! So, I thought it would be good to implement >>>>>> this in >>>>>> >> Sage, especially since the paper has been recently published. >>>>>> >> > >>>>>> >> > I've almost completed the code, but I'm unsure about how to find >>>>>> the >>>>>> >> Quotient group and its representative elements. I need help with >>>>>> this. >>>>>> >> > >>>>>> >> > I've outlined my doubts in the code, which you can see in the >>>>>> following >>>>>> >> link:- >>>>>> >> > >>>>>> >> > >>>>>> >> >>>>>> https://github.com/RuchitJagodara/sage/blob/8b642329b6d579c536511d5f1d1511fb842c9c54/src/sage/groups/libgap_wrapper.pyx#L478-L486 >>>>>> >>>>>> >> > >>>>>> >> > GAP has a function named RightCosets that can be used to form a >>>>>> quotient >>>>>> >> group, but there is a problem: how can I find representative >>>>>> elements of >>>>>> >> that group? Additionally, how can I create a Quotient group using >>>>>> >> RightCosets in Sage, given that the algorithm uses a recursive >>>>>> call, and >>>>>> >> the quotient group must have the >>>>>> ParentLibGAP.minimum_generating_set >>>>>> >> function? >>>>>> >> > On Wednesday, January 17, 2024 at 2:35:55 PM UTC+5:30 Dima >>>>>> Pasechnik >>>>>> >> wrote: >>>>>> >> >> >>>>>> >> >> Functions such as Group(), PermutationGroup() take such lists as >>>>>> inputs. >>>>>> >> >> >>>>>> >> >> >>>>>> >> >> On 17 January 2024 06:35:07 GMT, 'Ruchit Jagodara' via >>>>>> sage-devel < >>>>>> >> sage-...@googlegroups.com> wrote: >>>>>> >> >>> >>>>>> >> >>> And to implement the function, I want a function that takes a >>>>>> list of >>>>>> >> generators and returns a group. Does anyone know of any function >>>>>> that can >>>>>> >> do this? >>>>>> >> >>> On Friday, January 12, 2024 at 8:38:18 PM UTC+5:30 Ruchit >>>>>> Jagodara >>>>>> >> wrote: >>>>>> >> >>>> >>>>>> >> >>>> I am implementing the minimum_generating_set function in Sage, >>>>>> but I >>>>>> >> am facing some issues, such as where I should implement that >>>>>> function as my >>>>>> >> implementation uses some gap methods. And I found one class >>>>>> ParentLibGAP >>>>>> >> which can be used for this but I am not sure because I found that >>>>>> >> PermutationGroup class is not derived from this class so if I >>>>>> implement >>>>>> >> this function here then function will not be available for this >>>>>> group (And >>>>>> >> I don't know if there are many more), plus I have to use some >>>>>> functions of >>>>>> >> GroupMixinLibGAP class, so can you please suggest me a location or >>>>>> any fix >>>>>> >> for this. >>>>>> >> > >>>>>> >> > -- >>>>>> >> > 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+...@googlegroups.com. >>>>>> >> > To view this discussion on the web visit >>>>>> >> >>>>>> https://groups.google.com/d/msgid/sage-devel/db166267-6491-42e3-bc58-01ea447a5c9bn%40googlegroups.com >>>>>> >>>>>> >> . >>>>>> >> >>>>>> > >>>>>> >>>>> -- >>>>> 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+...@googlegroups.com. >>>>> >>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/sage-devel/2119b5d7-b98d-4edb-acb7-3e7704cbaffen%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/sage-devel/2119b5d7-b98d-4edb-acb7-3e7704cbaffen%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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+...@googlegroups.com. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sage-devel/41e28657-e22b-4cdc-846b-87cf6c4870d8n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/sage-devel/41e28657-e22b-4cdc-846b-87cf6c4870d8n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> > >-- >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 view this discussion on the web visit >https://groups.google.com/d/msgid/sage-devel/508c6bf3-a552-457a-b179-6fef375b05fbn%40googlegroups.com. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/D0422010-7766-495A-9967-A31F4B0628D9%40gmail.com.