/usr/share/axiom-20170501/src/algebra/FS2.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 | )abbrev package FS2 FunctionSpaceFunctions2
++ Author: Manuel Bronstein
++ Date Created: 22 March 1988
++ Date Last Updated: 3 May 1994
++ Description:
++ Lifting of maps to function spaces
++ This package allows a mapping R -> S to be lifted to a mapping
++ from a function space over R to a function space over S;
FunctionSpaceFunctions2(R, A, S, B) : SIG == CODE where
R : Join(Ring, OrderedSet)
A : FunctionSpace R
S : Join(Ring, OrderedSet)
B : FunctionSpace S
K ==> Kernel A
P ==> SparseMultivariatePolynomial(R, K)
SIG ==> with
map : (R -> S, A) -> B
++ map(f, a) applies f to all the constants in R appearing in \spad{a}.
CODE ==> add
smpmap: (R -> S, P) -> B
smpmap(fn, p) ==
map(x+->map(z+->map(fn, z),x)$ExpressionSpaceFunctions2(A,B),
y+->fn(y)::B,p)_
$PolynomialCategoryLifting(IndexedExponents K, K, R, P, B)
if R has IntegralDomain then
if S has IntegralDomain then
map(f, x) == smpmap(f, numer x) / smpmap(f, denom x)
else
map(f, x) == smpmap(f, numer x) * (recip(smpmap(f, denom x))::B)
else
map(f, x) == smpmap(f, numer x)
|