In FriCAS Equalizer
(See: LimitsAndColimits) can be defined as a
SubDomain
as follows, but this does not work in the most recent
version of OpenAxiom
fricas
(1) -> )version
"FriCAS 1.3.10 compiled at Wed 10 Jan 02:19:45 CET 2024"
which produces the error message:
predicate =f(#1)g(#1) is not simple enough
spad
)abbrev domain EQLZR Equalizer
Equalizer(X:SetCategory,Y:SetCategory,f:X->Y, g:X->Y): SetCategory with
eq: % -> X
== SubDomain(X,f #1 = g #1) add
--
eq(x:%):X == x pretend X
)abbrev package EQLZF EqualizerFunctions
EqualizerFunctions(X:SetCategory,Y:SetCategory,f:X->Y,g:X->Y, M:SetCategory,m:M->X): with
u: M->Equalizer(X,Y,f,g)
== add
--
u(x:M):Equalizer(X,Y,f,g) == m(x) pretend Equalizer(X,Y,f,g)
spad
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/3871883559109604243-25px002.spad
using old system compiler.
EQLZR abbreviates domain Equalizer
------------------------------------------------------------------------
initializing NRLIB EQLZR for Equalizer
compiling into NRLIB EQLZR
compiling exported eq : % -> X
EQLZR;eq;%X;1 is replaced by x
Time: 0 SEC.
(time taken in buildFunctor: 716)
;;; *** |Equalizer| REDEFINED
;;; *** |Equalizer| REDEFINED
Time: 0 SEC.
Cumulative Statistics for Constructor Equalizer
Time: 0 seconds
finalizing NRLIB EQLZR
Processing Equalizer for Browser database:
--->-->Equalizer(constructor): Not documented!!!!
--->-->Equalizer((eq (X %))): Not documented!!!!
--->-->Equalizer(): Missing Description
; compiling file "/var/aw/var/LatexWiki/EQLZR.NRLIB/EQLZR.lsp" (written 11 DEC 2024 09:29:36 AM):
; wrote /var/aw/var/LatexWiki/EQLZR.NRLIB/EQLZR.fasl
; compilation finished in 0:00:00.012
------------------------------------------------------------------------
Equalizer is now explicitly exposed in frame initial
Equalizer will be automatically loaded when needed from
/var/aw/var/LatexWiki/EQLZR.NRLIB/EQLZR
EQLZF abbreviates package EqualizerFunctions
------------------------------------------------------------------------
initializing NRLIB EQLZF for EqualizerFunctions
compiling into NRLIB EQLZF
compiling exported u : M -> Equalizer(X,Y,f,g)
Time: 0 SEC.
(time taken in buildFunctor: 0)
;;; *** |EqualizerFunctions| REDEFINED
;;; *** |EqualizerFunctions| REDEFINED
Time: 0 SEC.
Cumulative Statistics for Constructor EqualizerFunctions
Time: 0 seconds
finalizing NRLIB EQLZF
Processing EqualizerFunctions for Browser database:
--->-->EqualizerFunctions(constructor): Not documented!!!!
--->-->EqualizerFunctions((u ((Equalizer X Y f g) M))): Not documented!!!!
--->-->EqualizerFunctions(): Missing Description
; compiling file "/var/aw/var/LatexWiki/EQLZF.NRLIB/EQLZF.lsp" (written 11 DEC 2024 09:29:36 AM):
; wrote /var/aw/var/LatexWiki/EQLZF.NRLIB/EQLZF.fasl
; compilation finished in 0:00:00.004
------------------------------------------------------------------------
EqualizerFunctions is now explicitly exposed in frame initial
EqualizerFunctions will be automatically loaded when needed from
/var/aw/var/LatexWiki/EQLZF.NRLIB/EQLZF
fricas
)show Equalizer(Float,Float,sin,cos)
Equalizer(Float,Float,theMap(FLOAT;sin;2%;10,655),theMap(FLOAT;cos;2%;12,655)) is a domain constructor.
Abbreviation for Equalizer is EQLZR
This constructor is exposed in this frame.
5 Names for 5 Operations in this Domain.
------------------------------- Operations --------------------------------
?=? : (%, %) -> Boolean coerce : % -> OutputForm
eq : % -> Float latex : % -> String
?~=? : (%, %) -> Boolean