QUADRATICINT - A MAPLE PACKAGE FOR WORKING WITH ELEMENTS OF O. O. Trebenko, N. M. Tsybulska
(National Pedagogical Dragomanov University, Kyiv, Ukraine)
March 18, 2016
Abstract
This paper presents the description of the package for working with elements of where is a squarefree integer. Given in the paper are the program codes of package commands and examples. Developed software will be useful for specialists in the field of abstract algebra and applications.
Key words: Computer algebra, symbolic computation, algebraic number theory, ring theory, rings of integers of algebraic number fields, rings .
Mathematics Subject Classification (2010): 11R04, 11R11, 11Y40, 11Y70
1. INTRODUCTION
Recently, attention to research of the rings rapidly increases. Primarily, this is due to the search for the solution of many unresolved problems raised within the algebraic theory, which today is extremely important to modern mathematics. In addition, there is an applied interest for algebraic numbers have a broad application, especially in cryptography (code Hill) and topology.
In applications of algebraic numbers (especially in cryptography) it is more often needed to decompose numbers into the prime factors not in rings , but in . Note that by we mean the minimal ring containing and the element , namely the ring . The ring coincides with the ring when and is its proper subring when .
Due to the above, modern theoretical research in algebraic number theory and applications need a special package/module for working with elements of . But, unfortunately, existing SCM don’t contain such package.
As a result of investigations of quadratic number rings properties [1]-[4] authors have developed some procedures that could be useful for the following investigation and for applications.
The authors created such a package for SCM Maple. This paper presents the characterization of the package, gives the program codes and examples.
2. THE STRUCTURE OF THE PACKAGE QUADRATICINT
Calling Sequence
QuadraticInt[command](arguments)
command(arguments)
Description
• The QuadraticInt package is a collection of commands for working with elements of the principal ideal ring , where is a squarefree integer.
• Note that by we mean the minimal ring containing Z and the element , namely the ring . The ring coincides with the ring when and is its proper subring when .
List of QuadraticInt Package Commands
Let and let be a ring of principal ideals. The following is a list of available commands:
1. SGIiselementof(a,d): determines whether the element belongs to some ring and returns .
2. SGInorm(a,d): returns the norm of the element in .
3. SGInormal(x,d): returns the element if and returns the element if (is used to provide the uniqueness of the result in the following procedures).
4. SGIquo(y1,y2,d,’r’): returns the quotient of divided by in . The third argument is optional. If it is included in the calling sequence for SGIquo, it will be assigned the remainder .
5. SGIrem(a,b,d,’q’): returns remainder of divided by in . If a third argument is included in the calling sequence for SGIrem, it will be assigned the quotient q.
6. SGIgcd(a,d): computes the greatest common divisor of an arbitrary number of elements in .
7. SGIlcm(a,d): computes the least common multiply of an arbitrary number of elements.
8. SGIlrgcd(a1,b1,d): returns q= SGIgcd({a1,b1}, d), and optionally such that .
9. SGIisprime(n,d): is a primality testing routine. It returns true if is prime in . It returns false otherwise.
10. SGIfactor(n,d): factorization of in .
11. SGIfacset(n,d): computes the set of prime factors of the element .
12. SGIfactors(n,d): factorization is returned in the form where , – prime elements, – their multiplicities, – some unit.
13. SGIdivisor(a,d): computes the set of all divisors of (up to associates).
14. SGIphi(u,d): calculates Euler function for .
15. SGIorder(n,m,d): order of modulo .
16. SGIbasis(x,y,d): determines whether the elements , form a basis of vector space .
17. SGIissqr(n,d): test if in is a perfect square.
18. SGIareassociated(a,b,d): test if and are associates in .
3. DESCRIPTION OF QUADRATINT PACKAGE PROCEDURES
QuadraticInt[] - determines whether the element belongs to some ring and returns
SGI()
Parameters
-
element of the principal ideal ring elements of the principal ideal ring where is a squarefree integer
squarefree integer (
The SGI function determines whether the element belongs to some principal ideal ring where is a squarefree integer and returns .
Examples
QuadraticInt[SGInorm] - norm of the element in
SGInorm(,)
element of the principal ideal ring where is a squarefree integer
The SGInorm function computes the norm of the element in the principal ideal ring where is a squarefree integer.
The element is a number of the form where and are integers, is a squarefree integer.
The norm of the element is defined as .
QuadraticInt[SGI] - Normalize the element in
SGI(,)
The SGI function returns the element (the function is auxiliary for the following procedures) where is an element of the principal ideal ring where is a squarefree integer.
QuadraticInt[SGI] - quotient in
SGI(), SGI()
(optional) name
The SGI function returns the quotient of divided by in the principal ideal ring where is a squarefree integer.
The third argument is optional. If it is included in the calling sequence for SGIquo, it will be assigned the remainder .
The element is divisible by the element with the remainder in the ring if where and β are the fractional parts of and
QuadraticInt[SGI] - remainder in
elements of the principal ideal ring where is a squarefree integer
The SGI function returns the remainder of divided by in the principal ideal ring where is a squarefree integer.
If a third argument is included in the calling sequence for SGIrem, it will be assigned the quotient .
QuadraticInt[SGI] – tests if a and b are associates in
The SGI function tests if and are associated in the principal ideal ring where is a squarefree integer.
The SGI function returns true if and are associated in the false otherwise.
QuadraticInt[SGI] - gcd in
The SGI function computes the greatest common divisor of an arbitrary number of elements in the principal ideal ring where is a squarefree integer.
The SGI function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - lcm in
SGIlcm()
The SGIlcm function computes the least common multiply of an arbitrary number of elements in the principal ideal ring where is a squarefree integer.
The SGIlcm function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - returns g = SGIgcd(a1, b1, d) and optionally a couple [s,t] such that g=a1s+b1t in
The SGI function returns g = SGIgcd(), and optionally [s,t] such that in the principal ideal ring where is a squarefree integer.
QuadraticInt[SGI] - basis test in
The SGI function determines whether the elements , form a basis of the vector space being a principal ideal ring where is a squarefree integer.
The SGIbasis function returns true if x and y form a basis of the principal ideal ring , false otherwise.
QuadraticInt[SGI] - the value modulo in
SGImod()
The SGImod function for a given element a computes the element a modulo in the principal ideal ring where is a squarefree integer.
The value of the element modulo in the coincides with the value of the function
QuadraticInt[SGI] - primality test in
SGIisprime()
The SGIisprime function is a primality testing routine. It returns true if n is prime in the principal ideal ring where is a squarefree integer. It returns false otherwise.
The SGIisprime function works correctly for all rings which are principal ideal rings.
The element is prime in iff it is not a unit or a zero, and is divisible only by associates and units.
The element is prime in iff the element belongs to one of three types:
if .
, where is an odd prime, and .
, where and is prime.
QuadraticInt[SGI] - factorization in
The SGIfactor function returns the factorization of n in the principal ideal ring where is a squarefree integer.
The answer is in the form: such that where u is a unit in ; are the distinct primary prime factors of c, and are their multiplicities.
The SGIfactor function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - primary prime factors of the element in
SGIfacset()
The SGIfacset function computes the set of prime factors up to associates of the element in the principal ideal ring where is a squarefree integer.
The SGIfacset function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - factorization of the element in
SGIfactors()
The SGIfactors function returns the factorization in the form where , – prime elements, – their multiplicities, u – some unit in the principal ideal ring where is a squarefree integer.
The SGIfactors function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - test if the element in is a perfect square
SGIissqr()
The SGIissqr function returns true if is a square of some element in the principal ideal ring where is a squarefree integer, false otherwise.
The SGIissqr function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - the set of divisors of the element in
SGIdivisor()
The SGIdivisor function computes the set of all divisors (up to associates) of a in the principal ideal ring where is a squarefree integer.
The SGIdivisor function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - number of elements in in a reduced system modulo u
SGIphi()
The SGIphi function returns the number of elements in the reduced system modulo in the principal ideal ring where is a squarefree integer.
The SGIphi function returns a value, that is equal to the order of the multiplicative group .
The SGIphi function calculates Euler function for
The SGIphi function works correctly for all rings which are principal ideal rings.
QuadraticInt[SGI] - order of the element in
SGIorder()
elements of the principal ideal ring where is a squarefree integer, .
The SGIorder function returns the smallest positive integer i such that
If and are not coprime, FAIL is returned.
The SGIorder function works correctly for all rings which are principal ideal rings.
4. Conclusions
Proposed in the paper is a package for working with elements of in SCM Maple. It will be useful both for further investigations and for practical applications.
5. References
[1] Тrebenko О.O, Tsybulska N.M. Prime elements of rings // Nauckovyi chasopys Natsionalnogo Pedagogichnogo Universitetu imeni M.P. Dragomanova (Scientific journal of the National Pedagogical Dragomanov University). Series 1. Physical and Mathematical Sciences: Collection of Scientific Papers. – Kyiv: Dragomanov NPU, 2014. – №16 (1). – P. 219-227.
[2] Tsybulska N.M. Rings : properties and practical applications: student research work. – Kyiv: 2016. – 53 p. – Bibliogr.: p. 29-30. (In Ukrainian)
[3] Tsybulska N.M. Rings : properties and practical applications // Education and science – 2016. Collection of scientific papers. – Kyiv: Dragomanov NPU, 2016. – P. 243-244. (In Ukrainian)
[4] Tsybulska N.M. The Euler function on the set // Proceeding of the Fifth scientific conference of young scientists on mathematics and physics «Actual problems of modern mathematics and physics and methods of their learning» (April 25-26, 2016, Kyiv, Ukraine). – Kyiv: Dragomanov NPU, 2016. – P.59. (In Ukrainian)