Joining Parentheses

TODO: Maybe just draw boxes?

Parentheses are used to ‘group together’ parts of an expression; for example 8 + ((3 + 2) × (1 + 4)). When many parentheses are nested, a common problem is having to physically count them to figure out which ones match up; or, in other words, to determine the extent of what’s in them.

Prior to the use of parentheses, it was common to use an over-bar (called a ‘vinculum’) to express grouping. This would render the above like: $8 + \overbar{\overbar{3 + 2} \times \overbar{1 + 4}}$

The vinculum makes its extent more clear, since it is physically present above its entire contents. However, I still appreciate the way parentheses ‘split up’ their interior from their exterior: we can combine both by using the vinculum to ‘join the parentheses’, like so: $\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{3 + 2}}}$}\bigr)} \times \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{1 + 4}}}$}\bigr)}$

Note that this may cause clutter when using overbars for negatives, in which case it may be preferable to join parentheses below their enclosed expression: $\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{3 + 2}}}$}\bigr)} \times \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{1 + 4}}}$}\bigr)}$

When there’s no overbar ambiguity, and we have heavily-nested parentheses, I find it helpful to alternate between over- and under-bars at each level of nesting. This original example above would thus become:

$$ 8 + \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{3 + 2}}}$}\bigr)} \times \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{1 + 4}}}$}\bigr)}}}}$}\bigr)} $$

I use this extensively when working in combinatory logic (which makes extensive use of nested tree structures!). For example, here’s function composition:

$$ \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{C f}}}$}\bigr)} g}}}$}\bigr)} x}}}$}\bigr)} &= \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{S \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{K S}}}$}\bigr)}}}}$}\bigr)} K}}}$}\bigr)} f}}}$}\bigr)} g}}}$}\bigr)} x}}}$}\bigr)} \\ &= \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{K S}}}$}\bigr)} f}}}$}\bigr)} \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{K f}}}$}\bigr)}}}}$}\bigr)} g}}}$}\bigr)} x}}}$}\bigr)} \\ &= \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{S \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{K f}}}$}\bigr)}}}}$}\bigr)} g}}}$}\bigr)} x}}}$}\bigr)} \\ &= \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{\ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{K f}}}$}\bigr)} x}}}$}\bigr)} \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{g x}}}$}\bigr)}}}}$}\bigr)} \\ &= \ensuremath{\bigl(\text{$\overline{\mathstrut\smash{\text{f \ensuremath{\bigl(\text{$\underline{\mathstrut\smash{\text{g x}}}$}\bigr)}}}}$}\bigr)} \\ $$