axiom-developer
[Top][All Lists]

Re: [Axiom-developer] what is meaining of % in SPAD

 From: William Sit Subject: Re: [Axiom-developer] what is meaining of % in SPAD Date: Wed, 20 Jul 2005 19:23:11 -0400

"Page, Bill" wrote:
>
> Dear Axiom Mavins:
>
> If I read for example in expr.spad.pamphlet:
>
> )abbrev domain EXPR Expression
> ++ Top-level mathematical expressions
> ++ Author: Manuel Bronstein
> ++ Date Created: 19 July 1988
> ++ Date Last Updated: October 1993 (P.Gianni), February 1995 (MB)
> ++ Description: Expressions involving symbolic functions.
> ++ Keywords: operator, kernel, function.
> Expression(R:OrderedSet): Exports == Implementation where
>   Q   ==> Fraction Integer
>   K   ==> Kernel %
>   MP  ==> SparseMultivariatePolynomial(R, K)
> ...
> Implementation
> ...
>     if R has IntegralDomain then
> ...
>       Rep := Fraction MP
>
> ------------
>
> What does the % represent?

% means the current domain in which this occurs (for categories, it refers to
any domain of that category). In older spad files, the symbol is \$ (Chapter 12
of Axiom book). Here, it means EXPR R.

> Or more specifically, what exactly is the value of Rep above

FRAC SMP(R, Kernel EXPR R)

> if I write:
>
> (%e<%pi)\$EXPR INT
>
> ???

The '%' in front of 'e' and 'pi' are just a special symbol applied before system
symbols. I am not too sure exactly how 'EXPR R' orders its elements, but from
'expr.spad', the ordering is inherited from 'Rep := FRAC SMP(R, Kernel EXPR R)'.
Ignoring the ordering on 'FRAC' (uniquely determined by the ordering on 'SMP'),
this means the ordering should be induced by lexicographic order using the
"variables" ordering of 'Kernel EXPR R'. Here is where things become difficult
(one of the cyclic compiler problems?). Have to dig into kl.spad.