OKlibrary  0.2.1.6
CyclicGroups.mac
Go to the documentation of this file.
00001 /* Oliver Kullmann, 6.7.2008 (Swansea) */
00002 /* Copyright 2008, 2009, 2012 Oliver Kullmann
00003 This file is part of the OKlibrary. OKlibrary is free software; you can redistribute
00004 it and/or modify it under the terms of the GNU General Public License as published by
00005 the Free Software Foundation and included in this library; either version 3 of the
00006 License, or any later version. */
00007 
00022 /* The residue class rings ZZ_n are defined as "residues_rng(n)" in
00023    ComputerAlgebra/Algebra/Lisp/Ringframes/Rings/ResidueClasses.mac.
00024 */
00025 
00026 oklib_include("OKlib/ComputerAlgebra/Algebra/Lisp/Ringframes/Rings/ResidueClasses.mac")$
00027 oklib_include("OKlib/ComputerAlgebra/Algebra/Lisp/Ringframes/BasicNotions.mac")$
00028 
00029 /* Cyclic groups of order n (n >= 1), where the operation also allows as
00030    inputs arbitrary integers (which are interpreted as representing their
00031    congruence classes):
00032 */
00033 cyclic_ugrp(n) := rngfrm2egrd_add(residues_rng(n))$
00034 cyclic_ugrpi(n) := endcons(mod_add_inv(n), cyclic_ugrp(n))$
00035 cyclic_ougrp(n) := [create_list(i,i,0,n-1), mod_add(n), 0]$
00036 
00037