This file is indexed.

/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