|
|
|
last edited 13 years ago by test1 |
| 1 2 3 4 | ||
|
Editor: Bill Page
Time: 2008/12/02 21:32:33 GMT-8 |
||
| Note: new | ||
changed: - \begin{spad} )abbrev domain NZINT NonZeroInteger NonZeroInteger: Join(OrderedAbelianSemiGroup, Monoid, CommutativeStar,CoercibleTo(Integer)) with gcd: (%,%) -> % ++ gcd(a,b) computes the greatest common divisor of two ++ positive integers \spad{a} and b. _-: % -> % retract:Integer->% retractIfCan:Integer->Union(%,"failed") retract:NonNegativeInteger->% retractIfCan:NonNegativeInteger->Union(%,"failed") convert:NonNegativeInteger->% == SubDomain(Integer,#1 ~= 0) add Rep == Integer x:% y:% z:Integer nz:NonNegativeInteger -x == (-(x pretend Integer)) pretend % x+y == (z:=(x pretend Integer)+(y pretend Integer)) = 0 => error "zero" z pretend % coerce(x):Integer == x pretend Integer retract(z)== z pretend % convert(nz):% == retract(nz) retractIfCan(z) == zero?(z) => "failed" retract(z) retract(nz)== nz pretend % retractIfCan(nz) == zero?(nz) => "failed" retract(nz) \end{spad} \begin{axiom} )show NZINT \end{axiom} \begin{axiom} i:NZINT:=1 j:NZINT:=-1 j:NZINT:=-i i+1 j+1 i+j \end{axiom} \begin{axiom} i-j retractIfCan(0)$NZINT \end{axiom}
(1) -> <spad>
)abbrev domain NZINT NonZeroInteger NonZeroInteger: Join(OrderedAbelianSemiGroup,Monoid, CommutativeStar, CoercibleTo(Integer)) with gcd: (%, %) -> % ++ gcd(a, b) computes the greatest common divisor of two ++ positive integers \spad{a} and b. _-: % -> % retract:Integer->% retractIfCan:Integer->Union(%, "failed") retract:NonNegativeInteger->% retractIfCan:NonNegativeInteger->Union(%, "failed") convert:NonNegativeInteger->% == SubDomain(Integer, #1 ~= 0) add Rep == Integer x:% y:% z:Integer nz:NonNegativeInteger -x == (-(x pretend Integer)) pretend % x+y == (z:=(x pretend Integer)+(y pretend Integer)) = 0 => error "zero" z pretend %
coerce(x):Integer == x pretend Integer retract(z)== z pretend % convert(nz):% == retract(nz) retractIfCan(z) == zero?(z) => "failed" retract(z) retract(nz)== nz pretend % retractIfCan(nz) == zero?(nz) => "failed" retract(nz)</spad>
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/1280517217541771186-25px001.spad
using system compiler.
NZINT abbreviates domain NonZeroInteger
------------------------------------------------------------------------
initializing NRLIB NZINT for NonZeroInteger
compiling into NRLIB NZINT
************* USER ERROR **********
available signatures for Rep:
NONE
NEED Rep: () -> ?
****** comp fails at level 1 with expression: ******
((DEF (|Rep|) (NIL) (|Integer|)))
****** level 1 ******
x:= (DEF (Rep) (NIL) (Integer))
m:= $EmptyMode
f:=
((((|#1| #) (* #) (+ #) (- #) ...)))
>> Apparent user error:
unspecified error)show NZINT
You cannot now use NonZeroInteger in the context you have it.
i:NZINT:=1
You cannot now use NonZeroInteger in the context you have it.
i-j
| (1) |
retractIfCan(0)$NZINT
You cannot now use NonZeroInteger in the context you have it.