Content deleted Content added
m →[[Euclidean ring]]: Tag Bare URLs using AWB |
|||
(3 intermediate revisions by 3 users not shown) | |||
Line 29:
==History==
GAP was developed at Lehrstuhl D für Mathematik (LDFM), [[RWTH Aachen University|Rheinisch-Westfälische Technische Hochschule Aachen]], [[Germany]] from [[1986]] to [[1997]]. After the retirement of [[Joachim Neubüser]] from the chair of LDFM, the development and maintenance of GAP was coordinated by the School of Mathematical and Computational Sciences at the [[University of St Andrews]], [[Scotland]].<ref>{{cite web|url=https://www.gap-system.org/Doc/History/history.html|title=Some history of GAP|website=Official GAP website|access-date=September 27, 2019}}</ref> In the summer of 2005 coordination was transferred to an equal partnership of four 'GAP Centres', located at the University of St Andrews, RWTH Aachen, [[Braunschweig University of Technology|Technische Universität Braunschweig]], and [[Colorado State University]] at [[Fort Collins, Colorado|Fort Collins]]; in April 2020, a fifth GAP Centre located at the [[University of Kaiserslautern|TU Kaiserslautern]] was added.<ref>{{cite web|url=https://www.gap-system.org/Contacts/centres.html|title=GAP Centres|website=Official GAP website|access-date=April 18, 2020}}</ref>
==Features==
Line 35:
==Distribution==
GAP and its sources, including packages (sets of user contributed programs), data library (including a [[list of small groups]]) and the manual, are distributed freely, subject to "[[copyleft]]" conditions. GAP runs on any [[Unix]] system, under [[Microsoft Windows|Windows]], and on [[
The user contributed packages are an important feature of the system, adding a great deal of functionality. GAP offers package authors the opportunity to submit these packages for a process of [[peer review]], hopefully improving the quality of the final packages, and providing recognition akin to an academic publication for their authors. {{As of|2021|03}}, there are 151 packages distributed with GAP, of which approximately 71 have been through this process.
Line 43:
==Sample session==
=== [[Permutation group]] ===
{{sxhl|lang=gap-console|1=
gap> G:=SmallGroup(8,1); # Set G to be the 1st group (in GAP catalogue) of order 8.
Line 54 ⟶ 55:
(1,5,3,7,2,6,4,8), (1,6,3,8,2,5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]
}}
=== [[Euclidean ring]] ===
{{sxhl|lang=gap-console|1=
gap> # test consistency of EuclideanDegree, EuclideanQuotient, EuclideanRemainder,
gap> # and QuotientRemainder for some ring and elements of it
gap> checkEuclideanRing :=
> function(R, colls...)
> local coll1, coll2, a, b, deg_b, deg_r, q, r, qr;
> if Length(colls) >= 1 then coll1:=colls[1];
> elif Size(R) <= 100 then coll1 := R;
> else coll1 := List([1..100],i->Random(R));
> fi;
> if Length(colls) >= 2 then coll2:=colls[2];
> elif Size(R) <= 100 then coll2 := R;
> else coll2 := List([1..100],i->Random(R));
> fi;
> for b in coll1 do
> if IsZero(b) then continue; fi;
> deg_b := EuclideanDegree(R, b);
> for a in coll2 do
> q := EuclideanQuotient(R, a, b); Assert(0, q in R);
> r := EuclideanRemainder(R, a, b); Assert(0, r in R);
> if a <> q*b + r then Error("a <> q*b + r for ", [R,a,b]); fi;
> deg_r := EuclideanDegree(R, r);
> if not IsZero(r) and deg_r >= deg_b then Error("Euclidean degree did not decrease for ",[R,a,b]); fi;
> qr := QuotientRemainder(R, a, b);
> if qr <> [q, r] then Error("QuotientRemainder inconsistent for ", [R,a,b]); fi;
> od;
> od;
> return true;
> end;;
gap> # rings in characteristic 0
gap> checkEuclideanRing(Integers,[-100..100],[-100..100]);
true
gap> checkEuclideanRing(Rationals);
true
gap> checkEuclideanRing(GaussianIntegers);
true
gap> checkEuclideanRing(GaussianRationals);
true
gap> # finite fields
gap> ForAll(Filtered([2..50], IsPrimePowerInt), q->checkEuclideanRing(GF(q)));
true
gap> # ZmodnZ
gap> ForAll([1..50], m -> checkEuclideanRing(Integers mod m));
true
gap> checkEuclideanRing(Integers mod ((2*3*5)^2));
true
gap> checkEuclideanRing(Integers mod ((2*3*5)^3));
true
gap> checkEuclideanRing(Integers mod ((2*3*5*7)^2));
true
gap> checkEuclideanRing(Integers mod ((2*3*5*7)^3));
true
}}<ref>https://pygments.org/docs/lexers/#pygments.lexers.algebra.GAPConsoleLexer {{Bare URL inline|date=August 2025}}</ref>
==See also==
|