This library code is based directly on MappingPackage3? in
axiom )abbrev package MAPHAC2X MapPackInternalHac2x
++ Description: Mapping hack for Addition
++ The function \spad{funcAdd(f,g,x)} is \spad{fx+gx} which is needed below
MapPackInternalHac2x(A: SetCategory, B: Ring):
with funcAdd: (A->B, A->B, A) -> B ==
add funcAdd(g,h,x) == ((g x) + (h x))$B
axiom Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/1147191614234250090-25px.001.spad using
old system compiler.
MAPHAC2X abbreviates package MapPackInternalHac2x
------------------------------------------------------------------------
initializing NRLIB MAPHAC2X for MapPackInternalHac2x
compiling into NRLIB MAPHAC2X
compiling exported funcAdd : (A -> B,A -> B,A) -> B
Time: 0 SEC.This package is the one that actually provides the Functional Addition operator. The overloaded symbol + also represents this type of addition. axiom )abbrev package MAPPK2X MappingPackage2x
++ Description: Functional Addition
++ Given functions f and g, returns the function \spad{fx+gx}
++ \spad{f+g} is the function \spad{h} such that \spad{h x = f x + g x}.
MappingPackage2x(A:SetCategory, B:Ring):
with "+": (A->B, A->B) -> (A->B) ==
add
MapPackInternalHac2x(A, B)
fab: A -> B
fab+fab == funcAdd(fab,fab,#1)
axiom Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/8693442026998160385-25px.002.spad using
old system compiler.
MAPPK2X abbreviates package MappingPackage2x
------------------------------------------------------------------------
initializing NRLIB MAPPK2X for MappingPackage2x
compiling into NRLIB MAPPK2X
importing MapPackInternalHac2x(A,B)
compiling exported + : (A -> B,A -> B) -> A -> B
Time: 0 SEC.axiom f := (x:INT):INT +-> 3*x
Type: (Integer -> Integer)
axiom g := (x:INT):INT +-> 2*x+3
Type: (Integer -> Integer)
axiom (f+g)(3)
Type: PositiveInteger
We should be able to generalize this to SandBox Direct Product Finally got the frigg'n name right! :) --Bill Page, Tue, 28 Jun 2005 15:52:26 -0500 reply
|