Notes on notation and thought

(via HN)

A nice collection of quotes on notation as a tool of thought. Mostly not programming related, which actually makes them more interesting, offering a richer diversity of examples. We used to have quite a few discussions of notation in the early days (at least in part because I never accepted the prevailing dogma that syntax is not that interesting or important), which is a good reminder for folks to check the archives.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Tryangular notation for exponentials.

The "Triangle of POWER!" notation is pretty cool, but if you choose to represent this as a relation rather than as a function then all six identities look the same.

In other words
let (^ x y z) be equivalent to x^y=z
each of their six identities would be written identically as (^ x y z) (^ x y z)

log x x^y = y
y root x^y = x
x ^ (log x z) = z
(log x z) root z = x
log (y root z) z = y
(y root z) ^ y = z

Naturally if two of the three parameters in a relation get assigned then the third gets assigned too, using the appropriate method, but the notation doesn't need to worry about method.

I fiddled around with what it is like to do algebra with all mathematical functions represented as relations, and it was both easy and informative. The associative transformation showed up in situations that I had never thought of as manifestations of associativity before.

Binary operator version

$$\newcommand{ur}{\hspace{2pt} \nearrow \hspace{2pt}}
\newcommand{ul}{\hspace{2pt} \nwarrow \hspace{2pt}}
\newcommand{dl}{\hspace{2pt} \swarrow \hspace{2pt}}
\newcommand{ll}{\hspace{2pt}_ \longleftarrow \hspace{2pt}}
\newcommand{dr}{\hspace{2pt} \searrow \hspace{2pt}}
\newcommand{rr}{\hspace{2pt}_ \longrightarrow \hspace{2pt}}
$$

That's interesting, but don't you need to keep track of the logic of the flow of definitions? Which symbols you know and which are being defined?

One thing I'd have liked better than the triangle with a hole is a binary operator based on the triangle. With their triangle in mind (base bottom left, exponent bottom right, and result on top), if you introduce 6 symbols that point from the value you start with (on the left) to the value you want, then you get something less weird looking:

$$ x \ur y = y \ul x = x^y\\
x \dl y = y \ll x = \sqrt[y]{x} \\
x \dr y = y \rr x = \mathtt{log}_x(y) \\
$$

You can just remember the three on the left. You can get the ones in the middle by switching x & y and switching to the other symbol pointing at the same vertex.

Then right inverses are obtained by the same starting point and going back (reversing the arrow):

$$ (x \ur y) \dl y = (x \dr y) \ul y = (x \ll y) \rr y = x \\
(x \ul y) \dr y = (x \dl y) \ur y = (x \rr y) \ll y = x $$

Left inverses are obtained continuing around the triangle from the same starting point (technically, to get the left inverse you have to back up around the triangle, but you write them down going forward left to right):

$$
y \ur (x \dr y) = y \dr (x \ll y) = y \ll (x \ur y) = x \\
y \ul (x \dl y) = y \dl (x \rr y) = y \rr (x \ul y) = x
$$

Testing

Do definitions work in a follow up post?

$$x \ur y$$

Yes, apparently they do. I've defined \ur, \ul, \dr, \dl, \ll and \rr if you want to use them in a latex block.