eds.tex 92 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624
  1. \documentstyle[11pt,reduce]{article}
  2. \title{\bf EDS\\
  3. A package for exterior differential systems}
  4. \author{
  5. David Hartley \\
  6. \it Physics and Mathematical Physics \\
  7. University of Adelaide \quad SA 5005 \\
  8. Australia \\[1mm]
  9. {\tt DHartley{\rm @}physics.adelaide.edu.au}
  10. }
  11. \date{
  12. {\bf Version 2.2}\\
  13. \strut\\
  14. 7 July 2003}
  15. % Extra macros
  16. \def\d{{\rm d}}
  17. \def\union{\cup}
  18. \def\R{\hbox{\bf R}}
  19. \def\del{\partial}
  20. \def\implies{\Rightarrow}
  21. \def\optional#1{$\,[$#1$]\,$}
  22. \newenvironment{syntax}
  23. {\begin{list}{}{\tt}\item[]}
  24. {\end{list}}
  25. \begin{document}
  26. \maketitle
  27. \begin{abstract}
  28. EDS is a REDUCE package for symbolic analysis of partial differential
  29. equations using the geometrical approach of exterior differential
  30. systems. The package implements much of exterior differential systems
  31. theory, including prolongation and involution analysis, and has been
  32. optimised for large, non-linear problems.
  33. \end{abstract}
  34. \newpage
  35. \tableofcontents
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37. %\newpage
  38. \section{Introduction}
  39. Exterior differential systems give a geometrical framework for partial
  40. differential equations and more general differential geometric problems.
  41. The geometrical formulation has several advantages stemming from its
  42. coordinate-independence, including superior treatment of nonlinear and
  43. global problems. There is not sufficient space in this manual for an
  44. introduction to exterior differential systems beyond the scant details
  45. given in section \ref{EDS data structures and concepts}, but there are a
  46. number of up-to-date texts on the subject (eg \cite{BCGGG,Spivak}).
  47. EDS provides a number of tools for setting up and manipulating exterior
  48. differential systems and implements many features of the theory. Its main
  49. strengths are the ability to use anholonomic or moving frames and the care
  50. taken with nonlinear problems.
  51. There has long been interest in implementing the theory of exterior
  52. differential systems in a computer algebra system (eg
  53. \cite{Shapeev,Ganzha,HartleyTucker}). The EDS package owes much to these
  54. earlier efforts, and also to related packages for PDE analysis (eg
  55. \cite{MansfieldFackerell,Reid,Seiler}), as well as to earlier versions of
  56. EDS produced at Lancaster university with R~W~Tucker and
  57. P~A~Tuckey. Finally, EDS uses the exterior calculus package EXCALC of
  58. E~Schr{\"u}fer \cite{EXCALC} and the exterior ideals package XIDEAL
  59. \cite{XIDEAL}. XIDEAL and EXCALC are loaded automatically with EDS.
  60. This work has been supported by the Graduate College on Scientific
  61. Computing, University of Cologne and GMD St Augustin, funded by the DFG (Deutsche
  62. Forschungsgemeinschaft). I would like to express my thanks to R~W~Tucker,
  63. E~Schr{\"u}fer, P~A~Tuckey, F~W~Hehl and R~B~Gardner for helpful and
  64. encouraging discussions.
  65. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  66. \section{EDS data structures and concepts}
  67. \label{EDS data structures and concepts}
  68. This section presents the various structures used for expressing exterior
  69. systems quantities in EDS. In addition, some the concepts used in EDS to
  70. aid computation are described.
  71. \subsection{Coframings}
  72. \label{Coframings}
  73. Within the context of EDS, a {\it coframing} means a real
  74. finite-dimensional differentiable manifold with a given global cobasis.
  75. The information about a coframing required by EDS is kept in a
  76. \meta{coframing} object. The cobasis is the identifying element of an
  77. EDS \meta{coframing}: distinct cobases for the same differentiable
  78. manifold are treated as distinct \meta{coframing} objects in EDS. The
  79. cobasis may be either holonomic or anholonomic, allowing some manifolds
  80. with non-trivial topology (eg. group manifolds) to be treated.
  81. In addition to the cobasis, an EDS \meta{coframing} can be given {\it
  82. coordinates}, {\it structure equations} and {\it restrictions}. The
  83. coordinates may be an incomplete or overcomplete set. The structure
  84. equations express the exterior derivative of the coordinates and cobasis
  85. elements as needed. All coordinate differentials must be expressed in
  86. terms of the given cobasis, but not all cobasis differentials need be
  87. known. The restrictions are a set of inequalities (at present using just
  88. $\neq$) describing point sets not in the manifold.
  89. The \meta{coframing} object is, of course, by no means a full
  90. description of a differentiable manifold. For example, there is no
  91. topology and there are no charts. However, the \meta{coframing} object
  92. carries sufficient information about the underlying manifold to allow a
  93. range of exterior systems calculations to be carried out. As such, it is
  94. convenient to accept an abuse of language and think of the
  95. \meta{coframing} object as a manifold.
  96. A \meta{coframing} is constructed or selected using the \f{coframing}
  97. operator.
  98. \paragraph{\it Examples:}
  99. \begin{itemize}
  100. \item $\R^3$ with cobasis $\{\d x,\d y,\d z\}$ and coordinates $\{x,y,z\}$.
  101. \item $\R^2\backslash\{0\}$ with cobasis $\{e^1,e^2\}$, a single
  102. coordinate $\{r\}$, ``structure equations'' $\{\d r = e^1$,
  103. $\d e^1=0$,$\d e^2=e^1\wedge e^2/r\}$ and restrictions $\{r\neq0\}$.
  104. \item $\R^2\backslash\{0\}$ with cobasis $\{\d x,\d y\}$,
  105. coordinates $\{x,y\}$ and restrictions $\{x^2+y^2\neq0\}$.
  106. \item $S^1$ with cobasis $\{\omega\}$ and structure equations
  107. $\{\d\omega = 0\}$.
  108. \item $S^2$ cannot be encapsulated by an EDS \meta{coframing} since there
  109. is no global cobasis.
  110. \end{itemize}
  111. \subsection{Exterior differential systems}
  112. \label{Exterior differential systems}
  113. A simple \meta{EDS}, or exterior differential system, is a triple
  114. $(S,\Omega,M)$, where $M$ is a \meta{coframing} (section
  115. \ref{Coframings}), $S$ is a \meta{system} (section \ref{Systems}) on
  116. $M$, and $\Omega$ is an independence condition: either a decomposable
  117. \meta{p-form} or a \meta{system} of 1-forms on $M$ (exterior
  118. differential systems without independence condition are not treated by
  119. EDS).
  120. More generally, an \meta{EDS} is a list of simple \meta{EDS} objects
  121. where the various coframings are all disjoint. This last requirement in
  122. not enforced within EDS unless the \f{edsdisjoint} switch is \f{on}
  123. (section \ref{edsdisjoint}). These more general \meta{EDS} objects are
  124. represented as a list of simple \meta{EDS} objects. All operators which
  125. take an \meta{EDS} argument accept both simple and compound types.
  126. The trivial \meta{EDS}, describing an inconsistent problem with no
  127. solutions, is defined to be (\{1\},\{\},\{\}).
  128. An \meta{EDS} is represented by the \f{eds} operator (section \ref{eds}),
  129. and can additionally be generated using the \f{contact} and \f{pde2eds}
  130. operators (sections \ref{contact}, \ref{pde2eds}).
  131. The solutions of $(S,\Omega,M)$ are integral manifolds, or immersions (cf
  132. section \ref{Maps}) on which $S$ vanishes and the rank of $\Omega$ is
  133. preserved. Solutions at a single point are described by integral elements
  134. (section \ref{Integral elements}).
  135. \subsection{Systems}
  136. \label{Systems}
  137. In EDS, the label \meta{system} refers to a list
  138. \begin{syntax}
  139. \{\meta{p-form expr},$\cdots$\}
  140. \end{syntax}
  141. of differential forms. This is distinct from an \meta{EDS} (section
  142. \ref{Exterior differential systems}), which has additional structure.
  143. However, many EDS operators will accept either an \meta{EDS} or a
  144. \meta{system} as arguments. In the latter case, any extra information
  145. which is required is taken from the background coframing (section
  146. \ref{Background coframing}).
  147. The \meta{system} of an \meta{EDS} can be obtained with the \f{system}
  148. operator (section \ref{system}).
  149. \subsection{Background coframing}
  150. \label{Background coframing}
  151. The information encapsulated in a \f{coframing} operator is usually
  152. inactive. However, when operations are performed on a \meta{coframing} or an
  153. \meta{EDS} object (sections \ref{Coframings}, \ref{Exterior differential
  154. systems}), this information is activated for the duration of those
  155. operations. It is possible to activate the rules and orderings of a
  156. \f{coframing} operator globally, by making it the {\em background
  157. coframing}. All subsequent EXCALC operations will be governed by those
  158. rules. Operations on \meta{EDS} objects are unaffected, since their
  159. coframings are still activated locally. The background coframing can be set
  160. and changed with the \f{set\_coframing} command, and inspected using
  161. \f{coframing}.
  162. \subsection{Integral elements}
  163. \label{Integral elements}
  164. An {\it integral element} of an exterior system $(S,\Omega,M)$ is a
  165. subspace $P\subset T_pM$ of the tangent space at some point $p\in M$
  166. such that all forms in $S$ vanish when evaluated on vectors from $P$. In
  167. addition, no non-zero vector in $P$ may annul every form in $\Omega$.
  168. Alternatively, an integral element $P\subset T_pM$ can be represented
  169. by its annihilator $P^\perp\subset T^*_pM$, comprising those 1-forms
  170. at $p$ which annul every vector in $P$. This can also be understood as a
  171. maximal set of 1-forms at $p$ such that $S \simeq 0 \pmod{P^\perp}$ and
  172. the rank of $\Omega$ is preserved modulo $P^\perp$. This is the
  173. representation used by EDS. Further, the reference to the point $p$ is
  174. omitted, so an \meta{integral element} in EDS is a distribution of
  175. 1-forms on $M$, specified as a \meta{system} of 1-forms.
  176. In specifying an integral element for a particular \meta{EDS}, it is
  177. possible to omit the Pfaffian component of the \meta{EDS}, since these
  178. 1-forms must be part of any integral element.
  179. \paragraph{\it Examples:}
  180. \begin{itemize}
  181. \item With $M = \R^3 = \{(x,y,z)\}$, $S = \{\d x\wedge \d z\}$ and
  182. $\Omega = \{\d x,\d y\}$, the integral element $P = \{\partial\sb
  183. x + \partial_z,\partial_y\}$ is equally determined by its
  184. annihilator $P^\perp = \{\d z - \d x\}$.
  185. \item For $S = \{\d z - y\d x\}$ and $\Omega = \{\d x\}$, the integral
  186. element $P = \{\partial_x + y\partial_z\}$ can be specified
  187. simply as $\{\d y\}$.
  188. \end{itemize}
  189. \subsection{Properties}
  190. \label{Properties}
  191. For large problems, it can require a great deal of computation to establish
  192. whether, for example, a system is closed or not. In order to save
  193. recomputing such properties, an \meta{EDS} object carries a list of
  194. \meta{properties} of the form
  195. \begin{syntax}
  196. \{\meta{keyword} = \meta{value},$\cdots$\}
  197. \end{syntax}
  198. where \meta{keyword} is one of \f{closed}, \f{quasilinear}, \f{pfaffian} or
  199. \f{involutive}, and \meta{value} is either \f{0} (false) or \f{1}
  200. (true). These properties are suppressed when an \meta{EDS} is printed,
  201. unless the \f{nat} switch is \f{off}. They can be examined using the
  202. \f{properties} operator (section \ref{properties}).
  203. Properties are usually generated automatically by EDS as required, but may
  204. be explicitly checked using the operators in section \ref{Testing exterior
  205. systems}. If a property is not yet present on the list, it is not yet
  206. known, and must be checked explicitly if required.
  207. In addition to the properties just described, an \meta{EDS} object carries
  208. a number of hidden properties which record the results of previous
  209. calculations, such as the closure or information about the prolongation of
  210. the system. These hidden properties speed up many operations which
  211. contain common sub-calculations. The hidden properties are stored using
  212. internal LISP data structures and so are not available for inspection.
  213. Properties can be asserted when an \meta{EDS} is constructed with the
  214. \f{eds} operator (section \ref{eds}). Care is needed since such assertions
  215. are never checked. Properties can be erased using the \f{cleanup} operator
  216. (section \ref{cleanup}).
  217. \subsection{Maps}
  218. \label{Maps}
  219. Within EDS, a map $f:M\to N$ is given as a \meta{map} object, a list
  220. \begin{syntax}
  221. \{\meta{coordinate} = \meta{expr},$\cdots$,\meta{expr} neq \meta{expr},$\cdots$\}
  222. \end{syntax}
  223. of substitutions and restrictions. The substitutions express coordinates on
  224. the target manifold $N$ in terms of those on the source manifold $M$. The
  225. restrictions describe point sets not contained in the source manifold
  226. $M$. The ordering of substitutions and restrictions in the list is
  227. unimportant. It is not necessary that the restrictions and right-hand sides
  228. of the substitutions be written entirely in $M$ coordinates, but it must be
  229. possible by repeated substitution to produce expressions on $M$ (see the
  230. examples below). Any denominators in the substitutions are automatically
  231. added to the list of restrictions. It is not necessary to include trivial
  232. equations for coordinates which are present on both $M$ and $N$. Note that
  233. projections cannot be represented in this fashion (but see the \f{cross}
  234. operator, section \ref{cross}).
  235. Maps are applied using the \f{pullback} and \f{restrict} operators
  236. (sections \ref{pullback}, \ref{restrict}).
  237. \paragraph{\it Examples:}
  238. \begin{itemize}
  239. \item The map $\R^2\backslash\{0\}\to\R^3$, $(x,y)\mapsto (x,y,z=x^2+y^2)$
  240. is represented $\{z = x^2+y^2,z\neq 0\}$.
  241. \item $\{x=u+v,y=u-v\}$ might represent the coordinate change
  242. $\R^3\to\R^3$, $(u,v,z)\mapsto(x=u+v,y=u-v,z)$.
  243. \item $\{x=u+v,y=2u-x\}$ is the same map again.
  244. \item $\{x=2v+y,y=2u-x\}$ is unacceptable since $x$ and $y$ cannot be
  245. eliminated from the right-hand sides by repeated substitution.
  246. \end{itemize}
  247. \subsection{Cobasis transformations}
  248. \label{Cobasis transformations}
  249. A cobasis transformation is given in EDS by a \meta{transform}, a list
  250. \begin{syntax}
  251. \{\meta{cobasis element} = \meta{1-form expr},$\cdots$\}
  252. \end{syntax}
  253. of substitutions. When applying a transformation to a \meta{p-form} or
  254. \meta{system}, it is necessary to specify the {\it forward}
  255. transformation just as for a \f{sub} substitution. For \meta{EDS} and
  256. \meta{coframing} objects, it is also possible to specify the inverse of
  257. the desired substition: EDS will automatically invert the transformation
  258. as required. For a partial change of cobasis, it is not necessary to
  259. include trivial equalities. Cobasis transformations are applied by the
  260. \f{transform} operator (section \ref{transform}).
  261. \paragraph{\it Examples:}
  262. \begin{itemize}
  263. \item $\{\omega^1 = x\d y - y\d x, \omega^2 = x\d x + y\d y\}$ gives a
  264. transformation between Cartesian and polar cobases on
  265. $\R^2\backslash\{0\}$.
  266. \item On $J^1(\R^2,\R)$ with cobasis $\{\d u,\d p,\d q,\d r,\d s,\d t,\d
  267. x,\d y\}$, the list $\{\theta^1=\d u - p\d x - q\d y, \theta^2=\d p -
  268. r\d x - s\d y, \theta^3=\d q - s\d x - t\d y\}$ specifies a new cobasis in
  269. which the contact system is simply $\{\theta^1,\theta^2,\theta^3\}$.
  270. \end{itemize}
  271. \subsection{Tableaux}
  272. \label{Tableaux}
  273. For a quasilinear Pfaffian exterior differential system
  274. $(\{\theta^a\},\{\omega^i\},M)$, the tableau $A=[\pi^a_i]$
  275. is a matrix of 1-forms such that
  276. $$ \d \theta^a + \pi^a_i\wedge\omega^i \simeq 0
  277. \pmod{\{\theta^a,\omega^i\wedge\omega^j\}}
  278. $$
  279. The $\pi^a_i$ are not unique: if $\{\theta^a,\pi^\rho,\omega^i\}$ is a
  280. standard cobasis for the system (section \ref{Standard cobasis}), the EDS
  281. \meta{tableau} is a matrix containing linear combinations of the $\pi^\rho$
  282. only. Zero rows are omitted.
  283. The tableau of an \meta{EDS} is generated by the \f{tableau} operator
  284. (section \ref{tableau}), or can be entered using the \f{mat} operator. The
  285. Cartan characters of a tableau are found using \f{characters} (section
  286. \ref{characters}).
  287. \subsection{Normal form}
  288. \label{Normal form}
  289. Parts of the theory of exterior differential systems apply only at points
  290. on the underlying manifold where the system is in some sense
  291. non-singular. To ensure the theory applies, EDS automatically works all
  292. exterior systems $(S,\Omega,M)$ into a {\em normal form} in which
  293. \begin{enumerate}
  294. \item The Pfaffian (degree 1) component of $S$ is in {\em solved} form,
  295. where each expression has a distinguished term with coefficient 1,
  296. unique to that expression.
  297. \item The independence condition $\Omega$ is also in solved form.
  298. \item The distinguished terms from the 1-forms in $S$ have been eliminated
  299. from the rest of $S$ and from $\Omega$.
  300. \item Any 1-forms in $S$ which vanish modulo the independence condition are
  301. removed from the system and their coefficients are appended as
  302. 0-forms.
  303. \end{enumerate}
  304. Conditions 1 and 2 ensure the 1-forms have constant rank, while 3 is
  305. convenient for many tests and calculations. In bringing the system into
  306. solved form, divisions will be made only by coefficients which are
  307. constants, parameters or functions which are nowhere zero on the
  308. manifold. The test for nowhere-zero functions uses the restrictions
  309. component of the \meta{coframing} structure (cf section \ref{Coframings}) and
  310. is still primitive: facts such as $x^2+1\neq0$ on a real manifold are
  311. overlooked. See also the switch \f{edssloppy} (section \ref{edssloppy}).
  312. This ``normal form'' has, of course, nothing to do with the various normal
  313. forms (eg Goursat) into which some exterior systems may be brought by
  314. cobasis transformations and choices of generators.
  315. \paragraph{\it Examples:}
  316. \begin{itemize}
  317. \item On $M=\{(u,v,w)\in\R^3\mid u\neq v\}$, the Pfaffian system
  318. $$\{u\d u + v\d v + \d w,\>(u^2 + u - v^2)\d u + u\d v + \d w\}$$ has
  319. the solved form
  320. $$\{\d v + (u + v)\d u,\>\d w + ( - uv + u - v )\d u\}.$$
  321. \item Since the independence condition is defined only modulo the system,
  322. the system
  323. $$S=\{\d u - \d x - u_y\d y\},\quad \Omega=\d x\wedge\d y$$ has an
  324. equivalent normal form
  325. $$S=\{\d x - \d u + u_y\d y\},\quad \Omega=\d u\wedge\d y.$$
  326. \end{itemize}
  327. \subsection{Standard cobasis}
  328. \label{Standard cobasis}
  329. Given an \meta{EDS} $(S,\Omega,M)$ in normal form (section \ref{Normal
  330. form}), the cobasis of the \meta{coframing} $M$ can be decomposed into three
  331. sets: $\{\theta^a\}$, the distinguished terms from the 1-forms in $S$,
  332. $\{\omega^i\}$, the distinguished terms from the 1-forms in $\Omega$, and
  333. the remainder $\{\pi^\rho\}$. Within EDS, $\{\theta^a,\pi^\rho,\omega^i\}$
  334. is called the {\em standard cobasis}, and all expressions are ordered so
  335. that $\theta^a > \pi^\rho > \omega^i$. The ordering within the three sets
  336. is determined by the REDUCE \meta{kernel} ordering.
  337. \paragraph{\it Examples:}
  338. \begin{itemize}
  339. \item For the system $S=\{\d u - \d x - u_y\d y\}$, $\Omega=\d x\wedge\d y$,
  340. the decomposed standard cobasis is $\{\d u\}\cup\{\d u_y\}\cup\{\d
  341. x,\d y\}$.
  342. \item For the contact system
  343. $$S=\cases{\d u - u_x\d x - u_y\d y\cr
  344. \d u_x - u_{xx}\d x - u_{xy}\d y\cr
  345. \d u_y - u_{xy}\d x - u_{yy}\d y,\cr}$$
  346. the standard cobasis is $\{\d u,\d u_x,\d u_y\}\cup\{\d
  347. u_{xx},\d u_{xy},\d u_{yy}\}\cup\{\d x,\d y\}$.
  348. \end{itemize}
  349. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  350. \section{Constructing EDS objects}
  351. \label{Constructing EDS objects}
  352. Before analysing an exterior system, it is necessary to enter it into EDS
  353. somehow. Several means are provided for this purpose, and are described in
  354. this section.
  355. \subsection{\tt coframing}
  356. \label{coframing}
  357. An EDS \meta{coframing} is constructed using the \f{coframing}
  358. operator. There are several ways in which it can be used.
  359. The simplest syntax
  360. \begin{syntax}
  361. coframing(\{\meta{expr},$\cdots$\})
  362. \end{syntax}
  363. examines the argument for 0-form and 1-form variables and deduces a full
  364. \meta{coframing} object capable of supporting the given expressions. This
  365. includes recursively examining the exterior derivatives of the variables
  366. appearing explicitly in the argument, taking into account prevailing
  367. \f{let} rules. In this form, the ordering of the final cobasis elements
  368. follows the prevailing REDUCE ordering. Free indices in indexed expressions
  369. are expanded to a list of explicit indices using \f{index\_expand} (section
  370. \ref{index_expand}).
  371. A more basic syntax is
  372. \begin{syntax}
  373. coframing(\meta{cobasis}\optional{,\meta{coordinates}}
  374. \optional{,\meta{restrictions}}
  375. \\\phantom \qquad\qquad\quad
  376. \optional{,\meta{structure equations}})
  377. \end{syntax}
  378. where \meta{cobasis} is a list of \meta{kernel} 1-forms,
  379. \meta{coordinates} is a list of \meta{kernel} 0-forms,
  380. \meta{restrictions} is a list of inequalities (using only $\neq$ at
  381. present), and \meta{structure equations} is a list of rules giving the
  382. exterior derivatives of the coordinates and cobasis elements. All
  383. arguments except the cobasis are optional, and the order of arguments is
  384. unimportant. As in the first syntax, missing parts are deduced. The
  385. ordering of the final cobasis elements follows the ordering specified,
  386. rather than the prevailing REDUCE ordering.
  387. Finally,
  388. \begin{syntax}
  389. coframing(\meta{EDS})
  390. \end{syntax}
  391. returns the coframing argument of an \meta{EDS}, and
  392. \begin{syntax}
  393. coframing()
  394. \end{syntax}
  395. returns the current background coframing (section \ref{Background
  396. coframing}).
  397. \paragraph{\it Examples:}
  398. \begin{verbatim}
  399. coframing {x,y,z};
  400. coframing({d x,d y,d z},{x,y,z},{},{})
  401. coframing({e 1,e 2},{r},{r neq 0},
  402. {d r=>e 1,d e 1=>0,d e 2=>e 1^e 2/r});
  403. 1 2
  404. 1 2 1 2 e ^e 1
  405. coframing({e ,e },{r},{d e => 0,d e => -------,d r => e },
  406. r
  407. {r neq 0})
  408. coframing({e 2}) where {d r=e 1,d e 1=0,d e 2=e 1^e 2/r};
  409. 1 2
  410. 1 2 1 2 e ^e 1
  411. coframing({e ,e },{r},{d e => 0,d e => -------,d r => e },
  412. r
  413. {r neq 0})
  414. \end{verbatim}
  415. \subsection{\tt eds}
  416. \label{eds}
  417. A simple \meta{EDS} is constructed using the \f{eds} operator.
  418. \begin{syntax}
  419. eds(\meta{system},\meta{indep. condition}\ignorespaces
  420. \optional{,\meta{coframing}}\optional{,\meta{properties}})
  421. \end{syntax}
  422. (cf sections \ref{Systems}, \ref{Coframings}, \ref{Properties}). The
  423. \meta{indep. condition} can be either a decomposable \meta{p-form} or a
  424. \meta{system} of 1-forms. Free indices in indexed expressions are expanded
  425. to a list of explicit indices using \f{index\_expand} (section
  426. \ref{index_expand}).
  427. The \meta{coframing} argument can be omitted, in which case the expressions
  428. from the \meta{system} and \meta{indep. condition} are fed to the
  429. \f{coframing} operator (section \ref{coframing}) to construct a suitable
  430. working space.
  431. The \meta{properties} argument is optional, allowing the given properties
  432. to be asserted. This can save considerable time for large systems, but care
  433. is needed since the assertions are never checked.
  434. The \meta{EDS} is put into normal form (section \ref{Normal form}) before
  435. being returned.
  436. On output, only the \meta{system} and \meta{indep. condition} are
  437. displayed, unless the \f{nat} switch is off, in which case the
  438. \meta{coframing} and \meta{properties} are shown too. This is so that an
  439. \meta{EDS} can be written out to a file and read back in.
  440. The parts of an \meta{EDS} are obtained with the operators \f{system},
  441. \f{cobasis}, \f{independence} and \f{properties} (sections \ref{system},
  442. \ref{cobasis}, \ref{independence} and \ref{properties}).
  443. \paragraph{\it Examples:}
  444. \begin{verbatim}
  445. pform {x,y,z,p,q}=0,{e(i),w(i,j)}=1;
  446. indexrange {i,j,k}={1,2},{a,b,c}={3};
  447. eds({d z - p*d x - q*d y, d p^d q},{d x,d y});
  448. EDS({d z - p*d x - q*d y,d p^d q},{d x,d y})
  449. OMrules :=
  450. index_expand {d e(i)=>-w(i,-j)^e(j),w(i,-j)+w(j,-i)=>0}$
  451. eds({e(a)},{e(i)}) where OMrules;
  452. 3 1 2
  453. EDS({e },{e ,e })
  454. coframing ws;
  455. 3 2 1 2 1 2 2
  456. coframing({e ,w ,e ,e },{},{d e => - e ^w ,
  457. 1 1
  458. 2 1 2
  459. d e => e ^w },{})
  460. 1
  461. \end{verbatim}
  462. \subsection{\tt contact}
  463. \label{contact}
  464. Many PDE problems are formulated as exterior systems using a jet bundle
  465. contact system. To facilitate construction of these systems, the
  466. \f{contact} operator is provided. The syntax is
  467. \begin{syntax}
  468. contact(\meta{order},\meta{source manifold},\meta{target manifold})
  469. \end{syntax}
  470. where \meta{order} is a non-negative integer, and the two remaining
  471. arguments are either \meta{coframing} objects or lists of \meta{p-form}
  472. expressions. In the latter case, the expressions are fed to the
  473. \f{coframing} operator (section \ref{coframing}). The contact system for the
  474. bundle $J^r(M,N)$ of $r$-jets of maps $M\to N$ is thus returned by
  475. \f{contact(r,M,N)}. Source and target spaces may have anholonomic
  476. cobases. Indexed names for the jet bundle fibre coordinates are constructed
  477. using the identifiers in the source and target cobases.
  478. \paragraph{\it Examples:}
  479. \begin{verbatim}
  480. pform {x,y,z,u,v}=0,{e i,w a}=1;
  481. indexrange {i}={1,2},{a}=1;
  482. contact(1,{x,y,z},{u,v});
  483. EDS({d u - u *d x - u *d y - u *d z,
  484. x y z
  485. d v - v *d x - v *d y - v *d z},{d x,d y,d z})
  486. x y z
  487. contact(2,{e(i)},{w(a)})
  488. where index_expand{d e(1)=>e(1)^e(2),d e(2)=>0,d w(a)=>0};
  489. 1 1 1 1 2
  490. EDS({w - w *e - w *e ,
  491. 1 2
  492. 1 1 1 1 2
  493. d w - w *e - w *e ,
  494. 1 1 1 1 2
  495. 1 1 1 1 1 2 1 2
  496. d w + ( - w + w )*e - w *e },{e ,e })
  497. 2 1 2 1 2 2
  498. \end{verbatim}
  499. \subsection{\tt pde2eds}
  500. \label{pde2eds}
  501. A PDE system can be encoded into an \meta{EDS} using \f{pde2eds}. The
  502. syntax is
  503. \begin{syntax}
  504. pde2eds(\meta{pde}\optional{,\meta{dependent},\meta{independent}})
  505. \end{syntax}
  506. where \meta{pde} is a list of equations or expressions (implicitly assumed
  507. to vanish) specifying the PDE system using either
  508. the standard REDUCE \f{df} operator, or the EXCALC \f{@} operator. If the
  509. optional variable lists \meta{dependent} and \meta{independent} are not
  510. given, \f{pde2eds} infers them from the expressions in \meta{pde}. The
  511. order of each dependent variable is determined automatically.
  512. The result returned by \f{pde2eds} is an \meta{EDS} based on the contact
  513. system of the relevant mixed-order jet bundle. Any of the \meta{pde}
  514. members which is in solved form is used to pull back this contact
  515. system. Any remaining expressions or unresolved equations are simply
  516. appended as 0-forms: before many of the analysis tools (section
  517. \ref{Analysing exterior systems}) can be applied, it is necessary to
  518. convert this to a system generated in positive degree using the \f{lift}
  519. operator (section \ref{lift}).
  520. The automatic inference of dependent and independent variables is governed
  521. by the following rules. The independent variables are all those with
  522. respect to which derivatives appear. The dependent variables are those
  523. for which explicit derivatives appear, as well as any which have
  524. dependencies (as declared by \f{depend} or \f{fdomain}) or which are 0-forms.
  525. To exclude a variable from the dependent variable list (for example,
  526. because it is regarded as given) or to include extra independent variables,
  527. use the optional arguments to \f{pde2eds}.
  528. One of the awkward points about \f{pde2eds} is that implicit dependence
  529. is changed globally. In order for the \f{df} and \f{@} operators to be used
  530. to express the PDE, the \meta{dependent} variables must depend (via
  531. \f{depend} or \f{fdomain}) on the \meta{independent} variables. On the
  532. other hand, in the \meta{EDS}, these variables are all completely
  533. independent coordinates. The \f{pde2eds} operator thus removes the implicit
  534. dependence so that the \meta{EDS} is correct upon return. This means that
  535. the \meta{pde} will no longer evaluate properly until such time as the
  536. dependence is manually restored, whereupon the \meta{EDS} will no longer be
  537. correct, and so on.
  538. To assist with this difficulty, \f{pde2eds} saves a record of the
  539. dependencies it has removed in the shared variable \f{dependencies}. The
  540. operator \f{mkdepend} can be used to restore the initial state.
  541. See also the operators \f{pde2jet} (section \ref{pde2jet}) and \f{mkdepend}
  542. (section \ref{mkdepend}).
  543. \paragraph{\it Example:}
  544. \begin{verbatim}
  545. depend u,x,y; depend v,x,y;
  546. pde2eds({df(u,y,y)=df(v,x),df(v,y)=y*df(v,x)});
  547. EDS({d u - u *d x - u *d y,
  548. x y
  549. d u - u *d x - u *d y,
  550. x x x y x
  551. d u - u *d x - v *d y,
  552. y y x x
  553. d v - v *d x - v *y*d y},d x^d y)
  554. x x
  555. dependencies;
  556. {{u,y,x},{v,y,x}}
  557. \end{verbatim}
  558. \subsection{\tt set\_coframing}
  559. \label{set_coframing}
  560. The background coframing (section \ref{Background coframing}) is set with
  561. \f{set\_coframing}. The syntax is
  562. \begin{syntax}
  563. set\_coframing \meta{arg}
  564. \end{syntax}
  565. where \meta{arg} is a \meta{coframing} or an \meta{EDS} and the previous
  566. background coframing is returned. All rules, orderings etc pertaining to the
  567. previous background coframing are removed and replaced by those for the new
  568. \meta{coframing}. The special form
  569. \begin{syntax}
  570. set\_coframing()
  571. \end{syntax}
  572. clears the background coframing entirely and returns the previous one.
  573. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  574. \section{Inspecting EDS objects}
  575. \label{Inspecting EDS objects}
  576. Given an \meta{EDS} or some other EDS structure, it is often desirable to
  577. inspect or extract some part of it. The operators described in this section
  578. do just that. Many of them accept various types of arguments and return the
  579. relevant information in each case.
  580. \subsection{\tt cobasis}
  581. \label{cobasis}
  582. \begin{syntax}
  583. cobasis \meta{arg}
  584. \end{syntax}
  585. returns the cobasis for \meta{arg}, which may be either a \meta{coframing}
  586. or an \meta{EDS} (sections \ref{Coframings}, \ref{Exterior differential
  587. systems}). The order of the items in the list gives the \meta{kernel}
  588. ordering which applies when the \meta{coframing} in \meta{arg} is active.
  589. \subsection{\tt coordinates}
  590. \label{coordinates}
  591. \begin{syntax}
  592. coordinates \meta{arg}
  593. \end{syntax}
  594. returns the coordinates for \meta{arg}, which may be either a
  595. \meta{coframing}, an \meta{EDS}, or a list of \meta{expr} (sections
  596. \ref{Coframings}, \ref{Exterior differential systems}). The coordinates in a
  597. list of \meta{expr} are defined to be those 0-form \meta{kernels} with no
  598. implicit dependencies.
  599. \paragraph{\it Examples:}
  600. \begin{verbatim}
  601. coordinates contact(3,{x},{u});
  602. {x,u,u ,u ,u }
  603. x x x x x x
  604. fdomain u=u(x);
  605. coordinates {d u+d y};
  606. {x,y}
  607. \end{verbatim}
  608. \subsection{\tt structure\_equations}
  609. \label{structure_equations}
  610. \begin{syntax}
  611. structure\_equations \meta{arg}
  612. \end{syntax}
  613. returns the structure equations (cf section \ref{Coframings}) for
  614. \meta{arg}, which may be either a \meta{coframing}, an \meta{EDS}, or a
  615. \meta{transform} (sections \ref{Coframings}, \ref{Exterior differential
  616. systems}, \ref{Cobasis transformations}). In the case of a
  617. \meta{transform}, it is assumed the exterior derivatives of the right-hand
  618. sides are known, and a list giving the exterior derivatives of the
  619. left-hand sides is returned. This requires inverting the transformation. In
  620. case this has already been done, and was time consuming, an alternative
  621. syntax
  622. \begin{syntax}
  623. structure\_equations(\meta{transform},\meta{inverse transform})
  624. \end{syntax}
  625. avoids recomputing the inverse.
  626. \paragraph{\it Example:}
  627. \begin{verbatim}
  628. structure_equations{e 1=d x/x,e 2=x*d y};
  629. 1 2 1 2
  630. {d e => 0,d e => e ^e }
  631. \end{verbatim}
  632. \subsection{\tt restrictions}
  633. \label{restrictions}
  634. \begin{syntax}
  635. restrictions \meta{arg}
  636. \end{syntax}
  637. returns the restrictions for \meta{arg}, which may be either a
  638. \meta{coframing} or an \meta{EDS} (sections \ref{Coframings}, \ref{Exterior
  639. differential systems}). The result is a list of inequalities.
  640. \subsection{\tt system}
  641. \label{system}
  642. \begin{syntax}
  643. system \meta{EDS}
  644. \end{syntax}
  645. returns the system component of an \meta{EDS} (sections \ref{Exterior
  646. differential systems}, \ref{Systems}) as a list of \meta{p-form}
  647. expressions. (The PSL-based REDUCE command \f{system} operates as before:
  648. the syntax
  649. \begin{syntax}
  650. system "\meta{command}"
  651. \end{syntax}
  652. executes an operating system (eg UNIX) command.)
  653. \subsection{\tt independence}
  654. \label{independence}
  655. \begin{syntax}
  656. independence \meta{EDS}
  657. \end{syntax}
  658. returns the independence condition of an \meta{EDS} (section \ref{Exterior
  659. differential systems}) as a list of \meta{1-form} expressions.
  660. \subsection{\tt properties}
  661. \label{properties}
  662. \begin{syntax}
  663. properties \meta{EDS}
  664. \end{syntax}
  665. returns the currently known properties of an \meta{EDS} (sections
  666. \ref{Exterior differential systems}, \ref{Properties}) as a list of
  667. equations of the form {\tt\meta{keyword} = \meta{value}}.
  668. \paragraph{\it Example:}
  669. \begin{verbatim}
  670. properties closure contact(1,{x},{u});
  671. {closed=1,pfaffian=1,quasilinear=1}
  672. \end{verbatim}
  673. \subsection{\tt one\_forms}
  674. \label{one_forms}
  675. \begin{syntax}
  676. one\_forms \meta{arg}
  677. \end{syntax}
  678. returns the 1-forms in \meta{arg}, which may be either an \meta{EDS} or a
  679. list of \meta{expr} (sections \ref{Exterior differential systems},
  680. \ref{Systems}).
  681. \paragraph{\it Example:}
  682. \begin{verbatim}
  683. one_forms {5,x*y - u,d u - x*d y,d u^d x- x*d y^d x};
  684. {d u - d y*x}
  685. \end{verbatim}
  686. \subsection{\tt zero\_forms, nought\_forms}
  687. \label{zero_forms}
  688. \begin{syntax}
  689. zero\_forms \meta{arg}
  690. \end{syntax}
  691. returns the 0-forms in \meta{arg}, which may be either an \meta{EDS} or a
  692. list of \meta{expr} (sections \ref{Exterior differential systems},
  693. \ref{Systems}). The alternative syntax \f{nought\_forms} does the same thing.
  694. \paragraph{\it Example:}
  695. \begin{verbatim}
  696. zero_forms {5,x*y - u,d u - x*d y,d u^d x- x*d y^d x};
  697. {5, - u + x*y}
  698. \end{verbatim}
  699. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  700. \section{Manipulating EDS objects}
  701. \label{Manipulating EDS objects}
  702. The abililty to change coordinates or cobasis, or to modify the system or
  703. coframing can make the difference between an intractible problem and a
  704. solvable one. The facilities described in this section form the low-level
  705. core of EDS functions.
  706. Most of the operators in this section can be applied to both \meta{EDS} and
  707. \meta{coframing} objects. Where it makes sense (eg \f{pullback},
  708. \f{restrict} and \f{transform}), they can be applied to a \meta{system}, or
  709. list of differential forms as well.
  710. \subsection{\tt augment}
  711. \label{augment}
  712. \begin{syntax}
  713. augment(\meta{EDS},\meta{system})
  714. \end{syntax}
  715. appends the extra forms in the second argument to the system part of the
  716. first. If the forms in the \meta{system} do not live on the coframing of the
  717. \meta{EDS}, an error results. The original \meta{EDS} is unchanged.
  718. \paragraph{\it Example:}
  719. \begin{verbatim}
  720. % Non-Pfaffian system for a Monge-Ampere equation
  721. S := contact(1,{x,y},{z})$
  722. S := augment(S,{d z(-x)^d z(-y)});
  723. s := EDS({d z - z *d x - z *d y,
  724. x y
  725. d z ^d z },{d x,d y})
  726. x y
  727. \end{verbatim}
  728. \subsection{\tt cross}
  729. \label{cross}
  730. The infix operator \f{cross} gives the direct product of
  731. \meta{coframing} objects. The syntax is
  732. \begin{syntax}
  733. \meta{arg1} cross \meta{arg2} \optional{cross $\cdots$}
  734. \end{syntax}
  735. The first argument may be either a \meta{coframing} (section
  736. \ref{Coframings}) or an \meta{EDS} (section \ref{Exterior differential
  737. systems}). The remaining arguments may be either \meta{coframing}
  738. objects or any valid argument to the \f{coframing} operator (section
  739. \ref{coframing}), in which case the corresponding \meta{coframing} is
  740. automatically inferred. The arguments may not contain any common
  741. coordinates or cobasis elements.
  742. If the first argument is an \meta{EDS}, the result is the \meta{EDS}
  743. lifted to the direct product space. In this way, it is possible to
  744. execute a pullback under a projection.
  745. \paragraph{\it Example:}
  746. \begin{verbatim}
  747. coordinates(contact(1,{x,y},{u}) cross {v});
  748. {x,y,u,u ,u ,v}
  749. x y
  750. \end{verbatim}
  751. \subsection{\tt pullback}
  752. \label{pullback}
  753. Pullbacks with respect to an EDS \meta{map} (section \ref{Maps}) have the
  754. syntax
  755. \begin{syntax}
  756. pullback(\meta{arg},\meta{map})
  757. \end{syntax}
  758. where \meta{arg} can be any one of \meta{EDS}, \meta{coframing},
  759. \meta{system} or \meta{p-form} expression (sections \ref{Exterior
  760. differential systems}, \ref{Coframings}, \ref{Systems}). The result is of
  761. the same type as \meta{arg}.
  762. For an \meta{EDS} or \meta{coframing} with anholonomic cobasis, \f{pullback}
  763. calculates the pullbacks of the cobasis elements and chooses a cobasis for
  764. the source coframing itself. For a \meta{system}, any zeroes in the result
  765. are dropped from the list.
  766. \paragraph{\it Examples:}
  767. \begin{verbatim}
  768. pullback(contact(1,{x,y},{u}),{u(-y) = u*u(-x)});
  769. EDS({d u - u *d x - u *u*d y},{d x,d y})
  770. x x
  771. M := coframing({e 1,e 2},{r},{r neq 0},
  772. {d r=>e 1,d e 1=>0,d e 2=>e 1^e 2/r})$
  773. pullback(M,{r=1/x});
  774. 2
  775. 2 2 e ^d x
  776. coframing({e ,d x},{x},{d e => --------},{x neq 0})
  777. x
  778. pullback(ws,{x=0});
  779. ***** Map image not within target coframing in pullback
  780. pullback({y*d y,d y - d x},{y=x});
  781. {d x*x}
  782. \end{verbatim}
  783. \subsection{\tt restrict}
  784. \label{restrict}
  785. Restrictions with respect to an EDS \meta{map} (section \ref{Maps}) have the
  786. syntax
  787. \begin{syntax}
  788. restrict(\meta{arg},\meta{map})
  789. \end{syntax}
  790. where \meta{arg} can be any one of \meta{EDS}, \meta{coframing},
  791. \meta{system} or \meta{p-form} expression (sections \ref{Exterior
  792. differential systems}, \ref{Coframings}, \ref{Systems}). The result is of
  793. the same type as \meta{arg}. The action of \f{restrict} is similar to that
  794. of \f{pullback}, except that only scalar coefficients are affected: 1-form
  795. variables are unchanged.
  796. \paragraph{\it Examples:}
  797. \begin{verbatim}
  798. % Bring a system into normal form by restricting the coframing
  799. S := eds({u*d v - v*d u},{d x});
  800. s := EDS({v*d u - u*d v},{d x})
  801. restrict(S,{u neq 0});
  802. v
  803. EDS({d v - ---*d u},{d x})
  804. u
  805. % Difference between restrict and pullback
  806. pullback({x*d x - y*d y},{x=y,y=1});
  807. {}
  808. restrict({x*d x - y*d y},{x=y,y=1});
  809. {d x - d y}
  810. \end{verbatim}
  811. \subsection{\tt transform}
  812. \label{transform}
  813. A change of cobasis is made using the \f{transform} operator
  814. \begin{syntax}
  815. transform(\meta{arg},\meta{transform})
  816. \end{syntax}
  817. where \meta{arg} can be any one of \meta{EDS}, \meta{coframing},
  818. \meta{system} or \meta{p-form} expression (sections \ref{Exterior
  819. differential systems}, \ref{Coframings}, \ref{Systems}) and \meta{transform}
  820. is a list of substitutions (cf section \ref{Cobasis transformations}). The
  821. result is of the same type as \meta{arg}.
  822. For an \meta{EDS} or \meta{coframing}, \f{transform} can detect whether the
  823. tranformation is given in the forward or reverse direction and invert
  824. accordingly. Structure equations are updated correctly. If an exact cobasis
  825. element is eliminated, its expression in terms of the new cobasis is added
  826. to the list of structure equations, since the corresponding coordinate may
  827. still be present elsewhere in the structure.
  828. \paragraph{\it Example:}
  829. \begin{verbatim}
  830. S := contact(1,{x},{u});
  831. s := EDS({d u - u *d x},{d x})
  832. x
  833. new := {e(1) = first system S,w(1) = d x};
  834. 1 1
  835. new := {e =d u - d x*u ,w =d x}
  836. x
  837. S := transform(S,new);
  838. 1 1
  839. s := EDS({e },{w })
  840. structure_equations s;
  841. 1 1
  842. {d e => - d u ^w ,
  843. x
  844. 1
  845. d w => 0,
  846. 1 1
  847. d u => e + u *w ,
  848. x
  849. 1
  850. d x => w }
  851. \end{verbatim}
  852. \subsection{\tt lift}
  853. \label{lift}
  854. Many of the analysis tools (section \ref{Analysing exterior systems})
  855. cannot treat systems containing 0-forms. The \f{lift} operator
  856. \begin{syntax}
  857. lift \meta{EDS}
  858. \end{syntax}
  859. solves the 0-forms in the system and uses the solution to pull back to a
  860. smaller manifold. This may generate new 0-form conditions (in the course of
  861. bringing the pulled-back system into normal form), in which case the
  862. process is repeated until the system is generated in positive degree. In
  863. non-linear problems, the solution space of the 0-forms may be a variety, in
  864. which case a compound \meta{EDS} (section \ref{Exterior differential
  865. systems}) will result. If \f{edsverbose} is on (section \ref{edsverbose}),
  866. the solutions are displayed as they are generated.
  867. \paragraph{\it Example:}
  868. \begin{verbatim}
  869. S := augment(contact(2,{x,y},{u}),{u(-y,-y)-u(-x,-x)})$
  870. on edsverbose;
  871. lift S;
  872. Solving 0-forms
  873. New equations:
  874. u =u
  875. y y x x
  876. EDS({d u - u *d x - u *d y,
  877. x y
  878. d u - u *d x - u *d y,
  879. x x x x y
  880. d u - u *d x - u *d y},{d x,d y})
  881. y x y x x
  882. \end{verbatim}
  883. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  884. \section{Analysing exterior systems}
  885. \label{Analysing exterior systems}
  886. This section describes higher level operators for extracting information
  887. about exterior systems. Many of them require a \meta{EDS} in normal form
  888. (section \ref{Normal form}) generated in positive degree as input, but some
  889. can also analyse a \meta{system} (section \ref{Systems}) or a single
  890. \meta{p-form}. Only trivial examples are provided in this section, but many
  891. of these operators are used in the longer examples in the test file which
  892. accompanies this package.
  893. \subsection{\tt cartan\_system}
  894. \label{cartan_system}
  895. The {\em Cartan system} of a form or system $S$ is the smallest Pfaffian
  896. system $C$ such that $\Lambda(C)$ contains a set $I$ of forms algebraically
  897. equivalent to $S$. The Cartan system is also known as the {\em associated
  898. Pfaff system} or {\em retracting space}. An alternative characterisation is
  899. to note that the annihilator $C^\perp$ comprises all vectors $V$ satisfying
  900. $i_V S \simeq 0 \pmod{S}$. Note this is a purely algebraic concept: $S$
  901. need not be closed under differentiation. See also \f{cauchy\_system}
  902. (section \ref{cauchy_system}).
  903. The operator
  904. \begin{syntax}
  905. cartan\_system \meta{arg}
  906. \end{syntax}
  907. returns the Cartan system of \meta{arg}, which may be an \meta{EDS}, a
  908. \meta{system} or a single \meta{p-form} expression (sections \ref{Exterior
  909. differential systems}, \ref{Systems}). For an \meta{EDS}, the result is a
  910. Pfaffian \meta{EDS} on the same manifold, otherwise it is a
  911. \meta{system}. The argument must be generated in positive degree.
  912. \paragraph{\it Example:}
  913. \begin{verbatim}
  914. cartan_system{d u^d v + d v^d w + d x^d y};
  915. {d u - d w,d v,d x,d y}
  916. \end{verbatim}
  917. \subsection{\tt cauchy\_system}
  918. \label{cauchy_system}
  919. The {\em Cauchy system} $C$ of a form or system $S$ is the Cartan system or
  920. retracting space of its closure under exterior differentiation (section
  921. \ref{cartan_system}). The annihilator $C^\perp$ consists of the Cauchy
  922. vectors for the $S$.
  923. The operator
  924. \begin{syntax}
  925. cauchy\_system \meta{arg}
  926. \end{syntax}
  927. returns the Cauchy system of \meta{arg}, which may be an \meta{EDS}, a
  928. \meta{system} or a single \meta{p-form} expression (sections \ref{Exterior
  929. differential systems}, \ref{Systems}). For an \meta{EDS}, the result is a
  930. Pfaffian \meta{EDS} on the same manifold, otherwise it is a
  931. \meta{system}. The argument must be generated in positive degree.
  932. \paragraph{\it Example:}
  933. \begin{verbatim}
  934. cauchy_system{u*d v + v*d w + x*d y};
  935. {d u,d v,d w,d x,d y}
  936. \end{verbatim}
  937. \subsection{\tt characters}
  938. \label{characters}
  939. The Cartan characters $\{s_1,...,s_n\}$ of an \meta{EDS} or \meta{tableau}
  940. (sections \ref{Exterior differential systems}, \ref{Tableaux}) are obtained
  941. with
  942. \begin{syntax}
  943. characters \meta{EDS} \qquad{\em or}\qquad characters \meta{tableau}
  944. \end{syntax}
  945. The zeroth character $s_0$ is not returned, it is simply the number of
  946. 1-forms in the \meta{EDS} (cf \f{one\_forms}, section \ref{one_forms}). The
  947. definition used for the last character: $s_n = (d - n) - (s_0 + s_1 + ... +
  948. s_{n-1})$, where $d$ is the manifold dimension, allows Cartan's test to be
  949. used even when Cauchy characteristics are present.
  950. For a nonlinear \meta{EDS}, the Cartan characters can vary from stratum to
  951. stratum of the Grassmann bundle variety of ordinary integral elements (cf
  952. \f{grassmann\_variety} in section \ref{grassmann_variety}). Nonetheless,
  953. they are constant on each stratum, so it suffices to calculate them at one
  954. point (ie at one integral element). This is done using the syntax
  955. \begin{syntax}
  956. characters(\meta{EDS},\meta{integral element})
  957. \end{syntax}
  958. where \meta{integral element} is a list of 1-forms (cf section
  959. \ref{Integral elements}).
  960. The Cartan characters are calculated from the reduced characters for a
  961. fixed flag of integral elements based on the 1-forms in the independence
  962. condition of an \meta{EDS}. This can lead to incorrect results if the flag
  963. is somehow singular, so two switches are provided to overcome this (section
  964. \ref{ranpos}). First, \f{genpos} looks at a generic flag by using a general
  965. linear transformation to put the system in {\em general position}. This
  966. guarantees correct results, but can be too slow for practical
  967. purposes. Secondly, \f{ranpos} performs a linear transformation using a
  968. sparse matrix of random integers. In most cases, this is much faster than
  969. using general position, and a few repetitions give some confidence in the
  970. results.
  971. \paragraph{\it Example:}
  972. \begin{verbatim}
  973. S := pullback(contact(2,{x,y},{u}),{u(-x,-y)=0});
  974. s := EDS({d u - u *d x - u *d y,
  975. x y
  976. d u - u *d x,
  977. x x x
  978. d u - u *d y},{d x,d y})
  979. y y y
  980. characters S;
  981. {1,1}
  982. on ranpos; characters S;
  983. {2,0}
  984. \end{verbatim}
  985. \subsection{\tt closure}
  986. \label{closure}
  987. \begin{syntax}
  988. closure \meta{EDS}
  989. \end{syntax}
  990. returns the closure of the \meta{EDS} under exterior differentiation.
  991. Owing to conflicts with the requirements of a normal form (section
  992. \ref{Normal form}), \f{closure} cannot guarantee that the resulting system
  993. is closed if the \meta{EDS} contains 0-forms.
  994. \subsection{\tt derived\_system}
  995. \label{derived_system}
  996. \begin{syntax}
  997. derived\_system \meta{arg}
  998. \end{syntax}
  999. returns the first derived system of \meta{arg}, which must be a Pfaffian
  1000. \meta{EDS} or \meta{system}. Repeated use gives the derived flag leading to
  1001. the maximal integrable subsystem.
  1002. \paragraph{\it Example:}
  1003. \begin{verbatim}
  1004. pform {p,r,x,y,z}=0; korder z;
  1005. derived_system eds({d z - q*d y,d p - e**z*d y,
  1006. d r - e**z*p*d y,d x},{d y});
  1007. z z
  1008. EDS({d p - e *d y,d r - e *p*d y,d x},{d y})
  1009. derived_system ws;
  1010. 1
  1011. EDS({d p - ---*d r,d x},{d y})
  1012. p
  1013. derived_system ws;
  1014. 1
  1015. EDS({d p - ---*d r,d x},{d y})
  1016. p
  1017. \end{verbatim}
  1018. \subsection{\tt dim\_grassmann\_variety}
  1019. \label{dim_grassmann_variety}
  1020. \begin{syntax}
  1021. dim\_grassmann\_variety \meta{EDS}
  1022. \end{syntax}
  1023. returns the dimension of the Grassmann bundle variety of ordinary integral
  1024. elements for an \meta{EDS} (cf \f{grassmann\_variety}, section
  1025. \ref{grassmann_variety}). This number is useful, for example, in Cartan's
  1026. test. For a nonlinear \meta{EDS}, this can vary from stratum to stratum of
  1027. the variety, so
  1028. \begin{syntax}
  1029. dim\_grassmann\_variety(\meta{EDS},\meta{integral element})
  1030. \end{syntax}
  1031. returns the dimension of the stratum containing the \meta{integral element}
  1032. (cf section \ref{Integral elements}).
  1033. \subsection{\tt dim}
  1034. \label{dim}
  1035. \begin{syntax}
  1036. dim \meta{arg}
  1037. \end{syntax}
  1038. returns the dimension of the manifold underlying \meta{arg},
  1039. which can be either an \meta{EDS} or a \meta{coframing} (sections \ref{Exterior
  1040. differential systems}, \ref{Coframings}).
  1041. \subsection{\tt involution}
  1042. \label{involution}
  1043. \begin{syntax}
  1044. involution \meta{EDS}
  1045. \end{syntax}
  1046. repeatedly prolongs an \meta{EDS} until it reaches involution or
  1047. inconsistency (cf \f{prolong}, section \ref{prolong}). The system must be
  1048. in normal form (section \ref{Normal form}) and generated in positive
  1049. degree. For nonlinear problems, all branches of the prolongation tree are
  1050. followed. The result is an \meta{EDS} (usually a compound one for
  1051. nonlinear problems, see section \ref{Exterior differential systems})
  1052. giving the involutive prolongation. In case some variety couldn't be
  1053. resolved during the process, the relevant branch is truncated at that point
  1054. and represented by a system with 0-forms, as with \f{grassmann\_variety}
  1055. (section \ref{grassmann_variety}). The result of \f{involution} might then
  1056. {\em not} be in involution.
  1057. If the \f{edsverbose} switch is on (section \ref{edsverbose}), a trace of
  1058. the prolongations is produced. See the Janet problem in the test file for
  1059. an example.
  1060. \subsection{\tt linearise, linearize}
  1061. \label{linearise}
  1062. A nonlinear exterior system can be linearised at some point on the
  1063. manifold with respect to any integral element, yielding a constant
  1064. coefficient exterior system with the same Cartan characters. In EDS,
  1065. reference to the point is omitted, so the result is an exterior system
  1066. linearised with respect to a distribution of integral elements. The syntax
  1067. is
  1068. \begin{syntax}
  1069. linearise(\meta{EDS},\meta{integral element})
  1070. \end{syntax}
  1071. but \f{linearize} will work just as well. See the isometric embeddings
  1072. example in the test file.
  1073. For a quasilinear \meta{EDS} (cf section \ref{quasilinear}),
  1074. \begin{syntax}
  1075. linearise \meta{EDS}
  1076. \end{syntax}
  1077. returns an equivalent exterior system containing only linear generators.
  1078. \paragraph{\it Example:}
  1079. \begin{verbatim}
  1080. f := d u^d x + d v^d y$
  1081. S := eds({f,d v^f},{d x,d y});
  1082. s := EDS({d u^d x + d v^d y,d u^d v^d x},{d x,d y})
  1083. linearise S;
  1084. EDS({d u^d x + d v^d y},{d x,d y})
  1085. \end{verbatim}
  1086. \subsection{\tt integral\_element}
  1087. \label{integral_element}
  1088. \begin{syntax}
  1089. integral\_element \meta{EDS}
  1090. \end{syntax}
  1091. returns a random \meta{integral element} of the \meta{EDS} (section
  1092. \ref{Integral elements}). The system must be in normal form (section
  1093. \ref{Normal form}) and generated in positive degree. This integral element
  1094. is found using the method described by Wahlquist \cite{Wahlquist}
  1095. (essentially the Cartan-K{\"a}hler construction filling in the free variables
  1096. from each polar system with random integer values). This method can fail on
  1097. non-involutive systems, or \meta{EDS} objects whose independence conditions
  1098. indicate a singular flag of integral elements (cf the discussion about
  1099. Cartan characters, section \ref{characters}).
  1100. See the isometric embedding problem in the test file for an example.
  1101. \subsection{\tt prolong}
  1102. \label{prolong}
  1103. \begin{syntax}
  1104. prolong \meta{EDS}
  1105. \end{syntax}
  1106. calculates the prolongation of the \meta{EDS} to the Grassmann bundle
  1107. variety of integral elements. The system must be in normal form (section
  1108. \ref{Normal form}) and generated in positive degree. The variety is
  1109. decomposed using essentially the REDUCE \f{solve} operator. If no solutions
  1110. can be found, the variety is empty, and the prolongation is the
  1111. inconsistent \meta{EDS} (section \ref{Exterior differential
  1112. systems}). Otherwise, the result is a list of variety components, which
  1113. fall into three classes:
  1114. \begin{enumerate}
  1115. \item a submanifold of the Grassmann bundle which surjects onto the base
  1116. manifold. The result in this case is the pullback of the Grassmann
  1117. bundle contact \meta{EDS} to this submanifold.
  1118. \item a submanifold of the Grassmann bundle which does not surject onto the
  1119. base manifold (ie cannot be presented by solving for Grassmann
  1120. bundle fibre coordinates). The result in this case is the pullback of
  1121. the original \meta{EDS} to the projection onto the base manifold. If
  1122. 0-forms arise in bringing the pullback to normal form, these are
  1123. solved recursively and the system pulled back again until the result
  1124. is generated in positive degree (cf \f{lift}, section \ref{lift}).
  1125. \item a component of the variety which \f{solve} was not able to resolve
  1126. explicitly. The result in this case is the Grassmann bundle contact
  1127. \meta{EDS} augmented with the 0-forms which \f{solve} couldn't
  1128. treat. This can be extracted from the result of \f{prolong} and
  1129. manipulated further ``by hand'',
  1130. \end{enumerate}
  1131. The result returned by \f{prolong} will, in general, be a compound
  1132. \meta{EDS} (section \ref{Exterior differential systems}). If the switch
  1133. \f{edsverbose} (section \ref{edsverbose}) is on, a trace of the
  1134. prolongation is printed.
  1135. The \meta{map}s which are generated in a \f{prolong} call are available
  1136. subsequently in the global variable \f{pullback\_maps}. This facility is
  1137. still very primitive and unstructured. It should be extended to the
  1138. \f{involution} operator as well...
  1139. \paragraph{\it Example:}
  1140. \begin{verbatim}
  1141. pde := {u(-y,-y)=u(-x,-x)**2/2,u(-x,-y)=u(-x,-x)};
  1142. 2
  1143. (u )
  1144. x x
  1145. pde := {u =---------,u =u }
  1146. y y 2 x y x x
  1147. S := pullback(contact(2,{x,y},{u}),pde)$
  1148. on edsverbose;
  1149. prolong S;
  1150. Reduction using new equations:
  1151. u =1
  1152. x x
  1153. Prolongation using new equations:
  1154. u =0
  1155. x x x
  1156. u =0
  1157. x x y
  1158. {EDS({d u - u *d x - u *d y,
  1159. x y
  1160. d u - d x - d y,
  1161. x
  1162. 1
  1163. d u - d x - ---*d y},{d x,d y}),
  1164. y 2
  1165. EDS({d u - u *d x - u *d y,
  1166. x y
  1167. d u - u *d x - u *d y,
  1168. x x x x x
  1169. 2
  1170. (u )
  1171. x x
  1172. d u - u *d x - ---------*d y,
  1173. y x x 2
  1174. d u },{d x,d y})}
  1175. x x
  1176. \end{verbatim}
  1177. \subsection{\tt tableau}
  1178. \label{tableau}
  1179. \begin{syntax}
  1180. tableau \meta{EDS}
  1181. \end{syntax}
  1182. returns the \meta{tableau} (section \ref{Tableaux}) of a quasilinear
  1183. Pfaffian \meta{EDS}, which must be in normal form and generated in positive
  1184. degree.
  1185. \paragraph{\it Example:}
  1186. \begin{verbatim}
  1187. tableau contact(2,{x,y},{u});
  1188. [d u d u ]
  1189. [ x x x y]
  1190. [ ]
  1191. [d u d u ]
  1192. [ x y y y]
  1193. \end{verbatim}
  1194. \subsection{\tt torsion}
  1195. \label{torsion}
  1196. For a semilinear Pfaffian exterior differential system, the torsion
  1197. corresponds to first-order integrability conditions for the
  1198. system. Specifically,
  1199. \begin{syntax}
  1200. torsion \meta{EDS}
  1201. \end{syntax}
  1202. returns a list of 0-forms describing the projection of the Grassmann bundle
  1203. variety of integral elements onto the base manifold. If the switch
  1204. \f{edssloppy} (section \ref{edssloppy}) is on, quasilinear systems are
  1205. treated as semilinear. A semilinear system is involutive if both the
  1206. torsion is empty, and Cartan's test for the reduced characters is
  1207. satisfied.
  1208. \paragraph{\it Example:}
  1209. \begin{verbatim}
  1210. S := pullback(contact(2,{x,y},{u}),
  1211. {u(-y,-y)=u(-x),u(-x,-y)=u});
  1212. s := EDS({d u - u *d x - u *d y,
  1213. x y
  1214. d u - u *d x - u*d y,
  1215. x x x
  1216. d u - u*d x - u *d y},{d x,d y})
  1217. y x
  1218. torsion s;
  1219. {u - u }
  1220. x x y
  1221. \end{verbatim}
  1222. \subsection{\tt grassmann\_variety}
  1223. \label{grassmann_variety}
  1224. Given an exterior system $(S,\Omega,M)$ with independence condition of
  1225. rank $n$, the Grassmann bundle of $n$-planes over $M$ contains a
  1226. submanifold characterised by those $n$-planes compatible with the
  1227. independence condition. All integral elements must lie in this
  1228. submanifold. The operator
  1229. \begin{syntax}
  1230. grassmann\_variety \meta{EDS}
  1231. \end{syntax}
  1232. returns the contact system for this part of the Grassmann bundle augmented
  1233. by the 0-forms specifying the variety of integral elements of $S$. In cases
  1234. where \f{prolong} (section \ref{prolong}) is unable to decompose the
  1235. variety automatically, \f{grassmann\_variety} can be used in combination
  1236. with \f{zero\_forms} (section \ref{zero_forms}) to calculate the variety
  1237. conditions. Any solutions found ``by hand'' can be incorporated using
  1238. \f{pullback} (section \ref{pullback}).
  1239. \paragraph{\it Example:}
  1240. Using the system from the example in section \ref{prolong}:
  1241. \begin{verbatim}
  1242. zero_forms grassmann_variety S;
  1243. { - u *u + u ,
  1244. x x x x x x x y
  1245. - u + u }
  1246. x x x x x y
  1247. solve ws;
  1248. Unknowns: {u ,u ,u }
  1249. x x x x x y x x
  1250. {{u =0,u =0},
  1251. x x y x x x
  1252. {u =1,u =u }}
  1253. x x x x x x x y
  1254. \end{verbatim}
  1255. The second solution contains an integrability condition.
  1256. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1257. \section{Testing exterior systems}
  1258. \label{Testing exterior systems}
  1259. The operators in this section allow various properties of an \meta{EDS} to
  1260. be checked. These checks are done automatically when required on entry to
  1261. the routines in sections \ref{Manipulating EDS objects} and \ref{Analysing
  1262. exterior systems}, but sometimes it is useful to know explicitly. The
  1263. result is either a \f{1} (true) or a \f{0} (false), so the operators can be
  1264. used in boolean expressions within \f{if} statements etc. Since checking
  1265. these properties can be very time-consuming, the result of the first test
  1266. is stored on the \meta{properties} record of an \meta{EDS} to avoid
  1267. re-checking. This memory can be cleared using the \f{cleanup} operator.
  1268. \subsection{\tt closed}
  1269. \label{closed}
  1270. \begin{syntax}
  1271. closed \meta{arg}
  1272. \end{syntax}
  1273. checks whether \meta{arg}, which may be an \meta{EDS}, a \meta{system} or a
  1274. single \meta{p-form} is closed under exterior differentiation.
  1275. \paragraph{\it Examples:}
  1276. \begin{verbatim}
  1277. closed(x*d x);
  1278. 1
  1279. closed {d u - p*d x,d p - p/y*d x};
  1280. 0
  1281. \end{verbatim}
  1282. \subsection{\tt involutive}
  1283. \label{involutive}
  1284. \begin{syntax}
  1285. involutive \meta{EDS}
  1286. \end{syntax}
  1287. checks whether \meta{EDS} is involutive, using Cartan's test. See the test
  1288. file for examples.
  1289. \subsection{\tt pfaffian}
  1290. \label{pfaffian}
  1291. \begin{syntax}
  1292. pfaffian \meta{EDS}
  1293. \end{syntax}
  1294. checks whether \meta{EDS} is a Pfaffian system: generated by a set of
  1295. 1-forms and their exterior derivatives. The \meta{EDS} must be in normal
  1296. form (section \ref{Normal form}) for this to succeed. Systems with 0-forms
  1297. are non-Pfaffian by definition in EDS.
  1298. \paragraph{\it Examples:}
  1299. \begin{verbatim}
  1300. pfaffian eds({d u - p*d x - q*d y,d p^d x+d q^d y},{d x,d y});
  1301. 1
  1302. pfaffian eds({d u - p*d x - q*d y,d p^d q},{d x,d y});
  1303. 0
  1304. \end{verbatim}
  1305. \subsection{\tt quasilinear}
  1306. \label{quasilinear}
  1307. An exterior system $(S,\Omega,M)$ is said to be {\em quasilinear} if, when
  1308. written in the standard cobasis $\{\theta^a,\pi^\rho,\omega^i\}$ (section
  1309. \ref{Standard cobasis}), its {\em closure} can be generated by a set of
  1310. forms which are of combined total degree 1 in $\{\theta^a,\pi^\rho\}$. The
  1311. operation
  1312. \begin{syntax}
  1313. quasilinear \meta{EDS}
  1314. \end{syntax}
  1315. checks whether the {\em closure} of \meta{EDS} is a quasilinear system. The
  1316. \meta{EDS} must be in normal form (section \ref{Normal form}) for this to
  1317. succeed. Systems with 0-forms are not quasilinear by definition in EDS.
  1318. \paragraph{\it Examples:}
  1319. \begin{verbatim}
  1320. % A system where pi(rho)={d p,d q}, and which looks non-linear
  1321. S := eds({d u - p*d x - q*d y,d p^d q^d y},{d x,d y})$
  1322. quasilinear S;
  1323. 1
  1324. linearise closure S;
  1325. EDS({d u - p*d x - q*d y,
  1326. - d p^d x - d q^d y},{d x,d y})
  1327. % One which is really non-linear
  1328. quasilinear eds({d u - p*d x - q*d y,d p^d q},{d x,d y});
  1329. 0
  1330. \end{verbatim}
  1331. \subsection{\tt semilinear}
  1332. \label{semilinear}
  1333. Let $(S,\Omega,M)$ be such that, written in the standard cobasis
  1334. $\{\theta^a,\pi^\rho,\omega^i\}$ (section \ref{Standard cobasis}), its
  1335. closure is explicitly quasilinear. If the coefficients of $\{\pi^\rho\}$
  1336. depend only on the independent variables, then the system is said to be
  1337. {\em semilinear}. The operation
  1338. \begin{syntax}
  1339. semilinear \meta{EDS}
  1340. \end{syntax}
  1341. checks whether {\em closure} of \meta{EDS} is a semilinear system. The
  1342. \meta{EDS} must be in normal form (section \ref{Normal form}) for this to
  1343. succeed. Systems with 0-forms are not semilinear by definition in EDS.
  1344. For semilinear systems, the expressions determining the Grassmann bundle
  1345. variety of integral elements will be linear in the Grassmann bundle fibre
  1346. coordinates, with coefficients which depend only upon the independent
  1347. variables. This allows alternative, faster algorithms to be used in
  1348. analysis.
  1349. If the switch \f{edssloppy} is on (section \ref{edssloppy}), all
  1350. quasilinear systems are treated as if they are semilinear.
  1351. \paragraph{\it Examples:}
  1352. \begin{verbatim}
  1353. % A semilinear system: @(u,y) = y*@(u,x)
  1354. S := eds({d u - p*d x - p*y*d y},{d x,d y})$
  1355. semilinear S;
  1356. 1
  1357. % A quasilinear system: @(u,y) = u*@(u,x)
  1358. S := eds({d u - p*d x - p*u*d y},{d x,d y})$
  1359. quasilinear S;
  1360. 1
  1361. semilinear S;
  1362. 0
  1363. on edssloppy;
  1364. semilinear S;
  1365. 1
  1366. \end{verbatim}
  1367. \subsection{\tt frobenius}
  1368. \label{frobenius}
  1369. \begin{syntax}
  1370. frobenius \meta{arg}
  1371. \end{syntax}
  1372. checks whether \meta{arg}, which may be an \meta{EDS} or a \meta{system},
  1373. is a completely integrable Pfaffian system.
  1374. \paragraph{\it Examples:}
  1375. \begin{verbatim}
  1376. if frobenius eds({d u -p*(d x+d y)},d x^d y) then yes else no;
  1377. no
  1378. if frobenius eds({d u -u*(d x+d y)},d x^d y) then yes else no;
  1379. yes
  1380. \end{verbatim}
  1381. \subsection{\tt equiv}
  1382. \label{equiv}
  1383. \begin{syntax}
  1384. \meta{EDS1} equiv \meta{EDS2}
  1385. \end{syntax}
  1386. checks whether \meta{EDS1} and \meta{EDS2} are algebraically equivalent as
  1387. exterior systems (ie generate the same algebraic ideal).
  1388. \paragraph{\it Examples:}
  1389. \begin{verbatim}
  1390. S1 := contact(2,{x,y},{u})$
  1391. S2 := augment(S1,foreach f in system S1 join {d f,d x^d f})$
  1392. if S1 equiv S2 then yes else no;
  1393. no
  1394. if closure S1 equiv S2 then yes else no;
  1395. yes
  1396. \end{verbatim}
  1397. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1398. \section{Switches}
  1399. \label{Switches}
  1400. EDS provides several switches to govern the display of information and
  1401. speed or reliability of the results.
  1402. \subsection{\tt edsverbose}
  1403. \label{edsverbose}
  1404. If \f{edsverbose} is \f{on}, a number of operators (eg \f{prolong},
  1405. \f{involution}) will display additional information as the calculation
  1406. progresses. For large problems, this can produce too much output to be
  1407. useful, so \f{edsverbose} is \f{off} by default. This allows only warning
  1408. (\f{***}) and error (\f{*****}) messages to be printed.
  1409. \subsection{\tt edsdebug}
  1410. \label{edsdebug}
  1411. If \f{edsdebug} is \f{on}, EDS produces copious quantities of information,
  1412. in addition to that produced with \f{edsverbose} on. This information is
  1413. for debugging purposes, and may not make much sense without knowledge of
  1414. the inner workings of EDS. \f{edsdebug} is \f{off} by default.
  1415. \subsection{\tt edssloppy}
  1416. \label{edssloppy}
  1417. Normally, EDS will not divide by any expressions it does not know to be
  1418. nowhere zero. If an \meta{EDS} can be brought into normal form only by
  1419. restricting away from the zeroes of some coefficients, then these
  1420. restrictions should be made using the \f{restrict} operator (section
  1421. \ref{restrict}). However, if \f{edssloppy} is \f{on}, then EDS will, as a
  1422. last resort, divide by whatever is necessary to bring an \meta{EDS} into
  1423. normal form, invert a transformation, and so on. The relevant restrictions
  1424. will be made automatically, so no inconsistency should arise. In addition,
  1425. with \f{edssloppy} \f{on}, all quasilinear systems are treated as if they
  1426. were semilinear (cf section \ref{semilinear}). \f{edssloppy} is \f{off} by
  1427. default.
  1428. \subsection{\tt edsdisjoint}
  1429. \label{edsdisjoint}
  1430. When decomposing a variety into (something like) smooth components, EDS
  1431. normally pays no attention to whether the components are disjoint. Turning
  1432. \f{on} the switch \f{edsdisjoint} forces EDS to ensure the decomposition is
  1433. a disjoint union (cf \f{disjoin}, section \ref{disjoin}). For large
  1434. problems this can lead to a proliferation of singular pieces. If some of
  1435. these turn out to be uninteresting, EDS cannot re-join the remaining pieces
  1436. into a smaller decomposition. \f{edsdisjoint} is \f{off} by default.
  1437. \subsection{\tt ranpos, genpos}
  1438. \label{ranpos}
  1439. When calculating Cartan characters (eg to check involution), EDS uses the
  1440. independence condition of an \meta{EDS} {\em as presented} to define a flag
  1441. of integral elements. Depending on the cobasis and ordering, this flag may
  1442. be singular, leading to incorrect Cartan characters. To overcome this
  1443. problem, the switches \f{ranpos} and \f{genpos} provide a means to select
  1444. other flags. With \f{ranpos} \f{on}, a flag defined by taking a random
  1445. linear transformation of the 1-forms in the independence condition will be
  1446. used. The results may still be incorrect, but the likelihood is much lower.
  1447. With \f{genpos} on, a generic (upper triangular) transformation is
  1448. used. this guarantees the correct Cartan characters, but reduces
  1449. performance too much to be useful for large problems. Both switches are
  1450. \f{off} by default, and switching one \f{on} automatically switches the other
  1451. \f{off}. See section \ref{characters} for an example.
  1452. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1453. \section{Auxiliary functions}
  1454. \label{Auxiliary functions}
  1455. This section describes various operators designed to ease working with
  1456. exterior forms and exterior systems in REDUCE.
  1457. \subsection{\tt invert}
  1458. \label{invert}
  1459. \begin{syntax}
  1460. invert \meta{transform}
  1461. \end{syntax}
  1462. returns a \meta{transform} which is inverse to the given one (section
  1463. \ref{transform}). If the \meta{transform} given is only partial, the
  1464. 1-form \meta{kernel}s to eliminate are chosen based on the prevailing
  1465. kernel ordering. If a background coframing (section \ref{Background
  1466. coframing}) is active, and \f{edssloppy} (section \ref{edssloppy}) is
  1467. \f{off}, \f{invert} will divide by nowhere-zero expressions only.
  1468. \paragraph{\it Examples:}
  1469. \begin{verbatim}
  1470. set_coframing coframing{u,v,w,x,y,z}$
  1471. invert {d u = 3*d x - d y + 5*d z, d v = d x + 2*d z};
  1472. {d x=d v - 2*d z,d y= - d u + 3*d v - d z}
  1473. % A y coefficient forces a different choice of inverse
  1474. invert {d u = 3*d x - y*d y + 5*d z, d v = d x + 2*d z};
  1475. {d x=2*d u - 5*d v + 2*d y*y,d z= - d u + 3*d v - d y*y}
  1476. \end{verbatim}
  1477. % \subsection{\tt exact}
  1478. % \label{exact}
  1479. % \begin{syntax}
  1480. % exact \meta{expr}
  1481. % \end{syntax}
  1482. % is a boolean operator which tests if the given expression is an exact
  1483. % \meta{kernel} (ie $\d x$ for some variable $x$). More general exact
  1484. % expressions are not recognised
  1485. % \paragraph{\it Examples:}
  1486. % \begin{verbatim}
  1487. % if exact d x then yes;
  1488. % yes
  1489. % if exact d(x+y) then yes else no;
  1490. % no
  1491. % \end{verbatim}
  1492. \subsection{\tt linear\_divisors}
  1493. \label{linear_divisors}
  1494. \begin{syntax}
  1495. linear\_divisors \meta{pform}
  1496. \end{syntax}
  1497. returns a basis for the space of linear divisors (1-form factors) of a
  1498. \meta{p-form}.
  1499. \paragraph{\it Example:}
  1500. \begin{verbatim}
  1501. f := d p^d q^d u - d p^d q^d x*x + d p^d q^d z*y
  1502. - d u^d v^d x*x + d u^d v^d z*y + d u^d x^d y
  1503. + d x^d y^d z*y$
  1504. linear_divisors f;
  1505. {d u - d x*x + d z*y}
  1506. \end{verbatim}
  1507. \subsection{\tt exfactors}
  1508. \label{exfactors}
  1509. \begin{syntax}
  1510. exfactors \meta{pform}
  1511. \end{syntax}
  1512. returns a list of factors for a \meta{p-form}, consisting of the linear
  1513. divisors plus one more factor. The list is ordered such that the original
  1514. expression is a product of the factors in this order.
  1515. \paragraph{\it Example:}
  1516. \begin{verbatim}
  1517. f := d p^d q^d u - d p^d q^d x*x + d p^d q^d z*y
  1518. - d u^d v^d x*x + d u^d v^d z*y + d u^d x^d y
  1519. + d x^d y^d z*y$
  1520. exfactors f;
  1521. {d p^d q - d v^d x*x + d v^d z*y + d x^d y,
  1522. d u - d x*x + d z*y}
  1523. f - (part(ws,0) := ^);
  1524. 0
  1525. \end{verbatim}
  1526. \subsection{\tt index\_expand}
  1527. \label{index_expand}
  1528. EXCALC caters for indexed variables in which various index names have been
  1529. assigned a specific set of values. Any expression with {\em paired} indices
  1530. is expanded automatically to an explicit sum over the index set (provided
  1531. the EXCALC command \f{nosum} has not been applied). The EDS operator
  1532. \f{index\_expand} is designed to expand an expression with {\em free}
  1533. indices to an explicit list over the index set, taking some limited account
  1534. of the possible index symmetries.
  1535. The syntax is
  1536. \begin{syntax}
  1537. index\_expand \meta{arg}
  1538. \end{syntax}
  1539. where \meta{arg} can be an expression, a rule or equation or a boolean
  1540. expression, or an arbitrarily nested list of these items. The result is a
  1541. flattened list.
  1542. \paragraph{\it Examples:}
  1543. \begin{verbatim}
  1544. indexrange {i,j,k}={1,2,3},{a,b}={x,y};
  1545. pform {e(i),o(a,b)}=1;
  1546. index_expand(e(i)^e(j));
  1547. 1 2 1 3 2 3
  1548. {e ^e ,e ^e ,e ^e }
  1549. index_expand{o(-a,-b)+o(-b,-a) => 0};
  1550. {2*o => 0,o + o => 0, 2*o => 0}
  1551. x x x y y x y y
  1552. \end{verbatim}
  1553. \subsection{\tt pde2jet}
  1554. \label{pde2jet}
  1555. A PDE system can be encoded into EDS jet variable notation using
  1556. \f{pde2jet}. The syntax is as for \f{pde2eds}:
  1557. \begin{syntax}
  1558. pde2jet(\meta{pde}\optional{,\meta{dependent},\meta{independent}})
  1559. \end{syntax}
  1560. where \meta{pde} is a list of equations or expressions (implicitly assumed
  1561. to vanish) specifying the PDE system using either the standard REDUCE
  1562. \f{df} operator, or the EXCALC \f{@} operator. If the optional variable
  1563. lists \meta{dependent} and \meta{independent} are not given, \f{pde2jet}
  1564. infers them from the expressions in \meta{pde}, using the same rules as
  1565. \f{pde2eds} (section \ref{pde2eds}).
  1566. The result of \f{pde2jet} is the input \meta{pde}, with all derivatives
  1567. of dependent variables replaced by indexed 0-form variables from the
  1568. appropriate jet bundle. Unlike \f{pde2eds}, \f{pde2jet} does not disturb
  1569. the variable dependencies.
  1570. \paragraph{\it Example:}
  1571. \begin{verbatim}
  1572. depend u,x,y; depend v,x,y;
  1573. pde2jet({df(u,y,y)=df(v,x),df(v,y)=y*df(v,x)});
  1574. {u =v ,
  1575. y y x
  1576. v =v *y}
  1577. y x
  1578. \end{verbatim}
  1579. \subsection{\tt mkdepend}
  1580. \label{mkdepend}
  1581. The \f{mkdepend} operator is intended for restoring the dependencies
  1582. destroyed by a call to \f{pde2eds} (section \ref{pde2eds}). The syntax is
  1583. \begin{syntax}
  1584. mkdepend \{\meta{list of variables},$\cdots$\}
  1585. \end{syntax}
  1586. where the first variable in each list is declared to depend on the
  1587. remaining ones.
  1588. \subsection{\tt disjoin}
  1589. \label{disjoin}
  1590. The \f{disjoin} operator takes a list of \meta{maps} (section \ref{Maps})
  1591. describing a decomposition of a variety, and returns an equivalent list of
  1592. \meta{maps} such that the components are all disjoint. The background
  1593. coframing (section \ref{Background coframing}) should be set appropriately
  1594. before calling \f{disjoin}. The syntax is
  1595. \begin{syntax}
  1596. disjoin \{\meta{map},$\cdots$\}
  1597. \end{syntax}
  1598. \paragraph{\it Example:}
  1599. \begin{verbatim}
  1600. set_coframing coframing {x,y};
  1601. disjoin {{x=0},{y=0}};
  1602. {{y=0,x neq 0},{x=0,y neq 0},{y=0,x=0}}
  1603. \end{verbatim}
  1604. \subsection{\tt cleanup}
  1605. \label{cleanup}
  1606. To avoid lengthy recomputations, EDS stores various properties (section
  1607. \ref{Properties}) and also many intermediate results in a hidden list
  1608. attached to each \meta{EDS}. When EDS detects a change in circumstances
  1609. which could make the information innacurate, it is discarded and
  1610. recomputed. Unfortunately, this mechanism is not perfect, and occasionally
  1611. misses something which renders the results incorrect. In such a case, it is
  1612. possible to discard all the properties and hidden information using the
  1613. \f{cleanup} operator. The call
  1614. \begin{syntax}
  1615. cleanup \meta{arg}
  1616. \end{syntax}
  1617. returns a copy of \meta{arg}, which may be a \meta{coframing} or an
  1618. \meta{EDS} which has been stripped of this auxilliary information. Note
  1619. that the original input (with possible innacuracies) is left undisturbed by
  1620. this operation: the result of \f{cleanup} must be used.
  1621. \paragraph{\it Example:}
  1622. \begin{verbatim}
  1623. % An erroneous property assertion
  1624. S := eds({d u - p*d x},{d x,d y},{closed = 1})$
  1625. closure S;
  1626. EDS({d u - p*d x},{d x,d y});
  1627. S := cleanup S$
  1628. properties S;
  1629. {}
  1630. closure S;
  1631. EDS({d u - p*d x, - d p^d x},{d x,d y});
  1632. \end{verbatim}
  1633. \subsection{\tt reorder}
  1634. \label{reorder}
  1635. All operations with a \meta{coframing} or \meta{EDS} temporarily override
  1636. the prevailing kernel order with their own. Thus the ordering of the
  1637. cobasis elements in a \meta{coframing} operator remains fixed, even when a
  1638. REDUCE \f{korder} statement is issued. To enforce conformity to the
  1639. prevailing kernel order, the \f{reorder} operator is available. The call
  1640. \begin{syntax}
  1641. reorder \meta{arg}
  1642. \end{syntax}
  1643. returns a copy of \meta{arg}, which may be a \meta{coframing} or an
  1644. \meta{EDS} which has been reordered. Note that the original input is left
  1645. undisturbed by this operation: the result of \f{reorder} must be used.
  1646. \paragraph{\it Example:}
  1647. \begin{verbatim}
  1648. M := coframing {x,y,z};
  1649. m := coframing({d x,d y,d z},{x,y,z},{},{})
  1650. korder z,y,x;
  1651. reorder m;
  1652. coframing({d z,d y,d x},{z,y,x},{},{})
  1653. \end{verbatim}
  1654. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1655. \section{Experimental facilities}
  1656. \label{Experimental facilities}
  1657. This section describes various operators in EDS which either not
  1658. algorithmically well-founded, or whose implementation is very unstable, or
  1659. which have known bugs.
  1660. \subsection{\tt poincare}
  1661. \label{poincare}
  1662. The \f{poincare} operator implements the homotopy integral found in the
  1663. proof of Poincar{\'e}'s lemma. The expansion point is the origin of the
  1664. coordinates found in the input. The syntax is
  1665. \begin{syntax}
  1666. poincare \meta{p-form}
  1667. \end{syntax}
  1668. If \f{f} is a $p$-form, then \f{poincare f} is a $(p-1)$-form, and
  1669. \f{f - poincare d f} is an exact $p$-form.
  1670. \paragraph{\it Examples:}
  1671. \begin{verbatim}
  1672. poincare(3*d x^d y^d z);
  1673. d x^d y*z - d x^d z*y + d y^d z*x
  1674. d ws;
  1675. 3*d x^d y^d z
  1676. 2*x*d y - poincare d(2*x*d y);
  1677. d x*y + d y*x
  1678. \end{verbatim}
  1679. \subsection{\tt invariants}
  1680. \label{invariants}
  1681. The \f{invariants} operator implements the algorithm implicit in the
  1682. inductive proof of the Frobenius theorem. The syntax is
  1683. \begin{syntax}
  1684. invariants(\meta{system}\optional{,\meta{list of coordinate}})
  1685. \end{syntax}
  1686. where \meta{system} is a set of 1-forms satisfying the Frobenius condition.
  1687. The optional second argument specifies the order in which the coordinates
  1688. are projected away to get a trivially integrable system. The CRACK and
  1689. ODESOLVE packages are used to solve the ODE systems which arise, so the
  1690. limitations of these packages constrain the scope of this operator as well.
  1691. \paragraph{\it Examples:}
  1692. \begin{verbatim}
  1693. invariants {d x*y + d y*x*z + d z*log(y)*x*y};
  1694. z
  1695. { - y *x}
  1696. invariants {d y*z**2 - d y*z + d z*y,d x*(1 - z) + d z*x};
  1697. x y*(z - 1)
  1698. {-------,-----------}
  1699. z - 1 z
  1700. \end{verbatim}
  1701. \subsection{\tt symbol\_relations}
  1702. \label{symbol_relations}
  1703. The \f{symbol\_relations} operator finds the linear relations between the
  1704. entries of the tableau matrix for a quasilinear system. The syntax is
  1705. \begin{syntax}
  1706. symbol\_relations(\meta{EDS},\meta{identifier})
  1707. \end{syntax}
  1708. where \meta{EDS} is a quasilinear Pfaffian system and \meta{identifier} is
  1709. used to create a 2-indexed 1-form which will label the tableau entries.
  1710. \paragraph{\it Example:}
  1711. \begin{verbatim}
  1712. S := pde2eds {df(u,y,y) = df(u,x,x)};
  1713. s := EDS({d u - u *d x - u *d y,
  1714. x y
  1715. d u - u *d x - u *d y,
  1716. x x x x y
  1717. d u - u *d x - u *d y},d x^d y)
  1718. y x y x x
  1719. symbol_relations(S,pi);
  1720. 1 2
  1721. {pi - pi ,
  1722. x y
  1723. 1 2
  1724. pi - pi }
  1725. y x
  1726. \end{verbatim}
  1727. \subsection{\tt symbol\_matrix}
  1728. \label{symbol_matrix}
  1729. The \f{symbol\_matrix} operator returns the symbol matrix for a quasilinear
  1730. system in terms of a given variable. The syntax is
  1731. \begin{syntax}
  1732. symbol\_matrix(\meta{EDS},\meta{identifier})
  1733. \end{syntax}
  1734. where \meta{EDS} is a quasilinear Pfaffian system and \meta{identifier} is
  1735. used to create an indexed 0-form which will parameterise the matrix.
  1736. \paragraph{\it Example:}
  1737. \begin{verbatim}
  1738. % With the same system as for symbol_relations:
  1739. symbol_matrix(S,xi);
  1740. [xi - xi ]
  1741. [ x y]
  1742. [ ]
  1743. [xi - xi ]
  1744. [ y x]
  1745. \end{verbatim}
  1746. \subsection{\tt characteristic\_variety}
  1747. \label{characteristic_variety}
  1748. The \f{characteristic\_variety} operator returns the equations specifying
  1749. the characteristic variety for a quasilinear
  1750. system in terms of a given variable. The syntax is
  1751. \begin{syntax}
  1752. characteristic\_variety(\meta{EDS},\meta{identifier})
  1753. \end{syntax}
  1754. where \meta{EDS} is a quasilinear Pfaffian system and \meta{identifier} is
  1755. used to create an indexed 0-form variable. The result is a list of two
  1756. lists: the first being the variety equations and the second the variables
  1757. involved.
  1758. \paragraph{\it Example:}
  1759. \begin{verbatim}
  1760. % With the same system as for symbol_relations:
  1761. characteristic_variety(S,xi);
  1762. 2 2
  1763. {{(xi ) - (xi ) },
  1764. x y
  1765. {xi ,xi }}
  1766. x y
  1767. \end{verbatim}
  1768. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1769. % \section{Examples}
  1770. % \label{Examples}
  1771. % This section contains some longer examples showing complete calculations
  1772. % using the facilities of EDS.
  1773. % \subsection{Twisting type-N solutions to Einstein's equations}
  1774. % \label{Twisting type-N solutions to Einstein's equations}
  1775. % \subsection{Isometric immersions}
  1776. % \label{Isometric immersions}
  1777. % \subsection{Riemannian submersions}
  1778. % \label{Riemannian submersions}
  1779. % \subsection{The ``Janet'' problem}
  1780. % \label{The ``Janet'' problem}\label{janet}
  1781. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1782. %\newpage
  1783. \appendix
  1784. \section{Command tables}\label{tables}
  1785. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1786. % NOTE FOR HTML CONVERTERS %
  1787. % %
  1788. % The tables in this appendix use special %
  1789. % macros for fonts which will probably confuse %
  1790. % an automatic converter. The best idea would %
  1791. % be to drop the appendix from the HTML version. %
  1792. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1793. % Syntax elements:
  1794. % "..." for literal, <...> for type
  1795. \catcode`\"=\active \def"{\bgroup\catcode`\_=\active\literal}
  1796. \def\literal#1"{\mbox{\tt#1}\egroup}
  1797. \catcode`\<=\active \def<#1>{\mbox{$\langle$\it#1\/$\rangle$}}
  1798. % Command Table environment
  1799. \newsavebox{\commandtablecaption}
  1800. \newenvironment{commandtable}[2]
  1801. {%\savebox\commandtablecaption{#1} % save caption for the end
  1802. \def\mkcaption{\caption{#1}\label{#2}}
  1803. \def\header##1{$\vcenter to 2\baselineskip{\vfill\bf##1\vfill}$}
  1804. \table[htbp]\small\tabular{|p{.4\hsize}|p{.5\hsize}|}\hline}
  1805. {\endtabular%\caption{\usebox\commandtablecaption}
  1806. \mkcaption\endtable}
  1807. \def\nl{\par} % for use within columns
  1808. % Text
  1809. The tables in this appendix summarise the commands available in EDS.
  1810. More detailed descriptions of the syntax and function of each command
  1811. are to be found in the earlier sections. In each case, examples of
  1812. the command are given, whereby the argument variables have the following
  1813. types (see section \ref{EDS data structures and concepts}):
  1814. \bigskip
  1815. \begin{tabular}{ll}
  1816. $E$, $E'$ &<EDS>\\
  1817. $S$ &<system>\\
  1818. $M$, $N$ &<coframing>, or a <system> specifying a <coframing>\\
  1819. $r$ &<integer>\\
  1820. $\Omega$ &<p-form>\\
  1821. $f$ &<map>\\
  1822. $rsx$ &<list of inequalities>\\
  1823. $cob$ &<list of 1-form variables>\\
  1824. $crd$, $dep$, $ind$
  1825. &<list of 0-form variables>\\
  1826. $drv$ &<list of rules for exterior derivatives>\\
  1827. $pde$ &<list of expressions or equations>\\
  1828. $X$ &<transform>\\
  1829. $T$ &<tableau>\\
  1830. $P$ &<integral element>\\
  1831. \end{tabular}
  1832. \begin{commandtable}{Commands for constructing EDS objects}{constructors}
  1833. \header{Command}
  1834. &\header{Function}\\\hline
  1835. "coframing($cob$,$crd$,$rsx$,$drv$)"
  1836. &constructs a <coframing> with the given cobasis $cob$, coordinates $crd$,
  1837. restrictions $rsx$ and structure equations $drv$: $crd$, $rsx$ and $drv$
  1838. are optional\\\hline
  1839. "coframing($S$)"
  1840. &constructs a <coframing> capable of supporting the given
  1841. <system>\\\hline
  1842. "eds($S$,$\Omega$,$M$)"
  1843. &constructs a simple <EDS> object with given system and independence
  1844. condition: if $M$ is not supplied, it is deduced from the rest\\\hline
  1845. "contact($r$,$M$,$N$)"
  1846. &constructs the <EDS> for the contact system of the jet bundle
  1847. $J^r(M,N)$\\\hline
  1848. "pde2eds($pde$,$dep$,$ind$)"
  1849. &converts a PDE system to an EDS: dependent and independent
  1850. variables are deduced if they are not specified (variable dependencies
  1851. are removed)\\\hline
  1852. "set_coframing($M$)"\nl
  1853. "set_coframing($E$)"
  1854. &sets background coframing and returns previous one\\\hline
  1855. "set_coframing()"
  1856. &clears background coframing and returns previous one\\\hline
  1857. \end{commandtable}
  1858. \begin{commandtable}{Commands for inspecting EDS objects}{selectors}
  1859. \header{Command}
  1860. &\header{Function}\\\hline
  1861. "coframing($E$)"
  1862. &extracts the underlying <coframing>\\\hline
  1863. "coframing()"
  1864. &returns the current background coframing\\\hline
  1865. "cobasis($M$)"\nl "cobasis($E$)"
  1866. &extracts the underlying cobasis\\\hline
  1867. "coordinates($M$)"\nl "coordinates($E$)"
  1868. &extracts the coordinates\\\hline
  1869. "structure_equations($M$)"\nl "structure_equations($E$)"
  1870. &extracts the rules for exterior derivatives for cobasis and
  1871. coordinates\\\hline
  1872. "restrictions($M$)"\nl "restrictions($E$)"
  1873. &extracts the inequalities describing the restrictions
  1874. in the <coframing>\\\hline
  1875. "system($E$)"
  1876. &extracts the <system> part of $E$\\\hline
  1877. "independence($E$)"
  1878. &extracts the independence condition from $E$ as a Pfaffian
  1879. <system>\\\hline
  1880. "properties($E$)"
  1881. &returns the currently known properties of the <EDS> $E$ as a list of
  1882. equations <keyword>$ = $<value>\\\hline
  1883. "one_forms($E$)"\nl "one_forms($S$)"
  1884. &selects the 1-forms from a system\\\hline
  1885. "zero_forms($E$)"\nl "zero_forms($S$)"
  1886. &selects the 0-forms from a system\\\hline
  1887. \end{commandtable}
  1888. \begin{commandtable}{Commands for manipulating EDS objects}{manipulators}
  1889. \header{Command}
  1890. &\header{Function}\\\hline
  1891. "augment($E$,$S$)"
  1892. &appends the extra forms in $S$ to the system in $E$\\\hline
  1893. "$M$ cross $N$"\nl "$E$ cross $N$"
  1894. &forms the direct product of two coframings: an <EDS> $E$ is lifted
  1895. to the extended space\\\hline
  1896. "pullback($E$,$f$)"\nl "pullback($S$,$f$)"\nl "pullback($\Omega$,$f$)"
  1897. &pulls back the first argument using the <map> $f$\\\hline
  1898. "pullback($M$,$f$)"
  1899. &returns a <coframing> $N$ suitable as the source for $f:N\to M$\\\hline
  1900. "restrict($E$,$f$)"\nl "restrict($S$,$f$)"\nl "restrict($\Omega$,$f$)"
  1901. &restricts the first argument to the points specified by the
  1902. <map> $f$\\\hline
  1903. "restrict($M$,$f$)"
  1904. &adds the restrictions in $f$ to $M$\\\hline
  1905. "transform($M$,$X$)"\nl "transform($E$,$X$)"\nl
  1906. "transform($S$,$X$)"\nl "transform($\Omega$,$X$)"
  1907. &applies the change of cobasis $X$ to the first argument: for a <coframing>
  1908. $M$ or an <EDS> $E$, $X$ may be specified in either the forward or
  1909. reverse direction\\\hline
  1910. "lift($E$)"
  1911. &eliminates any 0-forms in $E$ by solving and pulling back\\\hline
  1912. \end{commandtable}
  1913. \begin{commandtable}{Commands for analysing exterior systems}{analysers}
  1914. \header{Command}
  1915. &\header{Function}\\\hline
  1916. "cartan_system($E$)"\nl "cartan_system($S$)"\nl "cartan_system($\Omega$)"
  1917. &calculates the Cartan system (associated Pfaff system, retracting
  1918. space): no differentiations are performed\\\hline
  1919. "cauchy_system($E$)"\nl "cauchy_system($S$)"\nl "cauchy_system($\Omega$)"
  1920. &calculates the Cauchy system: the Cartan system of the closure under
  1921. exterior differentiation\\\hline
  1922. "characters($E$)" \nl "characters($T$)"
  1923. &calculates the (reduced) Cartan characters $\{s_1,...,s_n\}$
  1924. ($E$ quasilinear)\\\hline
  1925. "characters($E$,$P$)"
  1926. &Cartan characters for a non-linear $E$ at integral element $P$\\\hline
  1927. "closure($E$)"
  1928. &calculates the closure of $E$ under exterior
  1929. differentiation\\\hline
  1930. "derived_system($E$)"\nl "derived_system($S$)"
  1931. &calculates the first derived system of the Pfaffian system $E$ or
  1932. $S$\\\hline
  1933. "dim_grassmann_variety($E$)"\nl "dim_grassmann_variety($E$,$P$)"
  1934. &dimension of the Grassman bundle variety of integral elements: for
  1935. non-linear $E$, the base element $P$ must be given\\\hline
  1936. "dim($M$)"\nl "dim($E$)"
  1937. &returns the manifold dimension\\\hline
  1938. "involution($E$)"
  1939. &repeatedly prolongs $E$ to involution (or inconsistency)\\\hline
  1940. "linearise($E$,$P$)"
  1941. &linearise the (non-linear) EDS $E$ with respect to the integral element
  1942. $P$\\\hline
  1943. "integral_element($E$)"
  1944. &find a random <integral element> of $E$\\\hline
  1945. "prolong($E$)"
  1946. &prolongs $E$, and projects back down to a subvariety of the
  1947. original manifold if integrability conditions arise\\\hline
  1948. "tableau($E$)"
  1949. &calculates the <tableau> of the quasilinear Pfaffian <EDS>
  1950. $E$\\\hline
  1951. "torsion($E$)"
  1952. &returns a <system> of 0-forms specifying the integrability
  1953. conditions for the semilinear or quasilinear Pfaffian <EDS>
  1954. $E$\\\hline
  1955. "grassmann_variety($E$)"
  1956. &returns the contact <EDS> for the Grassmann bundle of $n$-planes
  1957. over the manifold of $E$, augmented by the 0-forms specifying the
  1958. variety of integral elements of $E$\\\hline
  1959. \end{commandtable}
  1960. \begin{commandtable}{Commands for testing exterior systems}{testers}
  1961. \header{Command}
  1962. &\header{Function}\\\hline
  1963. "closed($E$)"\nl "closed($S$)"\nl "closed($\Omega$)"
  1964. &checks for closure under exterior differ\-entiation\\\hline
  1965. "involutive($E$)"
  1966. &applies Cartan's test for involution\\\hline
  1967. "pfaffian($E$)"
  1968. &checks if $E$ is generated by 1-forms and their exterior
  1969. derivatives\\\hline
  1970. "quasilinear($E$)"
  1971. &tests if the {\it closure} of $E$ can be generated by forms at
  1972. most linear in the complement of the independence condition\\\hline
  1973. "semilinear($E$)"
  1974. &tests if the {\it closure} of $E$ is quasilinear and, in addition, the
  1975. coefficients of the linear terms contain only independent variables or
  1976. constants\\\hline
  1977. "$E$ equiv $E'$"
  1978. &checks whether $E$ and $E'$ are algebraically equivalent\\\hline
  1979. \end{commandtable}
  1980. \begin{commandtable}{Switches (all "off" by default)}{switches}
  1981. \header{Switch}
  1982. &\header{Function}\\\hline
  1983. "edsverbose"
  1984. &if "on", displays additional information as calculations
  1985. progress\\\hline
  1986. "edsdebug"
  1987. &if "on", produces copious quantities of internal information,
  1988. in addition to that produced by "edsverbose"\\\hline
  1989. "edssloppy"
  1990. &if "on", allows EDS to divide by expressions not known to be non-zero
  1991. and treats quasilinear systems as semilinear\\\hline
  1992. "edsdisjoint"
  1993. &if "on", forces varieties to be decomposed into disjoint
  1994. components\\\hline
  1995. "ranpos"\nl "genpos"
  1996. &if "on", uses a random or generic flag of integral elements when
  1997. calculating Cartan characters: otherwise the independence condition as
  1998. presented guides the choice of flag\\\hline
  1999. \end{commandtable}
  2000. \begin{commandtable}{Auxilliary functions}{auxilliaries}
  2001. \header{Command}
  2002. &\header{Function}\\\hline
  2003. \nl "coordinates($S$)"
  2004. &scans the expressions in $S$ for coordinates\\\hline
  2005. "invert($X$)"
  2006. &returns the inverse <transform> $X^{-1}$\\\hline
  2007. "structure_equations($X$)" \nl
  2008. "structure_equations($X$,$X^{-1}$)"
  2009. &returns exterior derivatives of $\mathop{\hbox{lhs}}(X)$\\\hline
  2010. "linear_divisors($\Omega$)"
  2011. &calculates a basis for the space of 1-form factors of
  2012. $\Omega$\\\hline
  2013. "exfactors($\Omega$)"
  2014. &as for "linear_divisors", but with the additional (non-linear) factor\\\hline
  2015. "index_expand($any$)"
  2016. &returns a list of copies of its argument, with free EXCALC indices
  2017. replaced by successive values from the relevant index range\\\hline
  2018. "pde2jet($pde$,$dep$,$ind$)"
  2019. &converts a PDE system into jet bundle notation, replacing derivatives by
  2020. jet bundle coordinates (variable dependencies are not affected)\\\hline
  2021. "mkdepend($list$)"
  2022. &restores variable dependencies destroyed by "pde2eds"\\\hline
  2023. "disjoin($\{f,g,...\}$)"
  2024. &decomposes the variety specified by the given <map> variables into
  2025. a disjoint union\\\hline
  2026. "cleanup($E$)"\nl "cleanup($M$)"
  2027. &returns a fresh copy of $E$ or $M$ with all properties and stored
  2028. results removed\\\hline
  2029. "reorder($E$)"\nl "reorder($M$)"
  2030. &returns a fresh copy of $E$ or $M$, conforming to the prevailing
  2031. REDUCE kernel order\\\hline
  2032. \end{commandtable}
  2033. \begin{commandtable}{Experimental functions (unstable)}{experiments}
  2034. \header{Command}
  2035. &\header{Function}\\\hline
  2036. "poincare($\Omega$)"
  2037. &calculates the homotopy integral from the proof of Poincar{\'e}'s lemma:
  2038. if $\Omega$ is exact, then the result is a form whose exterior derivative
  2039. gives back $\Omega$\\\hline
  2040. "invariants($E$,$crd$)"\nl "invariants($S$,$crd$)"
  2041. &calculates the invariants (first integrals) of a completely
  2042. integrable Pfaffian system using the inductive proof of the Frobenius
  2043. theorem: the optional second argument specifies the
  2044. order in which the coordinates are to be projected away\\\hline
  2045. "symbol_relations($E$,$\pi$)"
  2046. &returns relations between the entries of the tableau
  2047. matrix, represented by 2-indexed <1-form> variables $\pi^a{}_i$\\\hline
  2048. "symbol_matrix($E$,$\xi$)"
  2049. &returns the symbol matrix for a quasilinear <EDS> $E$ as a function
  2050. of <0-form> variables $\xi_i$\\\hline
  2051. "characteristic_variety($E$,$\xi$)"
  2052. &returns equations describing the characteristic variety of
  2053. $E$ in terms of <0-form> variables $\xi_i$\\\hline
  2054. \end{commandtable}
  2055. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2056. \newpage
  2057. \begin{thebibliography}{00}
  2058. \bibitem{Shapeev}
  2059. E A Arais, V P Shapeev and N N Yanenko,
  2060. Computer realization of Cartan's exterior calculus,
  2061. {\em Soviet Math Dokl} {\bf 15} (1974) 203--205
  2062. \bibitem{BCGGG}
  2063. R L Byrant, S S Chern, R B Gardner, H L Goldschmidt and
  2064. P A Griffiths, {\em
  2065. Exterior Differential Systems}
  2066. (Springer Verlag, New York, 1991)
  2067. \bibitem{Ganzha}
  2068. V G Ganzha, S V Meleshko, F A Murzin, V P Shapeev and
  2069. N N Yanenko,
  2070. Computer realization of an algorithm for investigating the
  2071. compatibility of systems of partial differential equations,
  2072. {\em Soviet Math Dokl} {\bf 24} (1981) 638--640
  2073. \bibitem{HartleyTucker}
  2074. D H Hartley and R W Tucker,
  2075. A constructive implementation of the Cartan-K{\"a}hler theory of
  2076. exterior differential systems,
  2077. {\em J Symb Comp} {\bf12} (1991) 655
  2078. \bibitem{XIDEAL}
  2079. D Hartley and P A Tuckey, {\em
  2080. XIDEAL, Gr{\"o}bner Bases for Exterior Algebra}
  2081. (REDUCE library package)
  2082. \bibitem{MansfieldFackerell}
  2083. E Mansfield and E D Fackerell,
  2084. Differential Gr{\"o}bner bases and involutivity of systems of
  2085. non-linear partial differential equations,
  2086. {\em submitted to Eur J Appl Math} 1993
  2087. \bibitem{Reid}
  2088. G J Reid,
  2089. Algorithms for reducing a system of partial differential equations
  2090. to standard form, determining the dimension of its solutions space
  2091. and calculating its Taylor series solution,
  2092. {\em Eur J Appl Math} {\bf 2} (1991) 293--318
  2093. \bibitem{EXCALC}
  2094. E Schr{\"u}fer, {\em
  2095. EXCALC, a system for doing calculations in the calculus of modern
  2096. differential geometry, User's manual}
  2097. (Rand Corporation, Santa Monica, 1986)
  2098. \bibitem{Seiler}
  2099. W M Seiler, {\em
  2100. Applying AXIOM to partial differential equations}
  2101. (Internal Report 95-17, Universit{\"a}t Karlsruhe, Fakult{\"a}t f{\"u}r
  2102. Informatik, 1995)
  2103. \bibitem{Spivak}
  2104. M Spivak, {\em
  2105. A comprehensive introduction to differential geometry}
  2106. (Publish or Perish, Berkeley, 1979)
  2107. \bibitem{Wahlquist}
  2108. HD Wahlquist,
  2109. Monte Carlo calculation of Cartan characters: using the
  2110. maximal-slicing, Ricci-flat ideal as an example,
  2111. {\em Proc Aspects of General Relativity and Mathematical Physics,
  2112. eds N Bret{\'o}n, R Capovilla and
  2113. T Matos}, (1993) 168--174
  2114. \end{thebibliography}
  2115. \end{document}
  2116. Local Variables:
  2117. outline-regexp: "\\\\\\(sub\\)*sec"
  2118. End: