This file is indexed.

/usr/share/axiom-20170501/src/algebra/FRNAAF2.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
)abbrev package FRNAAF2 FramedNonAssociativeAlgebraFunctions2
++ Author: Johannes Grabmeier
++ Date Created: 28 February 1992
++ Date Last Updated: 28 February 1992
++ Description:
++ FramedNonAssociativeAlgebraFunctions2 implements functions between
++ two framed non associative algebra domains defined over different rings.
++ The function map is used to coerce between algebras over different
++ domains having the same structural constants.

FramedNonAssociativeAlgebraFunctions2(AR,R,AS,S) : SIG == CODE where
  R : CommutativeRing
  S : CommutativeRing
  AR : FramedNonAssociativeAlgebra R
  AS : FramedNonAssociativeAlgebra S

  V ==> Vector

  SIG ==> with

    map : (R -> S, AR) -> AS
      ++ map(f,u) maps f onto the coordinates of u to get an element
      ++ in \spad{AS} via identification of the basis of \spad{AR}
      ++ as beginning part of the basis of \spad{AS}.

  CODE ==> add

    map(fn : R -> S, u : AR): AS ==
      rank()$AR > rank()$AS => error("map: ranks of algebras do not fit")
      vr : V R := coordinates u
      vs : V S := map(fn,vr)$VectorFunctions2(R,S)
      rank()$AR = rank()$AS => represents(vs)$AS
      ba := basis()$AS
      represents(vs,[ba.i for i in 1..rank()$AR])