Journal of Physics: Conference Series
PAPER • OPEN ACCESS
Product of two groups integers modulo m,n and their factor groups using
python
To cite this article: Samsul Arifin et al 2021 J. Phys.: Conf. Ser. 1778 012026
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
Product of two groups integers modulo m,n and their factor
groups using python
Samsul Arifin1 , Indra Bayu Muktyas2, Klara Iswara Sukmawati2
1Mathematics Department, School of Computer Science, Bina Nusantara University,
Jakarta, 11480, Indonesia.
2Mathematics Education Department, STKIP Surya, Tangerang, 15115, Indonesia.
E-mail: [email protected]
Abstract. We a ll know that ZmZn, is a group under a ddition modulo m a nd n. Recall that a
cyclic subgroup is a subgroup that generated by one element in the group. We ca n get the group fa ctor of a ll cyclic subgroups in a groupZmZn, since any their cyclic subgroup is normal. On
the other hand, Python is a programming la nguage that is multipurpose, easy to use, a nd a lso can run on va rious OS like Windows, Ubuntu, or Android. Moreover, the modulo operations on groups ZmZn, a lso can be calculated by Python, so we can use Python to get the factor groups
off a ll their cyclic subgroups. In this paper, we determine the group factor in a groupZmZn,
of a ny cyclic subgroup using Python.
1. Introduction
A group is a set G with a binary operation * which are satisfied associativity, identity, and inverses. If a group G has properties a*b=b*a, for any a and b in G, then we said that group G is commutative. The basic properties of the notion of a group can be studied in [1–3]. Moreover, we can study more the characteristics of cyclic group’s notion in [3–5]. Recall that for an element group a of G, we can form a subset S that containing all elements of G which contains all formsa n n, 1,2,.... This subset forms a subgroup in G and then we called as a cyclic subgroup generated by a. Note that any cyclic group is a commutative and a subgroup of a cyclic group is also cyclic.
First, recall that the set of all integers modulo n, denoted byZn, is a group of modulo addition operation. This notion is very important in studying a finite group since many concepts in group theory using it as an example. Moreover, the set ZmZn is constructed by the cross product of two groups Zm and Zn where m,n are positive integers. On the other hand, we all know that
ZmZn, is also a group. This process can be studied in [4,6–8].In this article, we will study the determination of any cyclic subgroups and their factor group of the group
ZmZn, using Python. Recall that Python is a programming language that powerful, multipurpose, and easy to use (see [9]). Python can also run on various operating system platforms, such as Windows, Linux, Mac OS, and Android. Here, we will give a review of group theory in Session 2. Then, the construction of the group ZmZn, will be given in Session 3. The main result of thisSeminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
article is in Session 4, where we will give the Python code. Furthermore, the result and discussion is in Session 5 and the conclusion in Session 6 will close this article.
2. Method
In general, the research methodology used here is a method of exploration and adaptation of pre-existing results, which was examined from the study of literature. The following is a study of the theories used in this research.
2.1. Group Theory
In this session, we will discuss group and cyclic subgroup. Definition 1 is the definition of a group [7]. Definition 1
Let G be a non empty set with a binary operation “*”. We say that G is a group under this operation if the following three properties are satisfied:
a) Associativity. The operation “*” is associative; that is,
a b c a b c* * ** for any a, b, c in G. b) Identity. There is an element e, which is called the identity in G such that a e e a a* * for every a
in G.
c) Inverses. For any element a in G, there is an element b in G, which is called an inverse of a, such that
* *
a b b a e .
Gallian [7] has shown that the identity and inverse of any elements on a group are unique, and also there's a cancellation and Socks-Shoes property on a group. Now, we will give a notion of a special group which is very important in the learning of a group because many concepts in group theory use it as an example. The group is constructed using the division algorithm on the set of all integers. The binary operations addition modulo n and multiplication modulo n on the set {0, 1, 2, .. . , n-1}, which we denote by Zn, play an extremely important role in abstract algebra. In certain situations, we will want to combine the elements of Zn by addition modulo n only. Moreover, the group Zn under addition
modulo n will denote by
Zn,. This notion will be used in Session 3 to form a groupZmZn,. Next is a discussion of the notion of cyclic. Definition 2 is the notion of cyclic group and the generator of a group [7].Definition 2
A group G is called cyclic if there is an element a in G such thatG
a nn Z . Such an element a is called a generator of G. Moreover, we will say that G is a cyclic group generated by a, and will denoted by G a .Suppose
G is a group and H G, is a non-empty subset of G. Recall that the set H is called a subgroup of G if H is also a group of with the same "binary operations" in the group
G , and denoted , by H (see [2]). Rotman [8] has shown a method that can help us to check a subset of a group is a G subgroup or not. Furthermore, if is a group and g , then G g g nn Z is a cyclic subgroup of G which is generated by g [4]. Recall that the order of g is the smallest positive integer n such G that
g
ne
. (In additive notation, this would be ng 0.) If not, we will say that g has infinite order. Moreover, the order of an element g is denoted by |g| [7] . Next, Example 5 is about a cyclic group and the order of some elements in the group.Now, let G be a group and H be a subgroup of G. Then H is said as normal subgroup, denoted by
,
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
or not, it must be shown
x H x
*
*
1H
for eachx G
. Furthermore, if H be a normal subgroup of a group G, then G H/ a H a G* | is a group with an operation a H*
* b H*
a b H* * for any
a b G
,
[7].
Note that
Zn, is a commutative group, and it can be shown that each subgroup in the group Zn, normal. As a result, each cyclic subgroup within it can also be used by their factor group. If15
n , then Example 8 show us a group
Z15, and the factor group of all cyclic group [10]. 2.2. The Notion of A Group ZmZn,In this session, we will study the construction of a group
ZmZn,. In this paper, we assumed that all groups are commutative [7].Definition 5
a) Let G G1, 2,...,Gn be a family of finite groups. Then the external direct product of G G1, 2,...,Gn,
written as G1 G2 ... Gn, is the set that contains all n-tuples for which the i-th component is in
, 1,...,
i
G i n, and the operation is componentwise. Moreover, in symbols,
1 2 ... n 1, 2,..., n | i i, 1,...,
G G G g g g g G i n
b) The internal direct product of subgroup H and K, denote by G H K if H and K are both normal subgroups of the group G such that G HK whereH K
e .
Note that the direct product of two groups is also a group with an identity. If H and K are groups, then their direct product, denoted by H K, is the set that contains all ordered pairs (h,k) with h H and k K such that (h,k)(h’,k’) = (hh’,kk’). We can see that the direct product H K is a group with the identity is (1,1) and (h, k)−1 = (h−1,k−1) [8].
Lemma 7
We have the following conditions:
1. Let m, n is some positive integers. If gcd
m n , 1 (i.e. m and n are relative prime), then ZmZn is
cyclic and is isomorphic to Zmn, and
1,1 is a generator of ZmZn. If gcdm n , 1 then ZmZn is
not cyclic. 2. The group =1 n mi i
Z is cyclic and is isomorphic to Zm1...mn if and only if the numbers mi for i= 1,...,nare pairwise relative prime, that is, the gcd of any two of them is 1.
3. If a positive integer n is factorized as a product of powers of distinct prime numbers: 1 1 = n ... rnr n p p then 1 1 ... n n nr p p r Z Z Z .
In Gallian [7], if G and H is two finite cyclic groups, then G H is cyclic if and only if |G| and |H| are relatively prime. Note that
2
2 5 5
Z Z . The group
2
5 5 5
Z Z Z is not cyclic but Z52 Z25 is cyclic (see Huang [5]). Consider the example below which is about a cyclic group that direct product of two groups and the example of a direct product of two groups with some generators, which will close this session.
2.3. Python
In this session, we will give a code programming by Python 2.7.14 which will be examined in determining all cyclic subgroups and their factor groups of a group
ZmZn,. This code is the mainSeminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
result of this paper. Our main references for making the code are Theorem 2.3., Definition 2.7 and Lemma 3.6 above.
Python is a popular programming language. As of September 2018, Python is ranked as the 3rd most popular programming language in the world. Python is relatively easier to learn and use than other programming languages. The syntax is simple, easy to read and remember because the philosophy of python itself emphasizes the aspect of readability. Python code is easy to write and easy to read, making it easier to fix if there are errors, and also easy to maintain. To do something with 5 lines of code in another language, maybe in Python only one line of code is needed. This causes the creation of programs in Python to be more concise and faster than other languages. Python is a multifunctional language. Python is rich in standard library support. There are a lot of modules and program extensions that you are ready to use to make the program according to your needs. Python community is a community that is very active in developing Python so it becomes a very reliable language.
In short, the main reason we use Python is that Python is a powerful language and can be run on multiple platforms, but it's also very easy to understand by users because it is user -friendly. Other applications of Python in group theory can be found in [11–13], and the applications in dimension theory of rings and modules can be studied in [14,15]. Besides that, the application of Python can also be seen at [16,17]. This is the pseudo code of our Python code, The program display of the Python code in Windows OS is as follows.
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
Figure 2. The Python Code 3. Result and Discussion
In this session, we will examine the output of the Python program created above. The following is an output from the program above for group
Z2Z2, and Z2Z8, at Windows OS. The following output display will close this session.a) For
Z2Z2,======================================================
Determine The Factor Group of All Cyclic Subgroup in A Group (ZmxZn,+) ---
Input m:2 Input n:2
G = Z_ 2 x Z_ 2 =
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026 --- H = < 0 , 0 > = [[0, 0]] order H = 1 G/H = { [[0, 0]] , [[0, 1]] , [[1, 0]] , [[1, 1]] , } order G/H = 4 --- H = < 0 , 1 > = [[0, 0], [0, 1]] order H = 2 G/H = { [[0, 0], [0, 1]] , [[1, 0], [1, 1]] , } order G/H = 2 --- H = < 1 , 0 > = [[0, 0], [1, 0]] order H = 2 G/H = { [[0, 0], [1, 0]] , [[0, 1], [1, 1]] , } order G/H = 2 --- H = < 1 , 1 > = [[0, 0], [1, 1]] order H = 2 G/H = { [[0, 0], [1, 1]] , [[0, 1], [1, 0]] , } order G/H = 2 ---
This application runs for: 0.308000087738 seconds (after you input the number of n) >>>
b) For
Z2Z8,======================================================
Determine The Factor Group of All Cyclic Subgroup in A Group (ZmxZn,+) --- Input m:2 Input n:8 G = Z_ 2 x Z_ 8 = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7]] order 16 --- H = < 0 , 0 > = [[0, 0]] order H = 1 G/H = { [[0, 0]] , [[0, 1]] , [[0, 2]] , [[0, 3]] , [[0, 4]] , [[0, 5]] , [[0, 6]] , [[0, 7]] , [[1, 0]] , [[1, 1]] , [[1, 2]] , [[1, 3]] , [[1, 4]] , [[1, 5]] ,
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026 [[1, 6]] , [[1, 7]] , } order G/H = 16 --- H = < 0 , 1 > = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] order H = 8 G/H = { [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] , [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7]] , } order G/H = 2 --- H = < 0 , 2 > = [[0, 0], [0, 2], [0, 4], [0, 6]] order H = 4 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6]] , [[0, 1], [0, 3], [0, 5], [0, 7]] , [[1, 0], [1, 2], [1, 4], [1, 6]] , [[1, 1], [1, 3], [1, 5], [1, 7]] , } order G/H = 4 --- H = < 0 , 3 > = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] order H = 8 G/H = { [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] , [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7]] , } order G/H = 2 --- H = < 0 , 4 > = [[0, 0], [0, 4]] order H = 2 G/H = { [[0, 0], [0, 4]] , [[0, 1], [0, 5]] , [[0, 2], [0, 6]] , [[0, 3], [0, 7]] , [[1, 0], [1, 4]] , [[1, 1], [1, 5]] , [[1, 2], [1, 6]] , [[1, 3], [1, 7]] , } order G/H = 8 --- H = < 0 , 5 > = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] order H = 8 G/H = { [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] , [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7]] , } order G/H = 2 --- H = < 0 , 6 > = [[0, 0], [0, 2], [0, 4], [0, 6]] order H = 4 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6]] , [[0, 1], [0, 3], [0, 5], [0, 7]] , [[1, 0], [1, 2], [1, 4], [1, 6]] , [[1, 1], [1, 3], [1, 5], [1, 7]] , } order G/H = 4 --- H = < 0 , 7 > = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] order H = 8
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026 G/H = { [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7]] , [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7]] , } order G/H = 2 --- H = < 1 , 0 > = [[0, 0], [1, 0]] order H = 2 G/H = { [[0, 0], [1, 0]] , [[0, 1], [1, 1]] , [[0, 2], [1, 2]] , [[0, 3], [1, 3]] , [[0, 4], [1, 4]] , [[0, 5], [1, 5]] , [[0, 6], [1, 6]] , [[0, 7], [1, 7]] , } order G/H = 8 --- H = < 1 , 1 > = [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] order H = 8 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] , [[0, 1], [0, 3], [0, 5], [0, 7], [1, 0], [1, 2], [1, 4], [1, 6]] , } order G/H = 2 --- H = < 1 , 2 > = [[0, 0], [0, 4], [1, 2], [1, 6]] order H = 4 G/H = { [[0, 0], [0, 4], [1, 2], [1, 6]] , [[0, 1], [0, 5], [1, 3], [1, 7]] , [[0, 2], [0, 6], [1, 0], [1, 4]] , [[0, 3], [0, 7], [1, 1], [1, 5]] , } order G/H = 4 --- H = < 1 , 3 > = [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] order H = 8 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] , [[0, 1], [0, 3], [0, 5], [0, 7], [1, 0], [1, 2], [1, 4], [1, 6]] , } order G/H = 2 --- H = < 1 , 4 > = [[0, 0], [1, 4]] order H = 2 G/H = { [[0, 0], [1, 4]] , [[0, 1], [1, 5]] , [[0, 2], [1, 6]] , [[0, 3], [1, 7]] , [[0, 4], [1, 0]] , [[0, 5], [1, 1]] , [[0, 6], [1, 2]] , [[0, 7], [1, 3]] , } order G/H = 8 --- H = < 1 , 5 > = [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] order H = 8 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] ,
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026 [[0, 1], [0, 3], [0, 5], [0, 7], [1, 0], [1, 2], [1, 4], [1, 6]] , } order G/H = 2 --- H = < 1 , 6 > = [[0, 0], [0, 4], [1, 2], [1, 6]] order H = 4 G/H = { [[0, 0], [0, 4], [1, 2], [1, 6]] , [[0, 1], [0, 5], [1, 3], [1, 7]] , [[0, 2], [0, 6], [1, 0], [1, 4]] , [[0, 3], [0, 7], [1, 1], [1, 5]] , } order G/H = 4 --- H = < 1 , 7 > = [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] order H = 8 G/H = { [[0, 0], [0, 2], [0, 4], [0, 6], [1, 1], [1, 3], [1, 5], [1, 7]] , [[0, 1], [0, 3], [0, 5], [0, 7], [1, 0], [1, 2], [1, 4], [1, 6]] , } order G/H = 2 ---
This application runs for: 1.57899999619 seconds (after you input the number of n) >>>
4. Conclusion
The conclusions that can be obtained from this study is by using the Python program, we can determine the factor groups of all cyclic subgroups of the group
ZmZn, easily. You can also immediately see the time used by the Python program in seconds.Acknowledgments
The authors thank to Bina Nusantara University for providing us with the chance to encourage and facilitate this research.
References
[1] Fraleigh J B 2003 A First Course in Abstract Algebra (Pearson Education) [2] Herstein I N 1999 Abstract Algebra (New York, USA: Wiley)
[3] Isaacs. I. Martin. 1994 Algebra. a graduate course (Pacific Grove, California: Brooks/Cole Publishing)
[4] Dummit D S and Foote R M 2008 Abstract Algebra, 2nd Ed (Wiley India Pvt. Limited) [5] Huang H (Auburn U P 2018 Algebra Lecture Notes
[6] Adkins W A and Weintraub S H 1992 Algebra: An Approach Via Module Theory ed J H Ewing, F W Gehring and P R Halmos (Springer-Verlag)
[7] Gallian J 2016 Contemporary Abstract Algebra (Cengage Learning)
[8] Rotman J J 2017 Advanced Modern Algebra (New York: American Mathematical Society) [9] Rossum G van 1995 Python Tutorial CWI Report CS-R9526
[10] Arifin S 2018 Grup Faktor Dari Semua Subgrup Siklik Di Grup (Zn,+) Sci. TECH J. Ilm. Ilmu Pengetah. dan Teknol. 4 p 53–8
[11] Muktyas I B and Arifin S 2018 Sebarang Pembangun Subgrup Siklik Dari Suatu Grup (Zn,+) J. Mat. MANTIK" 4 p 116–21
[12] Muktyas I B and Arifin S 2018 SEMUA SUBGRUP SIKLIK DARI GRUP (Zn,+) Teorema Teor. dan Ris. Mat. 3 p 177–86
[13] Rahman B, Arifin S and Muktyas I B 2019 All Cyclic Subgroups In Group (ZmxZn,+) Using Python Int. J. Sci. Technol. Res. 8 p 2282–5
[14] Arifin S, Garminia H, Arifin S, Garminia H, Arifin S and Garminia H 2018 Valuation Dimension of Ring Zn Using Python Int. J. Eng. Technol. 7 p 6351–6
Seminar Nasional Matematika dan Pendidikan Matematika (SEMADIK) 2020 Journal of Physics: Conference Series 1778 (2021) 012026
IOP Publishing doi:10.1088/1742-6596/1778/1/012026
[15] Arifin S and Garminia H 2019 Uniserial dimension of module zm × zn over Z using python Int. J. Sci. Technol. Res. 8 p 194–9
[16] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V. and Vanderplas J 2011 Scikit-learn: Machine learning in Python. Journal of machine learning research 12 p 2825–30
[17] Van der Walt, S., Schönberger, J.L., Nunez-Iglesias, J., Boulogne, F., Warner, J.D., Yager, N., Gouillart, E. and Yu T 2014 scikit-image: image processing in Python PeerJ 2 p.e453