login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

fricas
(1) -> <spad>
--)lisp (defvar |$inclAssertions| nil) -- in principle d:V[k]->V[k+1], then what is d d = 0? -- each vector space V[k] has its own zero! But we will -- only use one zero form for all. ZeroChain()?  fricas )abbrev category CCHNCAT CoChainCategory CoChainCategory() : Category == SetCategory with degree : % -> Polynomial Integer mainType : % -> String -- trick: get the type  fricas )abbrev category ZCHNCAT ZeroChainCategory ZeroChainCategory() : Category == SetCategory with null : %  fricas )abbrev domain ZCHN ZeroChain ZeroChain : Exports == Implementation where BOP ==> BasicOperator PINT ==> Polynomial Integer Exports == Join(CoChainCategory,ZeroChainCategory) with degree : % -> PINT d : % -> % --null : % Implementation == BOP add Rep := BOP null == operator("0"::Symbol) degree x == 0::PINT d x == null() mainType x == "ZeroChain"  fricas )abbrev domain COCHN CoChain CoChain(p) : Exports == Implementation where p:Polynomial Integer BOP ==> BasicOperator CTOF ==> CoercibleTo OutputForm CVTS ==> ConvertibleTo String PINT ==> Polynomial Integer Exports == Join(CTOF, CVTS, CoChainCategory) with coerce : Symbol -> % degree : % -> PINT Implementation == BOP add Rep := BOP coerce(s:Symbol):% == operator s degree x == p mainType x == "CoChain"  fricas )abbrev domain WEDGE WedgeProduct WedgeProduct(a,b) : Exports == Implementation where CCCAT ==> CoChainCategory OF ==> OutputForm a:CCCAT b:CCCAT CTOF ==> CoercibleTo OutputForm CVTS ==> ConvertibleTo String PINT ==> Polynomial Integer Exports == Join(CTOF, CVTS, CoChainCategory) with if a has ZeroChainCategory or b has ZeroChainCategory then _* : (a,b) -> ZeroChain else _* : (a,b) -> % degree : % -> PINT Implementation == add if a has ZeroChainCategory or b has ZeroChainCategory then Rep := ZeroChain (x:a * y:b):ZeroChain == null()$ZeroChain
else
Rep := Record(left:a,right:b)
x * y == [x,y]@Rep
degree x == degree(x.left)$a + degree(x.right)$b
mainType x == "WedgeProduct"
coerce(x:%):OutputForm == tensor(x.left::OF,x.right::OF)
------ temp using tensor, lack of wedge symbol

fricas
)abbrev domain EXTDF ExteriorDerivative
ExteriorDerivative(a) : Exports == Implementation where
CCCAT ==> CoChainCategory
OF ==> OutputForm
a:CCCAT
CTOF ==> CoercibleTo OutputForm
CVTS ==> ConvertibleTo String
PINT ==> Polynomial Integer
Exports == Join(CTOF, CVTS, CoChainCategory) with
d : % -> ZeroChain
d : a -> %
degree : % -> PINT
if a has ZeroChainCategory then
Rep := ZeroChain
else
Rep := Record(arg:a)
d(x:%):ZeroChain == null()$ZeroChain d(x:a):% == [x]@Rep degree x == 1 + degree(x.arg)$a
mainType x == "ExteriorDerivative"
coerce(x:%):OutputForm ==
dsym:=outputForm("d"::Symbol)$OF mainType(x.arg)$a = "CoChain" => hconcat(dsym,x.arg::OF)
hconcat(dsym,paren(x.arg::OF))

fricas
)abbrev domain HODGE HodgeStar
HodgeStar(a) : Exports == Implementation where
CCCAT ==> CoChainCategory
OF ==> OutputForm
a:CCCAT
CTOF ==> CoercibleTo OutputForm
CVTS ==> ConvertibleTo String
PINT ==> Polynomial Integer
Exports == Join(CTOF, CVTS, CoChainCategory) with
hodge : a -> %
degree : % -> PINT
Rep := Record(arg:a)
n:PINT:="spacedim"::Symbol::PINT
degree x == n - degree(x.arg)$a hodge x == [x]@Rep mainType x == "HodgeStar" coerce(x:%):OutputForm == dsym:=outputForm("*"::Symbol)$OF
mT:String:=mainType(x.arg)$a mT ~= "WedgeProduct" => hconcat(dsym,x.arg::OF) hconcat(dsym,paren(x.arg::OF))</spad> fricas Compiling FriCAS source code from file /var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/5250937285633644280-25px001.spad using old system compiler. CCHNCAT abbreviates category CoChainCategory ------------------------------------------------------------------------ initializing NRLIB CCHNCAT for CoChainCategory compiling into NRLIB CCHNCAT ;;; *** |CoChainCategory| REDEFINED Time: 0 SEC. finalizing NRLIB CCHNCAT Processing CoChainCategory for Browser database: --->-->CoChainCategory(constructor): Not documented!!!! --->-->CoChainCategory((degree ((Polynomial (Integer)) %))): Not documented!!!! --->-->CoChainCategory((mainType ((String) %))): Not documented!!!! --->-->CoChainCategory(): Missing Description ; compiling file "/var/aw/var/LatexWiki/CCHNCAT.NRLIB/CCHNCAT.lsp" (written 03 SEP 2022 03:11:28 PM): ; /var/aw/var/LatexWiki/CCHNCAT.NRLIB/CCHNCAT.fasl written ; compilation finished in 0:00:00.004 ------------------------------------------------------------------------ CoChainCategory is now explicitly exposed in frame initial CoChainCategory will be automatically loaded when needed from /var/aw/var/LatexWiki/CCHNCAT.NRLIB/CCHNCAT ZCHNCAT abbreviates category ZeroChainCategory ------------------------------------------------------------------------ initializing NRLIB ZCHNCAT for ZeroChainCategory compiling into NRLIB ZCHNCAT ;;; *** |ZeroChainCategory| REDEFINED Time: 0 SEC. finalizing NRLIB ZCHNCAT Processing ZeroChainCategory for Browser database: --->-->ZeroChainCategory(constructor): Not documented!!!! --->-->ZeroChainCategory((null (%) constant)): Not documented!!!! --->-->ZeroChainCategory(): Missing Description ; compiling file "/var/aw/var/LatexWiki/ZCHNCAT.NRLIB/ZCHNCAT.lsp" (written 03 SEP 2022 03:11:28 PM): ; /var/aw/var/LatexWiki/ZCHNCAT.NRLIB/ZCHNCAT.fasl written ; compilation finished in 0:00:00.002 ------------------------------------------------------------------------ ZeroChainCategory is now explicitly exposed in frame initial ZeroChainCategory will be automatically loaded when needed from /var/aw/var/LatexWiki/ZCHNCAT.NRLIB/ZCHNCAT ZCHN abbreviates domain ZeroChain ------------------------------------------------------------------------ initializing NRLIB ZCHN for ZeroChain compiling into NRLIB ZCHN compiling exported null : () ->$
Time: 0 SEC.
compiling exported degree : $-> Polynomial Integer Time: 0.04 SEC. compiling exported d :$ -> $Time: 0.01 SEC. compiling exported mainType :$ -> String
ZCHN;mainType;$S;4 is replaced by ZeroChain Time: 0 SEC. (time taken in buildFunctor: 0) ;;; *** |ZeroChain| REDEFINED ;;; *** |ZeroChain| REDEFINED Time: 0 SEC. Cumulative Statistics for Constructor ZeroChain Time: 0.05 seconds --------------non extending category---------------------- .. ZeroChain of cat (|Join| (|CoChainCategory|) (|ZeroChainCategory|) (CATEGORY |domain| (SIGNATURE |degree| ((|Polynomial| (|Integer|))$))
(SIGNATURE |d| ())))   has no
(|OrderedSet|)    finalizing NRLIB ZCHN
Processing ZeroChain for Browser database:
--->-->ZeroChain(constructor): Not documented!!!!
--->-->ZeroChain((degree ((Polynomial (Integer)) %))): Not documented!!!!
--->-->ZeroChain((d (% %))): Not documented!!!!
--->-->ZeroChain(): Missing Description
; compiling file "/var/aw/var/LatexWiki/ZCHN.NRLIB/ZCHN.lsp" (written 03 SEP 2022 03:11:28 PM):
; /var/aw/var/LatexWiki/ZCHN.NRLIB/ZCHN.fasl written
; compilation finished in 0:00:00.014
------------------------------------------------------------------------
ZeroChain is now explicitly exposed in frame initial
ZeroChain will be automatically loaded when needed from
/var/aw/var/LatexWiki/ZCHN.NRLIB/ZCHN
COCHN abbreviates domain CoChain
------------------------------------------------------------------------
initializing NRLIB COCHN for CoChain
compiling into NRLIB COCHN
compiling exported coerce : Symbol -> $Time: 0 SEC. compiling exported degree :$ -> Polynomial Integer
Time: 0.01 SEC.
compiling exported mainType : $-> String COCHN;mainType;$S;3 is replaced by CoChain
Time: 0 SEC.
(time taken in buildFunctor:  0)
;;;     ***       |CoChain| REDEFINED
;;;     ***       |CoChain| REDEFINED
Time: 0 SEC.
Cumulative Statistics for Constructor CoChain
Time: 0.01 seconds
--------------non extending category----------------------
.. CoChain(#1) of cat
(|Join| (|CoercibleTo| (|OutputForm|)) (|ConvertibleTo| (|String|))
(|CoChainCategory|)
(CATEGORY |domain| (SIGNATURE |coerce| ($(|Symbol|))) (SIGNATURE |degree| ((|Polynomial| (|Integer|))$))))   has no
(|OrderedSet|)    finalizing NRLIB COCHN
Processing CoChain for Browser database:
--->-->CoChain(constructor): Not documented!!!!
--->-->CoChain((coerce (% (Symbol)))): Not documented!!!!
--->-->CoChain((degree ((Polynomial (Integer)) %))): Not documented!!!!
--->-->CoChain(): Missing Description
; compiling file "/var/aw/var/LatexWiki/COCHN.NRLIB/COCHN.lsp" (written 03 SEP 2022 03:11:28 PM):
; /var/aw/var/LatexWiki/COCHN.NRLIB/COCHN.fasl written
; compilation finished in 0:00:00.011
------------------------------------------------------------------------
CoChain is now explicitly exposed in frame initial
CoChain will be automatically loaded when needed from
/var/aw/var/LatexWiki/COCHN.NRLIB/COCHN
WEDGE abbreviates domain WedgeProduct
------------------------------------------------------------------------
initializing NRLIB WEDGE for WedgeProduct
compiling into NRLIB WEDGE
****** Domain: a already in scope
augmenting a: (ZeroChainCategory)
Local variable Rep type redefined: (Join (CoChainCategory) (ZeroChainCategory) (CATEGORY domain (SIGNATURE degree ((Polynomial (Integer)) $)) (SIGNATURE d ($ $)))) to (Join (OrderedSet) (CATEGORY domain (SIGNATURE name ((Symbol)$)) (SIGNATURE properties ((AssociationList (Symbol) (None)) $)) (SIGNATURE copy ($ $)) (SIGNATURE operator ($ (Symbol))) (SIGNATURE operator ($(Symbol) (NonNegativeInteger))) (SIGNATURE arity ((Union (NonNegativeInteger) failed)$)) (SIGNATURE nullary? ((Boolean) $)) (SIGNATURE unary? ((Boolean)$)) (SIGNATURE nary? ((Boolean) $)) (SIGNATURE weight ((NonNegativeInteger)$)) (SIGNATURE weight ( (NonNegativeInteger))) (SIGNATURE equality ( (Mapping (Boolean) ))) (SIGNATURE comparison ( (Mapping (Boolean) ))) (SIGNATURE display ((Union (Mapping (OutputForm) (List (OutputForm))) failed) $)) (SIGNATURE display ($ $(Mapping (OutputForm) (List (OutputForm))))) (SIGNATURE display ($ $(Mapping (OutputForm) (OutputForm)))) (SIGNATURE input ($ $(Mapping (InputForm) (List (InputForm))))) (SIGNATURE input ((Union (Mapping (InputForm) (List (InputForm))) failed)$)) (SIGNATURE is? ((Boolean) $(Symbol))) (SIGNATURE has? ((Boolean)$ (Symbol))) (SIGNATURE assert ( (Symbol))) (SIGNATURE deleteProperty! ( (Symbol))) (SIGNATURE property ((Union (None) failed) $(Symbol))) (SIGNATURE setProperty ($ $(Symbol) (None))) (SIGNATURE setProperties ($ $(AssociationList (Symbol) (None)))))) compiling exported * : (a,b) -> ZeroChain Time: 0 SEC. ****** Domain: b already in scope augmenting b: (ZeroChainCategory) compiling exported * : (a,b) -> ZeroChain Time: 0.01 SEC. Local variable Rep type redefined: (Join (SetCategory) (CATEGORY domain (SIGNATURE construct ((Record (: left a) (: right b)) a b)) (SIGNATURE ~= ((Boolean) (Record (: left a) (: right b)) (Record (: left a) (: right b)))) (SIGNATURE coerce ((OutputForm) (Record (: left a) (: right b)))) (SIGNATURE elt (a (Record (: left a) (: right b)) left)) (SIGNATURE elt (b (Record (: left a) (: right b)) right)) (SIGNATURE setelt! (a (Record (: left a) (: right b)) left a)) (SIGNATURE setelt! (b (Record (: left a) (: right b)) right b)) (SIGNATURE copy ((Record (: left a) (: right b)) (Record (: left a) (: right b)))))) to (Join (CoChainCategory) (ZeroChainCategory) (CATEGORY domain (SIGNATURE degree ((Polynomial (Integer))$)) (SIGNATURE d ())))
compiling exported * : (a,b) -> $WEDGE;*;ab$;3 is replaced by CONS
Time: 0 SEC.
compiling exported degree : $-> Polynomial Integer Time: 0 SEC. compiling exported mainType :$ -> String
WEDGE;mainType;$S;5 is replaced by WedgeProduct Time: 0 SEC. compiling exported coerce :$ -> OutputForm
Time: 0 SEC.
(time taken in buildFunctor:  0)
;;;     ***       |WedgeProduct| REDEFINED
;;;     ***       |WedgeProduct| REDEFINED
Time: 0 SEC.
Warnings:
[1] *: signature of lhs not unique: $ab chosen [2] degree: left has no value [3] degree: right has no value Cumulative Statistics for Constructor WedgeProduct Time: 0.01 seconds finalizing NRLIB WEDGE Processing WedgeProduct for Browser database: --->-->WedgeProduct(constructor): Not documented!!!! --->-->WedgeProduct((* ((ZeroChain) a b))): Not documented!!!! --->-->WedgeProduct((* (% a b))): Not documented!!!! --->-->WedgeProduct((degree ((Polynomial (Integer)) %))): Not documented!!!! --->-->WedgeProduct(): Missing Description ; compiling file "/var/aw/var/LatexWiki/WEDGE.NRLIB/WEDGE.lsp" (written 03 SEP 2022 03:11:28 PM): ; /var/aw/var/LatexWiki/WEDGE.NRLIB/WEDGE.fasl written ; compilation finished in 0:00:00.028 ------------------------------------------------------------------------ WedgeProduct is now explicitly exposed in frame initial WedgeProduct will be automatically loaded when needed from /var/aw/var/LatexWiki/WEDGE.NRLIB/WEDGE EXTDF abbreviates domain ExteriorDerivative ------------------------------------------------------------------------ initializing NRLIB EXTDF for ExteriorDerivative compiling into NRLIB EXTDF ****** Domain: a already in scope augmenting a: (ZeroChainCategory) Local variable Rep type redefined: (Join (CoChainCategory) (ZeroChainCategory) (CATEGORY domain (SIGNATURE degree ((Polynomial (Integer))$)) (SIGNATURE d ()))) to (Join (SetCategory) (CATEGORY domain (SIGNATURE construct ((Record (: left a) (: right b)) a b)) (SIGNATURE ~= ((Boolean) (Record (: left a) (: right b)) (Record (: left a) (: right b)))) (SIGNATURE coerce ((OutputForm) (Record (: left a) (: right b)))) (SIGNATURE elt (a (Record (: left a) (: right b)) left)) (SIGNATURE elt (b (Record (: left a) (: right b)) right)) (SIGNATURE setelt! (a (Record (: left a) (: right b)) left a)) (SIGNATURE setelt! (b (Record (: left a) (: right b)) right b)) (SIGNATURE copy ((Record (: left a) (: right b)) (Record (: left a) (: right b))))))
Local variable Rep type redefined: (Join (SetCategory) (CATEGORY domain (SIGNATURE construct ((Record (: arg a)) a)) (SIGNATURE ~= ((Boolean) (Record (: arg a)) (Record (: arg a)))) (SIGNATURE coerce ((OutputForm) (Record (: arg a)))) (SIGNATURE elt (a (Record (: arg a)) arg)) (SIGNATURE setelt! (a (Record (: arg a)) arg a)) (SIGNATURE copy ((Record (: arg a)) (Record (: arg a)))))) to (Join (CoChainCategory) (ZeroChainCategory) (CATEGORY domain (SIGNATURE degree ((Polynomial (Integer)) $)) (SIGNATURE d ($ $)))) compiling exported d :$ -> ZeroChain
Time: 0 SEC.
compiling exported d : a -> $EXTDF;d;a$;2 is replaced by LIST
Time: 0 SEC.
compiling exported degree : $-> Polynomial Integer Time: 0.02 SEC. compiling exported mainType :$ -> String
EXTDF;mainType;$S;4 is replaced by ExteriorDerivative Time: 0.01 SEC. compiling exported coerce :$ -> OutputForm
Time: 0 SEC.
(time taken in buildFunctor:  0)
;;;     ***       |ExteriorDerivative| REDEFINED
;;;     ***       |ExteriorDerivative| REDEFINED
Time: 0.01 SEC.
Warnings:
[1] degree:  arg has no value
[2] coerce:  arg has no value
Cumulative Statistics for Constructor ExteriorDerivative
Time: 0.04 seconds
finalizing NRLIB EXTDF
Processing ExteriorDerivative for Browser database:
--->-->ExteriorDerivative(constructor): Not documented!!!!
--->-->ExteriorDerivative((d ((ZeroChain) %))): Not documented!!!!
--->-->ExteriorDerivative((d (% a))): Not documented!!!!
--->-->ExteriorDerivative((degree ((Polynomial (Integer)) %))): Not documented!!!!
--->-->ExteriorDerivative(): Missing Description
; compiling file "/var/aw/var/LatexWiki/EXTDF.NRLIB/EXTDF.lsp" (written 03 SEP 2022 03:11:29 PM):
; /var/aw/var/LatexWiki/EXTDF.NRLIB/EXTDF.fasl written
; compilation finished in 0:00:00.023
------------------------------------------------------------------------
ExteriorDerivative is now explicitly exposed in frame initial
ExteriorDerivative will be automatically loaded when needed from
/var/aw/var/LatexWiki/EXTDF.NRLIB/EXTDF
HODGE abbreviates domain HodgeStar
------------------------------------------------------------------------
initializing NRLIB HODGE for HodgeStar
compiling into NRLIB HODGE
compiling exported degree : $-> Polynomial Integer Time: 0.02 SEC. compiling exported hodge : a ->$
HODGE;hodge;a$;2 is replaced by LIST Time: 0 SEC. compiling exported mainType :$ -> String
HODGE;mainType;$S;3 is replaced by HodgeStar Time: 0 SEC. compiling exported coerce :$ -> OutputForm
Time: 0.01 SEC.
(time taken in buildFunctor:  0)
;;;     ***       |HodgeStar| REDEFINED
;;;     ***       |HodgeStar| REDEFINED
Time: 0 SEC.
Warnings:
[1] degree:  arg has no value
[2] coerce:  arg has no value
Cumulative Statistics for Constructor HodgeStar
Time: 0.03 seconds
finalizing NRLIB HODGE
Processing HodgeStar for Browser database:
--->-->HodgeStar(constructor): Not documented!!!!
--->-->HodgeStar((hodge (% a))): Not documented!!!!
--->-->HodgeStar((degree ((Polynomial (Integer)) %))): Not documented!!!!
--->-->HodgeStar(): Missing Description
; compiling file "/var/aw/var/LatexWiki/HODGE.NRLIB/HODGE.lsp" (written 03 SEP 2022 03:11:29 PM):
; /var/aw/var/LatexWiki/HODGE.NRLIB/HODGE.fasl written
; compilation finished in 0:00:00.019
------------------------------------------------------------------------
HodgeStar is now explicitly exposed in frame initial
HodgeStar will be automatically loaded when needed from
/var/aw/var/LatexWiki/HODGE.NRLIB/HODGE

fricas
f:=f::CoChain(p)
 (1)
Type: CoChain?(p)
fricas
g:=g::CoChain(q)
 (2)
Type: CoChain?(q)
fricas
h:=f*g
 (3)
Type: WedgeProduct?(CoChain?(p),CoChain?(q))
fricas
degree h
 (4)
Type: Polynomial(Integer)
fricas
k:=h*f
 (5)
Type: WedgeProduct?(WedgeProduct?(CoChain?(p),CoChain?(q)),CoChain?(p))
fricas
degree k
 (6)
Type: Polynomial(Integer)
fricas
-- car dom (d f) --> ExteriorDerivative
Type: SExpression?
fricas
-- symbol car dom (d f) = 'ExteriorDerivative::Symbol => ok
degree d f  --> p+1
 (7)
Type: Polynomial(Integer)
fricas
hodge d h --> *d(f # g)
 (8)
Type: HodgeStar?(ExteriorDerivative?(WedgeProduct?(CoChain?(p),CoChain?(q))))
fricas
r:=degree hodge h
 (9)
Type: Polynomial(Integer)
fricas
eval(r,[p=7,q=3,'spacedim=15]) --> notice the quote!
 (10)
Type: Polynomial(Integer)
fricas
-->degree % --> spacedim - q - p - 1
null()\$ZeroChain
 (11)
Type: ZeroChain?
fricas
z:=d d f
 (12)
Type: ZeroChain?
fricas
z*f
 (13)
Type: ZeroChain?
fricas
f*z
 (14)
Type: ZeroChain?
fricas
CoChain(p) has ZeroChainCategory
 (15)
Type: Boolean
fricas
ZeroChain has ZeroChainCategory
 (16)
Type: Boolean

 Subject:   Be Bold !! ( 15 subscribers )