/usr/share/gap/lib/algsc.gd is in gap-libs 4r6p5-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 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
|