OpenAxiom displays Equation(Domain)
as:
(3) -> V1=V2
LISP output:
(UNPRINTABLE . UNPRINTABLE)
Type: Equation Domain
(4) -> %::Boolean
Internal Error
The function = with signature (%,%) -> Boolean is missing from
domain Domain
and is missing equality.
fricas
(1) -> V1:=DirectProduct(3+4,Integer)
Type: Type
fricas
V2:=DirectProduct(7,Integer)
Type: Type
fricas
V1=V2
LISP output:
(UNPRINTABLE . UNPRINTABLE)
Type: Equation(Type)
fricas
%::Boolean
>> System error:
The value
NIL
is not of type
FUNCTION
Axiom Version: => /usr/local/lib/open-axiom/x86_64-unknown-linux/1.2.0-2008-05-25
Putting
Domain
in
SetCategory
is one possible solution to this problem:
spad
)abbrev domain DOMAIN Domain
++ Author: Gabriel Dos Reis
++ Date Create: October 18, 2007.
++ Modified: Bill Page
++ Date Last Updated: June 17, 2008.
++ Basic Operations: coerce, reify
++ Related Constructors: Type, Syntax, OutputForm
++ Also See: Type, ConstructorCall
Domain(): Public == Private where
Public ==> SetCategory with
reify: % -> ConstructorCall
++ reify(d) returns the abstract syntax for the domain `x'.
reflect: ConstructorCall -> %
++ reflect cc returns the domain object designated by the
++ ConstructorCall syntax `cc'. The constructor implied
++ by `cc' must be known to the system since it is instantiated.
showSummary: % -> Void
++ showSummary(d) prints out implementation detail information
++ of domain `d'.
Private ==> add
coerce x ==
outputDomainConstructor(x)$Lisp
x = y ==
x0 := reify(x)
y0 := reify(y)
constructorName(x0)=constructorName(y0) and arguments(x0)=arguments(y0)
reify x ==
devaluate(x)$Lisp @ ConstructorCall
reflect cc ==
evalDomain(cc)$Lisp @ %
showSummary x ==
showSummary(x)$Lisp
spad
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/6570934237940921533-25px002.spad
using old system compiler.
DOMAIN abbreviates domain Domain
------------------------------------------------------------------------
initializing NRLIB DOMAIN for Domain
compiling into NRLIB DOMAIN
compiling exported coerce : % -> OutputForm
DOMAIN;coerce;%Of;1 is replaced by outputDomainConstructor
Time: 0 SEC.
compiling exported = : (%,%) -> Boolean
****** comp fails at level 4 with expression: ******
error in function =
(SEQ (|:=| |x0| (|reify| |x|)) (|:=| |y0| (|reify| |y|))
(|:=| (|:| #1=#:G2 (|Boolean|))
(= | << | (|constructorName| |x0|) | >> | (|constructorName| |y0|)))
(|exit| 1
(IF #1#
(= (|arguments| |x0|) (|arguments| |y0|))
|false|)))
****** level 4 ******
$x:= (constructorName x0)
$m:= $EmptyMode
$f:=
((((#:G2 #) (|y0| #) (|x0| #) (|y| # #) ...)))
>> Apparent user error:
NoValueMode
is an unknown mode
fricas
(V1=V2)@Boolean
There are 2 exposed and 10 unexposed library operations named =
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op =
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named =
with argument type(s)
Type
Type
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
fricas
V1=V2
LISP output:
(UNPRINTABLE . UNPRINTABLE)
Type: Equation(Type)
fricas
%::Boolean
>> System error:
The value
NIL
is not of type
FUNCTION
Status: open => closed