• Home
  • About
    • Ravicharan photo

      Ravicharan

      My personal blog built on jekyll framework

    • Learn More
    • Twitter
    • Facebook
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

Polycyclic groups - Part1

11 Jul 2018

Reading time ~2 minutes

Idea

Implementation of polycyclic groups in Sympy. A few methods of the pc-groups require similar implementation as that of the FpGroups, so, PcGroup can be implemented as a child of the FpGroup such that it will inherit the methods required.

Deliverables

  • Computation of polycyclic series for a given FpGroup.
  • Solving word problem for Polycyclic groups using collection algortihm.
  • Implement a method to compute coset representatives of a given CosetTable.(Might be useful in the computation of polycyclic series). (Week-9)
  • Elementatry methods like compute_pc_presentation, compute_power_relations, compute_relative_orders etc… (Week-9)

Algorithms

  • Computing the polycyclic series: As sugested by Valeriia and Kalevi in the gitter channel, the method to compute the polycyclic series would be, first we compute the derived series G = G1, G2, ..., Gn = <identity>. Every quotient Q_i = G_i/G_i+1 is abelian so every subgroup of the quotient group is a normal subgroup. To compute the subnormal series, we randomly pick and element e(Could be the generators as well) from Q_i and quotient the group Q_i with the group generated by this element e. This will be repeated recursively to obtain the cyclic subnormal series, H1, H2, ..., Hn. Now, the pre-images(H*_k) of H_k in the quotient map from G_i -> G_i+1 will be the subgroups of G_i. Now, we lift it to the original group. So, the final cyclic subnormal series(polycyclic series) will be G1 > ... > G_i > H*_1 >... H*_n > G_i+1 > ... > <identity>.
  • Computing the abelian-subgroup-quotient (Auxilary method): The presentation of the quotient G/H is given by adding the generators of G to the relators of H, they are defined on the same free-group.
  • Computing Polycyclic generating sequence and relative orders: The polycyclic generating sequence can be obtained by chosing an element g_i such that g_i belongs to G_i/G_i+1. And the relative order r_i is written as r_i = [G_i:G_i+1].

Implementation

  • A PcGroup class is defined as a child of the FpoGroup class.
  • Method is_polycyclic is implemented to check if the given group is polycyclic.
  • A method to compute the polycyclic series for a given group.
  • A method to check if a given group is the subgroup of a parent group.(Uses the PermutationGroup isomorphic to it).
  • A few elementary methods are implemented as a part of the PcGroup class, which include is_prime_order, relative_order, compute_pcgs.

Trvial example

To be added after testing.

PR

Here is the link to the PR ‘Add methods for Polycyclic Groups’. This is currently work in progress (as of 11tha July, 2018) and would be completed soon.

Week-9:

  • Method to compute the coset representative for a given cosetTable.
  • Implementation of the collectuion algorthim.
  • Implement methods to compute the pc-presentation and the power realtions.
  • To-Do: Add tests and documentation.

    References

  • [1] Derek F.Holt, Bettina Fick, Eamonn A.O’Brian. Handbook of Computational Group Theory.
  • [2] Article on Polycyclic groups.
  • [3] GAP - Polycyclic package.


markdownsyntaxsampletestjekyll Share Tweet +1