/usr/share/axiom-20170501/src/algebra/GPOLSET.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 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 | )abbrev domain GPOLSET GeneralPolynomialSet
++ Author: Marc Moreno Maza
++ Date Created: 04/26/1994
++ Date Last Updated: 12/15/1998
++ Description:
++ A domain for polynomial sets.
GeneralPolynomialSet(R,E,VarSet,P) : SIG == CODE where
R : Ring
E : OrderedAbelianMonoidSup
VarSet : OrderedSet
P : RecursivePolynomialCategory(R,E,VarSet)
LP ==> List P
PtoP ==> P -> P
SIG ==> PolynomialSetCategory(R,E,VarSet,P) with
convert : LP -> $
++ \axiom{convert(lp)} returns the polynomial set whose members
++ are the polynomials of \axiom{lp}.
finiteAggregate
shallowlyMutable
CODE ==> add
Rep := List P
construct lp ==
(removeDuplicates(lp)$List(P))::$
copy ps ==
construct(copy(members(ps)$$)$LP)$$
empty() ==
[]
parts ps ==
ps pretend LP
map (f : PtoP, ps : $) : $ ==
construct(map(f,members(ps))$LP)$$
map! (f : PtoP, ps : $) : $ ==
construct(map!(f,members(ps))$LP)$$
member? (p,ps) ==
member?(p,members(ps))$LP
ps1 = ps2 ==
{p for p in parts(ps1)} =$(Set P) {p for p in parts(ps2)}
coerce(ps:$) : OutputForm ==
lp : List(P) := sort(infRittWu?,members(ps))$(List P)
brace([p::OutputForm for p in lp]$List(OutputForm))$OutputForm
mvar ps ==
empty? ps => error"Error from GPOLSET in mvar : #1 is empty"
lv : List VarSet := variables(ps)
empty? lv =>
error "Error from GPOLSET in mvar : every polynomial in #1 is constant"
reduce(max,lv)$(List VarSet)
retractIfCan(lp) ==
(construct(lp))::Union($,"failed")
coerce(ps:$) : (List P) ==
ps pretend (List P)
convert(lp:LP) : $ ==
construct lp
|