| 
              
                
                  
                   | 
            
            
              
              
                
      
    
                
                 | 
            
            last edited 17 years ago by gdr | 
| 1 2 3 4 | ||
| 
              Editor: gdr
               Time: 2008/07/04 09:10:59 GMT-7  | 
          ||
| Note: Fixed in OpenAxiom | ||
added:
From gdr Fri Jul 4 09:10:59 -0700 2008
From: gdr
Date: Fri, 04 Jul 2008 09:10:59 -0700
Subject: Fixed in OpenAxiom
Message-ID: <20080704091059-0700@axiom-wiki.newsynthesis.org>
Status: open => closed 
        
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.
(1) -> V1:=DirectProduct(3+4,Integer) 
| (1) | 
V2:=DirectProduct(7,Integer) 
| (2) | 
V1=V2
LISP output: (UNPRINTABLE . UNPRINTABLE)
%::Boolean
>> System error: The value NIL is not of type FUNCTION
Domain in SetCategory is one possible solution to this problem:
)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
   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(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. 
V1=V2
LISP output: (UNPRINTABLE . UNPRINTABLE)
%::BooleanStatus: open => closed
>> System error: The value NIL is not of type FUNCTION