**Previous:** View-Model representation
**Up:** Structural overview

### Polygon representation

The mathematical representation of an equation is a fairly
straightforward undertaking. It is simply a matter of defining
appropriate specializations of a few base objects.

One problem that becomes apparent when trying to perform substitutions
on the equations is that one might not want to replace all instances
of with . In this case, one needs some mechanism to distinguish
between the various instances of . A further level of
specialization for primary objects is probably needed, and is
depicted by the dashed lines pointing to master * atoms*.

Note, that there is no problem distinguishing various equations
(unless the structures are literally shared) because a new ` +`
operation structure is created when you put the two terms together.

An alternative way to denote the object that one is going to work with is
possibly with a path from some anchor point. This has the advantage of
not requiring extra links, and of allowing any amount of structure
sharing. This aspect of when to copy and when not to copy appears at
first to be a trivial matter, but at a deeper level can be
problematic. The simplest solution suggested above is to always copy,
remembering that any tests for equality should be done with `
equal` rather than ` eq`

*mcr@ccs.carleton.ca*