Network Working Group                                           D. Arnon
Request for Comments: 1019                                    Xerox PARC
                                                         September 1987



 Report of the Workshop on Environments for Computational Mathematics
                               July 30, 1987
                         ACM SIGGRAPH Conference
             Anaheim Convention Center, Anaheim, California


Status of This Memo

  This memo is a report on the discussion of the representation of
  equations in a workshop at the ACM SIGGRAPH Conference held in
  Anaheim, California on 30 July 1987.  Distribution of this memo is
  unlimited.

Introduction

  Since the 1950's, many researchers have worked to realize the vision
  of natural and powerful computer systems for interactive mathematical
  work.  Nowadays this vision can be expressed as the goal of an
  integrated system for symbolic, numerical, graphical, and
  documentational mathematical work.  Recently the development of
  personal computers (with high resolution screens, window systems, and
  mice), high-speed networks, electronic mail, and electronic
  publishing, have created a technological base that is more than
  adequate for the realization of such systems.  However, the growth of
  separate Mathematical Typesetting, Multimedia Electronic Mail,
  Numerical Computation, and Computer Algebra communities, each with
  its own conventions, threatens to prevent these systems from being
  built.

  To be specific, little thought has been given to unifying the
  different expression representations currently used in the different
  communities.  This must take place if there is to be interchange of
  mathematical expressions among Document, Display, and Computation
  systems. Also, tools that are wanted in several communities (e.g.,
  WYSIWYG mathematical expression editors), are being built
  independently by each, with little awareness of the duplication of
  effort that thereby occurs.  Worst of all, the ample opportunities
  for cross-fertilization among the different communities are not being
  exploited.  For example, some Computer Algebra systems explicitly
  associate a type with a mathematical expression (e.g.,   3 x 3 matrix
  of polynomials with complex number coefficients), which could enable
  automated math proofreaders, analogous to spelling checkers.

  The goal of the Workshop on Environments for Computational
  Mathematics was to open a dialogue among representatives of the



Arnon                                                           [Page 1]

RFC 1019                                                  September 1987


  Computer Algebra, Numerical Computation, Multimedia Electronic Mail,
  and Mathematical Typesetting communities.  In July 1986, during the
  Computers and Mathematics Conference at Stanford University, a subset
  of this year's participants met at Xerox PARC to discuss User
  Interfaces for Computer Algebra Systems.  This group agreed to hold
  future meetings, of which the present Workshop is the first.  Alan
  Katz's recent essay, "Issues in Defining an Equations Representation
  Standard", RFC-1003, DDN Network Information Center, March 1987
  (reprinted in the ACM SIGSAM Bulletin May 1987, pp. 19-24),
  influenced the discussion at the Workshop, especially since it
  discusses the interchange of mathematical expressions.

  This report does not aim to be a transcript of the Workshop, but
  rather tries to extract the major points upon which (in the Editor's
  view) rough consensus was reached.  It is the Editor's view that the
  Workshop discussion can be summarized in the form of a basic
  architecture for "Standard Mathematical Systems", presented in
  Section II below.  Meeting participants seemed to agree that: (1)
  existing mathematical systems should be augmented or modified to
  conform to this architecture, and (2) future systems should be built
  in accordance with it.

  The Talks and Panel-Audience discussions at the Workshop were
  videotaped.  Currently, these tapes are being edited for submission
  to the SIGGRAPH Video Review, to form a "Video Proceedings".  If
  accepted by SIGGRAPH, the Video Proceedings will be publicly
  available for a nominal distribution charge.

  One aspect of the mathematical systems vision that we explicitly left
  out of this Workshop is the question of "intelligence" in
  mathematical systems.  This has been a powerful motivation to systems
  builders since the early days.  Despite its importance, we do not
  expect intelligent behavior in mathematical systems to be realized in
  the short term, and so we leave it aside.  Computer Assisted
  Instruction for mathematics also lies beyond the scope of the
  Workshop.  And although it might have been appropriate to invite
  representatives of the Spreadsheets and Graphics communities, we did
  not.  Many of those who were at the Workshop have given considerable
  thought to Spreadsheets and Graphics in mathematical systems.

  Financial support from the Xerox Corporation for AudioVisual
  equipment rental at SIGGRAPH is gratefully acknowledged.  Thanks are
  due to Kevin McIsaac for serving as chief cameraman, providing
  critical comments on this report, and contributing in diverse other
  ways to the Workshop.  Thanks also to Richard Fateman, Michael
  Spivak, and Neil Soiffer for critical comments on this report.
  Subhana Menis and Erin Foley have helped with logistics and
  documentation at several points along the way.

  Information on the Video Proceedings, and any other aspect of the
  Workshop can be obtained from the author of this report.



Arnon                                                           [Page 2]

RFC 1019                                                  September 1987


I. Particulars of the meeting

  The Workshop had four parts: (1) Talks, (2) Panel Discussion, (3)
  Panel and Audience discussion, (4) and Live demos.  Only a few of the
  systems presented in the talks were demonstrated live. However, many
  of the talks contained videotapes of the systems being discussed.

  The talks, each 15 minutes in length, were:

  1. "The MathCad System: a Graphical Interface for Computer
     Mathematics", Richard Smaby, MathSOFT Inc.

  2. "MATLAB - an Interactive Matrix Laboratory", Cleve Moler,
     MathWorks Inc.

  3. "Milo: A Macintosh System for Students", Ron Avitzur, Free Lance
     Developer, Palo Alto, CA.

  4. "MathScribe: A User Interface for Computer Algebra systems", Neil
     Soiffer, Tektronix Labs.

  5. "INFOR: an Interactive WYSIWYG System for Technical Text",
     William Schelter, University of Texas.

  6. "Iris User Interface for Computer Algebra Systems", Benton Leong,
     University of Waterloo.

  7. "CaminoReal: A Direct Manipulation Style User Interface for
     Mathematical Software", Dennis Arnon, Xerox PARC.

  8. "Domain-Driven Expression Display in Scratchpad II", Stephen
     Watt, IBM Yorktown Heights.

  9. "Internal and External Representations of Valid Mathematical
     Reasoning", Tryg Ager, Stanford University.

  10. "Presentation and Interchange of Mathematical Expressions in the
      Andrew System", Maria Wadlow, Carnegie-Mellon University.

  The Panel discussion lasted 45 minutes.  The panelists were:

     Richard Fateman, University of California at Berkeley
     Richard Jenks, IBM Yorktown Heights
     Michael Spivak, Personal TeX
     Ronald Whitney, American Mathematical Society









Arnon                                                           [Page 3]

RFC 1019                                                  September 1987


  The panelists were asked to consider the following issues in planning
  their presentations:

  1. Should we try to build integrated documentation/computation
     systems?

  2. WYSIWYG editing of mathematical expressions.

  3. Interchange representation of mathematics.

  4. User interface design for integrated documentation/computation
     systems.

  5. Coping with large mathematical expressions.

  A Panel-Audience discussion lasted another 45 minutes, and the Demos
  lasted about one hour.

  Other Workshop participants, besides those named above, included:

     S. Kamal Abdali, Tektronix Labs
     George Allen, Design Science
     Alan Katz, Information Sciences Institute
     J. Robert Cooke, Cornell University and Cooke Publications
     Larry Lesser, Inference Corporation
     Tom Libert, University of Michigan
     Kevin McIsaac, Xerox PARC and University of Western Australia
     Elizabeth Ralston, Inference Corporation

II. Standard Mathematical Systems - a Proposed Architecture

  We postulate that there is an "Abstract Syntax" for any mathematical
  expression.  A piece of Abstract Syntax consists of an Operator and
  an (ordered) list of Arguments, where each Argument is (recursively)
  a piece of Abstract Syntax.  Functional Notation, Lisp SExpressions,
  Directed Acyclic Graphs, and N-ary Trees are equivalent
  representations of Abstract Syntax, in the sense of being equally
  expressive, although one or another might be considered preferable
  from the standpoint of computation and algorithms.  For example, the
  functional expression "Plus[Times[a,b],c]" represents the Abstract
  Syntax of an expression that would commonly be written "a*b+c".

  A "Standard Mathematical Component" (abbreviated SMC) is a collection
  of software and hardware modules, with a single function, which if it
  reads mathematical expressions, reads them as Abstract Syntax, and if
  it writes mathematical expressions, writes them as Abstract Syntax.
  A "Standard Mathematical System" (abbreviated SMS) is a collection of
  SMC's which are used together, and which communicate with each other
  in Abstract Syntax.

  We identify at least four possible types of components in an SMS.



Arnon                                                           [Page 4]

RFC 1019                                                  September 1987


  Any particular SMS may have zero, one, or several instances of each
  component type.  The connection between two particular components of
  an SMS, of whatever type, is via Abstract Syntax passed over a "wire"
  joining them.

  1) EDs - Math Editors

  These edit Abstract Syntax to Abstract Syntax.  A particular system
  may have editors that work on some other representations of
  mathematics (e.g., bitmaps, or particular formatting languages),
  however they do not qualify as an ED components of a SMS.  An ED may
  be WYSIWYG or language-oriented.

  2) DISPs - Math Displayers

  These are suites of software packages, device drivers, and hardware
  devices that take in an expr in Abstract Syntax and render it. For
  example, (1) the combination of an Abstract Syntax->TeX translator,
  TeX itself, and a printer, or (2) a plotting package plus a plotting
  device.  A DISP component may or may not support "pointing" (i.e.,
  selection), within an expression it has displayed, fix a printer
  probably doesn't, but terminal screen may. If pointing is supported,
  then a DISP component must be able to pass back the selected
  subexpression(s) in Abstract Syntax. We are not attempting here to
  foresee, or limit, the selection mechanisms that different DISPs may
  offer, but only to require that a DISP be able to communicate its
  selections in Abstract Syntax.

  3) COMPs - Computation systems

  Examples are Numerical Libraries and Computer Algebra systems. There
  are questions as to the state of a COMP component at the time it
  receives an expression. For example, what global flags are set, or
  what previous expressions have been computed that the current
  expression may refer to.  However, we don't delve into these hard
  issues at this time.

  4) DOCs - Document systems

  These are what would typically called "text editors", "document
  editors", or "electronic mail systems".  We are interested in their
  handling of math expressions.  In reality, they manage other document
  constituents as well (e.g., text and graphics).  The design of the
  user interface for the interaction of math, text, and graphics is a
  nontrivial problem, and will doubtless be the subject of further
  research.

  A typical SMS will have an ED and a DISP that are much more closely
  coupled than is suggested here.  For example, the ED's internal
  representation of Abstract Syntax, and the DISP's internal
  representation (e.g., a tree of boxes), may have pointers back and



Arnon                                                           [Page 5]

RFC 1019                                                  September 1987


  forth, or perhaps may even share a common data structure.  This is
  acceptable, but it should always be possible to access the two
  components in the canonical, decoupled way.  For example, the ED
  should be able to receive a standard Abstract Syntax representation
  for an expression, plus an editing command in Abstract Syntax (e.g.,
  Edit[expr, cmd]), and return an Abstract Syntax representation for
  the result.  Similarly, the DISP should be able to receive Abstract
  Syntax over the wire and display it, and if it supports pointing, be
  able to return selected subexpressions in Abstract Syntax.

  The boundaries between the component types are not hard and fast. For
  example, an ED might support simple computations (e.g.,
  simplification, rearrangement of subexpressions, arithmetic), or a
  DOC might contain a facility for displaying mathematical expressions.
  The key thing for a given module to qualify as an SMC is its ability
  to read and write Abstract Syntax.

III. Recommendations and Qualifications

   1. It is our hypothesis that it will be feasible to encode a rich
      variety of other languages in Abstract Syntax, for example,
      programming constructs.  Thus we intend it to be possible to
      pass such things as Lisp formatting programs, plot programs,
      TeX macros, etc. over the wire in Abstract Syntax.  We also
      hypothesize that it will be possible to encode all present and
      future mathematical notations in Abstract Syntax (e.g.,
      commutative diagrams in two or three dimensions).  For
      example, the 3 x 3 identify matrix might be encoded as:

      Matrix[ [1,0,0], [0,1,0], [0,0,1] ]

      while the Abstract Syntax expression:

      Matrix[5, 5, DiagonalRow[1, ThreeDots[], 1],
      BelowDiagonalTriangle[FlexZero[]],
      AboveDiagonalTriangle[FlexZero[]]]

      might encode a 5 x 5 matrix which is to be displayed with a
      "1" in the (1,1) position, a "1" in the (5,5) position, three
      dots between them on the diagonal, a big fat zero in the lower
      triangle indicating the presence of zeros there, and a big fat
      zero in the upper triangle indicating zeros.

   2. We assume the use of the ASCII character set for Abstract Syntax
      expressions.  Greek letters, for example, would need to be
      encoded with expressions like Greek[alpha], or Alpha[].
      Similarly, font encoding is achieved by the use of Abstract
      Syntax such as the following for 12pt bold Times Roman:
      Font[timesRoman, 12, bold, <expression>] Two SMCs are free to
      communicate in a larger character set, or pass font
      specifications in other ways, but they should always be able to



Arnon                                                           [Page 6]

RFC 1019                                                  September 1987


      express themselves in standard Abstract Syntax.

   3. COMPs (e.g., Computer Algebra systems), should be able to
      communicate in Abstract Syntax.  Existing systems should
      have translators to/from Abstract Syntax added to them.  In
      addition, if we can establish a collection of standard names and
      argument lists for common functions, and get all COMP's to read
      and write them, then any Computer Algebra system will be able to
      talk to any other.  Some examples of possible standard names and
      argument lists for common functions:

  Plus[a,b,...]
  Minus[a]
  Minus[a,b]
  Times[a,b,...]
  Divide[<numerator>, <denominator>]
  Power[<base>, <exponent>]
  PartialDerivative[<expr>, <var>]
  Integral[<expr>, <var>, <lowerLimit>,<upperLimit>] (limits optional)
  Summation[<<summand>, <lowerLimit>, <upperLimit>] (limits optional)

     A particular algebra system may read and write nonstandard
     Abstract Syntax.  For example:

  Polynomial[Variables[x, y, z], List[Term[coeff, xExp, yExp, zExp],
  ...

     but, it should be able to translate this to an equivalent standard
     representation. For example:

  Plus[Times[coeff, Power[x, xExp], ...

   4. A DOC must store the Abstract Syntax representations of the
      expressions it contains.  Thus it's easy for it to pass its
      expressions to EDs, COMPs, or DISPs.  A DOC is free to store
      additional expression representations. For example, a tree of
      Boxes, a bitmap, or a TeX description.

   5. DISPs will typically have local databases of formatting
      information.  To actually render the Abstract Syntax, the DISP
      checks for display rules in its database.  If none are found,
      it paints the Abstract Syntax in some standard way.  Local
      formatting databases can be overridden by formatting rules passed
      over the wire, expressed in Abstract Syntax.  It is formatting
      databases that store knowledge of particular display
      environments (for e.g., "typesetting for Journal X").

      The paradigm we wish to follow is that of the genetic code: A
      mathematical expression is like a particular instance of DNA, and
      upon receiving it a DISP consults the appropriate formatting
      database to see if it understands it.  If not, the DISP just



Arnon                                                           [Page 7]

RFC 1019                                                  September 1987


      "passed it through unchanged".  The expression sent over the wire
      may be accompanied by directives or explanatory information,
      which again may or may not be meaningful to a particular DISP.  In
      reality, formatting databases may need to contain Expert
      System-level sophistication to be able to produce professional
      quality typesetting results, but we believe that useful results
      can be achieved even without such sophistication.

   6. With the use of the SMC's specified above, it becomes easy to use
      any DOC as a logging facility for a session with a COMP.  Therefore,
      improvements in DOCs (e.g., browsers, level structuring, active
      documents, audit trails), will automatically give us better
      logging mechanisms for sessions with algebra systems.

   7. Note that Abstract Syntax is human-readable.  Thus any text
      editor can be used as an ED.  Of course, in a typical SMS, users
      should have no need to look at the Abstract Syntax flowing
      through the internal "wires" if they don't care to.  Many will
      want to interact only with mathematics that has a textbook-like
      appearance, and they should be able to do so.

   8. Alan Katz's RFC (cited above) distinguishes the form (i.e.,
      appearance) of a mathematical expression from its content (i.e.,
      meaning, value).  We do not agree that such a distinction can be
      made.  We claim that Abstract Syntax can convey form, meaning,
      or both, and that its interpretation is strictly in the eye
      of the beholder(s).  Meaning is just a handshake between sender
      and recipient.

   9. Help and status queries, the replies to help and status queries,
      and error messages should be read and written by SMC's in
      Abstract Syntax.

  10. In general, it is permissible for two SMC's to use private
      protocols for communication.  Our example of a tightly coupled ED
      and DISP above is one example.  Two instances of a Macsyma COMP
      would be another; they might agree to pass Macsyma internal
      representations back and forth.  To qualify as SMC's, however,
      they should be able to translate all such exchanges into
      equivalent exchanges in Abstract Syntax.














Arnon                                                           [Page 8]