Identification of the problem in Einstein’s 1905 derivation is best performed using the formal tools and techniques of Computer Science. I have found that this discipline offers a superior method of explaining how functions work and provides a specific notation that makes it easy to view the problem.

Begin by considering the following pseudo-code:

Real x, y, z, t, v; //assume all are assigned values. Real alpha = 1, c = 300,000,000; Real x' = x - v * t; Real Function Tau (Real x', Real y, Real z, Real t) = { alpha * (t - v * x' / (c^2 - v^2)) }

If one thinks in terms of optimization, can Tau be simplified as the following equation?

Eq 1. Tau = alpha * (t - v * x / c^2) / (1 - v^2 / c^2)

No, it cannot. Those with a Computer Science background will notice that x – v * t cannot replace x’ within the Tau function. Since Tau is a function, it requires an invocation for the global x’ variable to replace the local x’ variable. However, if a mistake is made such that Tau is mistreated as an equation and the substitution is performed, then one ends up first with

Eq 2. Tau = alpha * (t- v * (x - v *t) / (c^2 - v^2))

Since it is not obvious that the two **t** variables are different variables, further simplification produces the result given in Eq 1. This is how physicists and mathematicians have performed this optimization for over a century. However, when written in C++ namespace terminology, Eq 2 is more properly written as

Eq 3. ::Tau = ::alpha * (Tau::t- ::v * (::x - ::v *::t)/(::c^2 - ::v^2))

making the overloaded variable problem easy to spot and confirming that Eq 1 is an incorrect simplification. Those using formal Computer Science techniques will be able to determine that Eq 1 is an incorrect result because **t** represents two different variables. Specifically, (::v^2 * **Tau::t**) cannot be cancelled with (::v^2 * **::t**). Those without an understanding of namespaces, function syntax, scoping rules, and overloaded variables, will find it difficult – if not impossible – to identify this as a problem.

Now that you have viewed the derivation in formal terms, please look at the informal techniques Einstein uses in Section 3 of his 1905 paper. You will notice that Einstein does not write Tau as a formal function, but instead presents it as three separate statements that have to be pieced together:

- The statement that “Tau is a linear function”
- Tau is invoked 3 times allowing identification of key local variables, x’ and t
- Einstein writes the Tau function as
Tau = alpha * (t - v * x' / (c^2 - v^2))

allowing it to be easily confused as an equation since there is no explicit indication of local variables.

Use of formal notation also enables us to see that Einstein overloads the **t** variable three times – with three different meanings; first in the equation x’=x-vt, second in the argument list when invoking the Tau function – where it represents universal time, and third in the Tau function as the local variable Tau::t.

One final problem discussed in Episode 17 of the Podcast series is that Einstein drops a Beta term when he substitutes for alpha. Some modern physicists do this today by saying that alpha=sqrt(1-v^2/c^2)φ(v). This not only negates Einstein’s determination that alpha=φ(v)=1, but it is a step that can only be performed if you know the answer ahead of time. Without knowing the answer in advance, you would be unable to make this adjustment.