Previous: View-Model representation Up: Structural overview
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