/usr/share/axiom-20170501/src/algebra/SEGXCAT.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 | )abbrev category SEGXCAT SegmentExpansionCategory
++ Author: Stephen M. Watt
++ Date Created: June 5, 1991
++ Description:
++ This category provides an interface for expanding segments to
++ a stream of elements.
SegmentExpansionCategory(S,L) : Category == SIG where
S : OrderedRing
L : StreamAggregate(S)
SIG ==> SegmentCategory(S) with
expand : List % -> L
++ expand(l) creates a new value of type L in which each segment
++ \spad{l..h by k} is replaced with \spad{l, l+k, ... lN},
++ where \spad{lN <= h < lN+k}.
++ For example, \spad{expand [1..4, 7..9] = [1,2,3,4,7,8,9]}.
expand : % -> L
++ expand(l..h by k) creates value of type L with elements
++ \spad{l, l+k, ... lN} where \spad{lN <= h < lN+k}.
++ For example, \spad{expand(1..5 by 2) = [1,3,5]}.
map : (S -> S, %) -> L
++ map(f,l..h by k) produces a value of type L by applying f
++ to each of the succesive elements of the segment, that is,
++ \spad{[f(l), f(l+k), ..., f(lN)]}, where \spad{lN <= h < lN+k}.
|