"THESE FILES CONTAIN PROGRAMS TO IMPLEMENT EXTERIOR CALCULUS. DIFFERENTIAL FORMS ARE HERE EXPRESSED IN TERMS OF NATURAL BASIS FORMS ASSOCIATED WITH THE COORDINATES OF THE MANIFOLD. THE COORDINATES TO BE USED MUST BE INPUT AS A LIST, E.G., [X,Y,Z] . THE DIMENSION OF THE MANIFOLD IS SPECIFIED BY 'DIM'. THE PROGRAM WILL CONSTRUCT THE CORRESPONDING LIST OF BASIS FORMS, [DX,DY,DZ]. 'DIM', 'BASIS', AND 'COORDS' ARE RESERVED NAMES. FOR DEMONSTRATION, INPUT THE COORDINATE LIST, [X,Y,Z] ."$ /* ("INPUT THE COORDINATE LIST.",COORDS:READ()); */ COORDS:READ("INPUT THE COORDINATE LIST."); DIM:EXTDIM:LENGTH(COORDS)$ BASIS:VR:EXTSUB[1]:EXTSUBB[1]:[]$ FOR I THRU DIM DO (CI:CONCAT(ZZZ,I),BASIS:ENDCONS(CI,BASIS), EXTSUB[I+1]:CONS(CI=-CI,EXTSUB[I]), EXTSUBB[I]:CONS(CI=0,EXTSUB[I]),APPLY('ALIAS, [CONCAT(D,COORDS[I]),CI]),CI:CONCAT(V,I),VR:ENDCONS(CI,VR))$ ("THE BASIS FORM LIST IS",BASIS); ("A VECTOR IS REPRESENTED BY A LIST OF COMPONENTS",VR); DERIVABBREV:PARTSWITCH:TRUE$ /* if status(feature,its) then LOADFILE(CARTAN,lisp,DSK,SHARE2) else if status(feature,multics) then LOADFILE(">lib>macsyma>share>cartan.lisp") else error("Unknown operating system")$ */ load("cartan.lsp")$ ("AN EXAMPLE OF A 1-FORM IS",F1:X*DY+Z*DZ); ("THE EXTERIOR PRODUCT OPERATION IS DENOTED BY THE AMPERSAND, & , WRITTEN AS AN INFIX OPERATOR BETWEEN DIFFERENTIAL FORMS. FOR EXAMPLE,",F2:DZ & F1); ("NOTE THAT NO SYMBOL IS PRINTED IN THE OUTPUT FOR THE EXTERIOR PRODUCT OF BASIS FORMS - IT IS IMPLICITLY UNDERSTOOD. THE ORDER IN WHICH BASIS FORMS APPEAR IN PRODUCTS IS DETERMINED BY 'BASIS'. THUS, DIFFERENTIAL FORMS CAN BE INPUT USING THE ORDINARY PRODUCT. FOR EXAMPLE, THE FOLLOWING INPUT COMMAND USING THE & OPERATOR ",F3:DX & DY+DZ & DY); ("IS EQUIVALENT TO",F3:DX*DY-DY*DZ); ("CONTRACTION OF A VECTOR ON A FORM IS DENOTED BY THE INFIX OPERATOR, | , WITH THE VECTOR ON THE LEFT. FOR EXAMPLE", VR | F3); ("THE EXTERIOR DERIVATIVE IS WRITTEN AS THE FUNCTION, D(ARG) , WHERE 'ARG' IS ANY DIFFERENTIAL FORM. FOR EXAMPLE",D(F1)); ("MAKE VR A VECTOR FIELD",DEPENDENCIES(V1(X,Y,Z),V2(X,Y,Z),V3(X,Y,Z))); ("THE LIE DERIVATIVE WITH RESPECT TO A VECTOR OF A FORM IS THE FUNCTION, LF(VECTOR,FORM). FOR EXAMPLE",LF(VR,F2)); ("CREATE ANOTHER VECTOR FIELD",DEPENDENCIES(W1(X,Y,Z),W2(X,Y,Z),W3(X,Y,Z)), WR:[W1,W2,W3]); ("THE LIE DERIVATIVE WITH RESPECT TO A VECTOR(ARG1) OF ANOTHER VECTOR(ARG2) IS THE FUNCTION, LV(ARG1,ARG2). FOR EXAMPLE",LV(VR,WR)); "THE SYSTEM IS READY TO DO EXTERIOR CALCULUS IN THREE DIMENSIONS WITH THE COORDINATES [X,Y,Z] . TO OPERATE IN A DIFFERENT MANIFOLD, EXECUTE THE COMMANDS, KILL(ALL) FOLLOWED BY BATCH([CARTAN,START,DSK,SHARE2],0N,2,9) "$