/usr/share/axiom-20170501/src/algebra/GROUP.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | )abbrev category GROUP Group
++ Description:
++ The class of multiplicative groups, that is, monoids with
++ multiplicative inverses.
++
++ Axioms\br
++ \tab{5}\spad{leftInverse("*":(%,%)->%,inv)}\tab{5}\spad{inv(x)*x = 1}\br
++ \tab{5}\spad{rightInverse("*":(%,%)->%,inv)}\tab{4}\spad{x*inv(x) = 1}
Group() : Category == SIG where
SIG ==> Monoid with
inv : % -> %
++ inv(x) returns the inverse of x.
"/" : (%,%) -> %
++ x/y is the same as x times the inverse of y.
"**" : (%,Integer) -> %
++ x**n returns x raised to the integer power n.
"^" : (%,Integer) -> %
++ x^n returns x raised to the integer power n.
unitsKnown
++ unitsKnown asserts that recip only returns
++ "failed" for non-units.
conjugate : (%,%) -> %
++ conjugate(p,q) computes \spad{inv(q) * p * q}; this is
++ 'right action by conjugation'.
commutator : (%,%) -> %
++ commutator(p,q) computes \spad{inv(p) * inv(q) * p * q}.
add
import RepeatedSquaring(%)
x:% / y:% == x*inv(y)
recip(x:%) == inv(x)
_^(x:%, n:Integer):% == x ** n
x:% ** n:Integer ==
zero? n => 1
n<0 => expt(inv(x),(-n) pretend PositiveInteger)
expt(x,n pretend PositiveInteger)
conjugate(p,q) == inv(q) * p * q
commutator(p,q) == inv(p) * inv(q) * p * q
|