This file is indexed.

/usr/share/gap/lib/algsc.gd is in gap-libs 4r7p5-2.

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
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#############################################################################
##
#W  algsc.gd                    GAP library                     Thomas Breuer
##
##
#Y  Copyright (C)  1997,  Lehrstuhl D für Mathematik,  RWTH Aachen,  Germany
#Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland
#Y  Copyright (C) 2002 The GAP Group
##
##  This file contains the design of elements of algebras given by structure
##  constants (s.~c.).
##
##  An s.~c. algebra is a free left module $A$ of fixed dimension $n$, say,
##  over a ring-with-one $R$, with multiplication defined on the vectors of
##  the standard basis $B$ of $A$ by the structure constants table.
##
##  A *full s.~c. algebra* is an s.c. algebra that contains $B$.
##  (So a full s.~c. algebra need *not* contain the whole family of its
##  elements.)
##
##  The family <Fam> of s.~c. algebra elements consists of all linear
##  combinations of the basis vectors of $A$, with coefficients in a
##  suitable set.
##  If the elements family of $R$ has a uniquely determined zero element,
##  this set is the whole element family of $R$, and <Fam> has the
##  category `IsFamilyOverFullCoefficientsFamily'.
##  Otherwise this set is $R$ itself, stored in the component
##  `coefficientsDomain' of <Fam>.
##  (Note that the zero element is already part of the s.~c. table.)
##
##  In any case, the value of the attribute `CoefficientsFamily' is
##  the elements family of the family of $R$.
##  (This is used in family predicates.)
##
##  S.~c. algebra elements have an external representation, which is the
##  coefficients vector w.r.t. the standard basis.
##
##  The constructor for s.~c. algebra elements is `ObjByExtRep'.
##


#############################################################################
##
#F  SCTableEntry
##
DeclareSynonym( "SCTableEntry", SC_TABLE_ENTRY );


#############################################################################
##
#F  SCTableProduct
##
DeclareSynonym( "SCTableProduct", SC_TABLE_PRODUCT );


#############################################################################
##
#C  IsFamilyOverFullCoefficientsFamily( <Fam> )
##
##  If the family <Fam> has this category, all coefficients tuples over
##  `CoefficientsFamily( <Fam> )' describe valid elements of <Fam>.
##
##  (This tells mainly what `ObjByExtRep' can assume resp. must test.)
##
DeclareCategory( "IsFamilyOverFullCoefficientsFamily", IsFamily );
#T other file?


#############################################################################
##
#C  IsSCAlgebraObj( <obj> )
#C  IsSCAlgebraObjCollection( <obj> )
#C  IsSCAlgebraObjFamily( <obj> )
##
##  S.~c. algebra elements may have inverses, in order to allow `One' and
##  `Inverse' we make them scalars.
##
DeclareCategory( "IsSCAlgebraObj", IsScalar );
DeclareCategoryCollections( "IsSCAlgebraObj" );
DeclareCategoryCollections( "IsSCAlgebraObjCollection" );
DeclareCategoryCollections( "IsSCAlgebraObjCollColl" );
DeclareCategoryFamily( "IsSCAlgebraObj" );


#############################################################################
##
#P  IsFullSCAlgebra( <A> )
##
##  An s.~c. algebra is a free left module $A$ over a ring-with-one $R$,
##  with multiplication defined on the vectors of the standard basis $B$
##  of an algebra $\hat{A}$ containing $A$ by the structure constants table
##  of $\hat{A}$.
##
##  $A$ is a *full s.~c. algebra* if it contains $B$.
##  (So a full s.~c. algebra need *not* contain the whole family of its
##  elements.)
#T Do we really need this in addition to `IsFullFPAlgebra',
#T or would it be misuse to take `IsFullFPAlgebra' here?
##
DeclareProperty( "IsFullSCAlgebra", IsFLMLOR and IsSCAlgebraObjCollection );


#############################################################################
##
#P  IsCanonicalBasisFullSCAlgebra( <B> )
##
##  is `true' if the underlying free left module of the basis <B> is a full
##  s.~c. algebra and <B> is equal to its canonical basis,
##  and `false' otherwise.
##
##  The canonical basis of a full s.~c. algebra consists of elements whose
##  external representations are standard basis vectors.
##
##  (The canonical basis of a full s.~c. algebra is constructed together with
##  the algebra.)
##
DeclareProperty( "IsCanonicalBasisFullSCAlgebra", IsBasis );

InstallTrueMethod( IsCanonicalBasis, IsCanonicalBasisFullSCAlgebra );


#############################################################################
##
#F  IsSCAlgebraObjSpace( <V> )
##
##  If an $F$-vector space <V> is in the filter `IsSCAlgebraObjSpace' then
##  this expresses that <V> consists of elements in a s.c. algebra,
##  and that <V> can be handled via the mechanism of nice bases
##  (see~"Vector Spaces Handled By Nice Bases"), in the following way.
##  The `NiceFreeLeftModuleInfo' value of <V> is irrelevant,
##  and the `NiceVector' value of $v \in <V>$ is defined as
##  $`ExtRepOfObj'( v )$.
##
DeclareHandlingByNiceBasis( "IsSCAlgebraObjSpace",
    "for free left modules of s.c. algebra elements" );


#############################################################################
##
#M  IsFiniteDimensional( <A> )  . . . . . S.~c. algebras are always fin. dim.
##
InstallTrueMethod( IsFiniteDimensional,
    IsFreeLeftModule and IsSCAlgebraObjCollection );


#############################################################################
##
#E