.
authorThomas Walker Lynch <eknp9n@reasoningtechnology.com>
Thu, 9 Jul 2026 14:15:47 +0000 (14:15 +0000)
committerThomas Walker Lynch <eknp9n@reasoningtechnology.com>
Thu, 9 Jul 2026 14:15:47 +0000 (14:15 +0000)
document/TM-2026.html
document/h_of_t_D_table.png [new file with mode: 0644]

index daed3a0..ba465df 100644 (file)
 
 <h2>A pole and zero cancellation</h2>
 
-
-
-      <p>
-        To construct the <RT·math>D_0</RT·math> vector for the quotient <RT·math>H(t) = f(t) / g(t)</RT·math>, where <RT·math>f(t) = 2^t - 32</RT·math> and <RT·math>g(t) = 3t - 15</RT·math>, the machine evaluates the standard combinatorial recurrence for the <RT·math>n</RT·math>th forward difference:
-      </p>
-
-      <RT·math>
-        H_n = \sum_{k=0}^n (-1)^{n-k} \binom{n}{k} \frac{f(k)}{g(k)}
-      </RT·math>
-
-      <p>
-        The generator machine successfully computes the first several entries. However, testing the structural integrity of this sequence generation reveals a hard mechanical fault at step 5. When the generator attempts to evaluate <RT·math>H_5</RT·math>, the summation requires evaluating the term at <RT·math>k=5</RT·math>. The denominator evaluates to <RT·math>g(5) = 3(5) - 15 = 0</RT·math>. The numerator evaluates to <RT·math>f(5) = 2^5 - 32 = 0</RT·math>.
-      </p>
-
-      <p>
-        If this were executing strictly in the first order, the arithmetic logic unit would blindly attempt the operation and crash, yielding a strict hardware fault: <RT·code>(divide 0 0)</RT·code>. Because this execution occurs in the second order, the structural logic of the functions is preserved. The machine intercepts the fault before reduction, trapping the unresolved expression as <RT·code>(divide f(k)|k=5 g(k)|k=5)</RT·code>. This trapped expression is routed to a specialized limit analyzer, acting as a L'Hôpital evaluator, to resolve the indeterminate form.
-      </p>
-
-      <p>
-        To see how this operates dynamically, a person can observe the vectors directly. The row 0 vector for the function <RT·math>g(u) = u - 15</RT·math> is:
-      </p>
-       
-      <RT·math>
-         [-15, 1]
-      </RT·math>
-
-      <p>
-        The row 0 vector for <RT·math>f(t) = 2^t - 32</RT·math> is:
-      </p>
-
-      <RT·math>
-         [-31, 1, 1, 1, \ldots]
-      </RT·math>
-
-      <p>
-        We will place these functions into a single system, so we need to synchronize them. Let us assume that <RT·math>[-15, 1]</RT·math> will be called 3 times each time that <RT·math>[-31, 1, 1, 1, \ldots]</RT·math> is called once. Then it becomes:
-      </p>
-
-      <RT·math>
-         [-15, 3]
-      </RT·math>
-
-      <p>
-        It still starts in the same place, but every 3 steps it jumps by 3 rather than the 1 it jumps per step. Consider the quotient:
-      </p>
-       
-      <RT·math>
-         [-31, 1, 1, 1, \ldots] / [-15, 3]
-      </RT·math>
-
-      <p>
-        The two synchronized machines that are called against this quotient can be simplified to a rational generator machine. This machine runs the two initial difference vectors in parallel and evaluates their ratio dynamically at each step, rather than attempting to compute a static deconvolution vector upfront.
-      </p>
-
-      <p>
-        By applying the discrete Leibniz rule, a person can simplify the heavy combinatorial deconvolution into a highly optimized linear recurrence relation. Let <RT·math>F_{0,k}</RT·math> be the component of the numerator and <RT·math>D_{0,k}</RT·math> be the component of the quotient. The relation to find the next quotient component reduces cleanly to:
-      </p>
-
-      <RT·math>
-         D_{0,k} = \frac{F_{0,k} - 3k D_{0,k-1}}{3k - 15}
-      </RT·math>
-
-      <p>
-        Using this recurrence, the machine successfully generates quotient values, but on call 5 it encounters the exact same singularity.
-      </p>
-
-      <RT·math>
-         [31/15, 13/30, 8/45, 1/10, 1/15, \text{(divide 0 0)}]
-      </RT·math>
-
-      <p>
-        By shifting from the difference vector to the direct function values over time, the behavior around the singularity becomes clear:
-      </p>
-
-      <table>
-        <thead>
-          <tr>
-            <th>Count (<RT·math>t</RT·math>)</th>
-            <th>Quotient (<RT·math>f(t)/g(t)</RT·math>)</th>
-            <th>1st Diff Ratio (<RT·math>\Delta^1 f(t) / \Delta^1 g(t)</RT·math>)</th>
-            <th>2nd Diff Ratio (<RT·math>\Delta^2 f(t) / \Delta^2 g(t)</RT·math>)</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>0</td>
-            <td>31/15</td>
-            <td>1/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>1</td>
-            <td>30/12</td>
-            <td>2/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>2</td>
-            <td>28/9</td>
-            <td>4/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>3</td>
-            <td>24/6</td>
-            <td>8/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>4</td>
-            <td>16/3</td>
-            <td>16/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>5</td>
-            <td><RT·code>(divide f(5) g(5))</RT·code></td>
-            <td>32/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>6</td>
-            <td>32/3</td>
-            <td>64/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>7</td>
-            <td>96/6</td>
-            <td>128/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>8</td>
-            <td>224/9</td>
-            <td>256/3</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>9</td>
-            <td>480/12</td>
-            <td>512/3</td>
-            <td></td>
-          </tr>
-        </tbody>
-      </table>
-
-      <p>
-        Observing the execution table reveals a profound structural alignment. Exactly at the singularity <RT·math>t=5</RT·math>, the continuous trajectory of the quotient aligns perfectly with the ratio of the first differences, <RT·math>\Delta^1 f(t) / \Delta^1 g(t)</RT·math>, taking the value <RT·math>32/3</RT·math>. The L'Hôpital evaluator utilizes this discrete geometry to bridge the gap. This specific physical property is highly suggestive of L'Hôpital's rule from continuous calculus. In a later chapter concerning non standard analysis, we will formally define how this exact difference quotient mechanism maps seamlessly into continuous limits when stepping across infinitesimal bounds.
-      </p>
-
-      <h2>A pole and zero cancellation</h2>
-
-      <p>The row 0 vector for the function <RT·math>g(u) = u - 15</RT·math> is:</p>
-      
-      <RT·math>
-         [-15, 1]
-      </RT·math>
-
-      <p>The row 0 vector for <RT·math>f(t) = 2^t - 32</RT·math> is:</p>
-
-      <RT·math>
-         [-31, 1, 1, 1, \ldots]
-      </RT·math>
-
-      <p>We will place these functions into a single system, so we need to synchronize them. Let us assume that <RT·math>[-15, 1]</RT·math> will be called 3 times each time that <RT·math>[-31, 1, 1, 1, \ldots]</RT·math> is called once. Then it becomes:</p>
-
-      <RT·math>
-         [-15, 3]
-      </RT·math>
-
-      <p>It still starts in the same place, but every 3 steps it jumps by 3 rather than the 1 it jumps per step.</p>
-
-      <p>Consider the quotient:</p>
-      
-      <RT·math>
-         [-31, 1, 1, 1, \ldots] / [-15, 3]
-      </RT·math>
-
-      <p>The two synchronized machines that are called against this quotient can be simplified to a rational generator machine. This machine runs the two initial difference vectors in parallel and evaluates their ratio dynamically at each step, rather than attempting to compute a static deconvolution vector upfront.</p>
-
-      <p>By applying the discrete Leibniz rule, a person can simplify the heavy combinatorial deconvolution into a highly optimized linear recurrence relation. Let <RT·math>F_{0,k}</RT·math> be the component of the numerator and <RT·math>D_{0,k}</RT·math> be the component of the quotient. The relation to find the next quotient component reduces cleanly to:</p>
-
-      <RT·math>
-         D_{0,k} = \frac{F_{0,k} - 3k D_{0,k-1}}{3k - 15}
-      </RT·math>
-
-      <p>Using this recurrence, the machine will successfully generate quotient values, but on call 5 there is again a <RT·code>(divide 0 0)</RT·code>.</p>
-
-      <RT·math>
-         [31/15, 13/30, 8/45, 1/10, 1/15, (divide 0 0)]
-      </RT·math>
-
-      <table>
-        <thead>
-          <tr>
-            <th>Count (<RT·math>t</RT·math>)</th>
-            <th>Quotient (<RT·math>f(t)/g(t)</RT·math>)</th>
-            <th>1st Diff Ratio (<RT·math>\Delta^1 f(t) / \Delta^1 g(t)</RT·math>)</th>
-            <th>2nd Diff Ratio (<RT·math>\Delta^2 f(t) / \Delta^2 g(t)</RT·math>)</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>0</td>
-            <td>31/15</td>
-            <td>1/3</td>
-          </tr>
-          <tr>
-            <td>1</td>
-            <td>30/12</td>
-            <td>2/3</td>
-          </tr>
-          <tr>
-            <td>2</td>
-            <td>28/9</td>
-            <td>4/3</td>
-          </tr>
-          <tr>
-            <td>3</td>
-            <td>24/6</td>
-            <td>8/3</td>
-          </tr>
-          <tr>
-            <td>4</td>
-            <td>16/3</td>
-            <td>16/3</td>
-          </tr>
-          <tr>
-            <td>5</td>
-            <td><RT·code>(divide 0 0)</RT·code></td>
-            <td>32/3</td>
-          </tr>
-          <tr>
-            <td>6</td>
-            <td>32/3</td>
-            <td>64/3</td>
-          </tr>
-          <tr>
-            <td>7</td>
-            <td>96/6</td>
-            <td>128/3</td>
-          </tr>
-          <tr>
-            <td>8</td>
-            <td>224/9</td>
-            <td>256/3</td>
-          </tr>
-          <tr>
-            <td>9</td>
-            <td>480/12</td>
-            <td>512/3</td>
-          </tr>
-        </tbody>
-      </table>
+<p>
+  Here we circle back to the division by zero problem, though this time while extending functions. Let us begin with the two functions, <RT·math>f(t) = 2^t - 32</RT·math> and <RT·math>g(u) = u - 15</RT·math>. Both have <RT·math>D_0</RT·math> vectors, though the one for the exponential function is defined by a machine rather than by a value on a tape.
+</p>
+
+<p>
+  We cannot do function based arithmetic on these until we synchronize them. Suppose that for each call of the <RT·math>f</RT·math> machine, there will be three calls to the <RT·math>g</RT·math> machine. So we can make a new machine that is called once, each time <RT·math>f</RT·math> is called, <RT·math>g(t) = 3t - 15</RT·math>.
+</p>
+
+<p>
+  Now suppose we want to express the quotient of these two functions.
+</p>
+
+<RT·math>
+  h(t) = \frac{f(t)}{g(t)} = \frac{2^t - 32}{3t - 15}
+</RT·math>
+
+<p>
+  Evaluating this form in the first order at the point <RT·math>t=5</RT·math> returns a <RT·code>(divide 0 0)</RT·code>. It is a strange thing, because if we make a plot <RT·math>h(t)</RT·math> values, against <RT·math>t</RT·math> it is a smooth curve. Obviously there is a value for <RT·math>h(5)</RT·math> that lies on the curve. However, if we plug in the numbers, and do normal arithmetic, this is what happens at <RT·math>t = 5</RT·math>.
+</p>
+<p>
+  Suppose we move to a second order evaluation, and for places the computation does not work, we return the machine that isn't evaluating. That is similar to what we did to get <RT·code>(divide 0 0)</RT·code>, but the zeros in that expression came from a prior step first evaluation. Let us return the quotient machine.
+</p>
+
+<table>
+  <thead>
+    <tr>
+      <th>Count (<RT·math>t</RT·math>)</th>
+      <th>Quotient (<RT·math>f(t)/g(t)</RT·math>)</th>
+      <th>1st Diff Ratio (<RT·math>\Delta^1 f(t) / \Delta^1 g(t)</RT·math>)</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>0</td>
+      <td>31/15</td>
+      <td>1/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>1</td>
+      <td>30/12</td>
+      <td>2/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>2</td>
+      <td>28/9</td>
+      <td>4/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>3</td>
+      <td>24/6</td>
+      <td>8/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>4</td>
+      <td>16/3</td>
+      <td>16/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>5</td>
+      <td><RT·code>(divide f(5) g(5))</RT·code></td>
+      <td>32/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>6</td>
+      <td>32/3</td>
+      <td>64/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>7</td>
+      <td>96/6</td>
+      <td>128/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>8</td>
+      <td>224/9</td>
+      <td>256/3</td>
+      <td></td>
+    </tr>
+    <tr>
+      <td>9</td>
+      <td>480/12</td>
+      <td>512/3</td>
+      <td></td>
+    </tr>
+  </tbody>
+</table>
+
+      <p>
+        The quotient machine, <RT·code>(divide f(5) g(5))</RT·code>, is no more representative of the value we expected here, than was  <RT·code>(divide 0 0)</RT·code>. However, as we have the whole program, we could pass it to a L'Hôpital evaluator and get a value back. But I am wondering if we can't design function extension form that extends to the value and beyond, as most apparetly there is a value to extend to.
+      </p>
+
+      <p>
+        I included the first difference along with the evaluation results in the table above. When building a first difference table an interesting thing happens at the singularity, the first difference and the function itself coincide, note calls 4 and 5. This makes sense because <RT·math>\Delta f(4) = f(5) - f(4)</RT·math>, which becomes <RT·math>\Delta f(4) = 0 - f(4)</RT·math>, and the same happens to <RT·math>g</RT·math> in the denominator, so the signs cancel. Note also <RT·math>\Delta f(5) = f(6) - f(5)</RT·math>, which becomes <RT·math>\Delta f(5) = f(6) - 0</RT·math>.
+      </p>
+
+      <p>Ostensibly it looks like we have happened upon a discrete version of L'Hôpital's rule, that we merely use the first difference quotient instead of the function quotient. But alas, the coincidence occurs at <RT·math>h(4)</RT·math> rather than at <RT·math>h(5)</RT·math>. For the second coincidence, we find <RT·math>h(6)</RT·math> as the 5th first finite difference. In neither case did we learn anything about the value of <RT·math>h(5)</RT·math>.
+      </p>
+
+      <p>
+        Perhaps if we were performing nonstandard analysis, and extending by increments of epsilon in the domain at each step, the nonstandard analysis naturalization function would find that the differential value can be used as the value at the singularity. But here we are discussing finite differences <RT·endnote>H. Jerome Keisler, <em>Elementary Calculus: An Infinitesimal Approach</em>, 2nd ed. (Boston: Prindle, Weber and Schmidt, 1986).</RT·endnote>. However, we are not doing a local analysis here so as to derive a principle, but rather are trying to evaluate a function in the macro view.
+      </p>
+
+      <p>
+        So then, perhaps we set the value at the singularity to <RT·math>x</RT·math> build out the difference table, then solve for <RT·math>x</RT·math>?
+      </p>
+
+
+
+<p>
+  So let us consider the <RT·math>D_0</RT·math> vector for the quotient <RT·math>h(t)</RT·math>.
+</p>
+
+<RT·math>
+  D_{0,n} = \sum_{k=0}^n (-1)^{n-k} \binom{n}{k} \frac{f(k)}{g(k)}
+</RT·math>
+
+<p>
+  The formula successfully computes the first several entries. If this were executing strictly in the first order, the arithmetic logic unit would blindly attempt the operation and at <RT·math>k=5</RT·math> the result would be <RT·code>(divide 0 0)</RT·code>, as it was for the quotient itself. But a second order machine can instead return <RT·code>(divide f(k)|k=5 g(k)|k=5)</RT·code>, here the functional notation is used to refer to the <RT·math>f</RT·math> and <RT·math>g</RT·math> machines, so the entire machine definitions are being passed as arguments. This trapped expression is then given to L'Hôpital evaluator to resolve the indeterminate form. Note this is during the creation of the <RT·math>D_0</RT·math> vector, so it is part of the simplification step, rather than being part of the evaluation of the quotient. The <RT·math>D_0</RT·math> vector can then be used in extension calls to generate values. The <RT·math>h(t)</RT·math> will then be fully defined.
+</p>
+
+<p>
+We will make use use of this transcendental constant:
+</p>
+
+<RT·math>
+T = \frac{32 \ln(2)}{3}
+</RT·math>
+
+<p>The resulting <RT·math>D_0</RT·math> vector for the quotient is:</p>
+
+<RT·math>
+  D_{0} = \left[ \frac{31}{15}, \frac{13}{30}, \frac{8}{45}, \frac{10}{100}, \frac{1}{15}, \frac{32\ln(2)}{3}, 32/3, 64/3, 128/3, 256/3 \right]
+</RT·math>
+
+<img src="h_of_t_D_table.png" class="rt-diagram" alt="Figure D table for h(t)">
+
+<p>
+  Note how the transcendental constants propagates down the table, only to cancel after it is used at the point of the singularity. The differential machinery is only capable of creating rational numbers, and at the one place that non rational is required in the sequence, that machine produces (divide 0 0). We then escalate to L'Hôpital evaluator to generate the number T, which then, can only be represented with a machine.
+</p>
+
+<p>Starting with an initial tape of the extended quotient vector and extending results in these quotients:</p>
+
+<table>
+  <thead>
+    <tr>
+      <th>Count (<RT·math>t</RT·math>)</th>
+      <th>Direct Evaluation (<RT·math>f(t)/g(t)</RT·math>)</th>
+      <th>Extended Quotient Vector (<RT·math>H(t)</RT·math>)</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>0</td>
+      <td>31/15</td>
+      <td>31/15</td>
+    </tr>
+    <tr>
+      <td>1</td>
+      <td>30/12</td>
+      <td>30/12</td>
+    </tr>
+    <tr>
+      <td>2</td>
+      <td>28/9</td>
+      <td>28/9</td>
+    </tr>
+    <tr>
+      <td>3</td>
+      <td>24/6</td>
+      <td>24/6</td>
+    </tr>
+    <tr>
+      <td>4</td>
+      <td>16/3</td>
+      <td>16/3</td>
+    </tr>
+    <tr>
+      <td>5</td>
+      <td><RT·code>(divide 0 0)</RT·code></td>
+      <td><RT·math>\frac{32 \ln(2)}{3}</RT·math></td>
+    </tr>
+    <tr>
+      <td>6</td>
+      <td>32/3</td>
+      <td>32/3</td>
+    </tr>
+    <tr>
+      <td>7</td>
+      <td>96/6</td>
+      <td>96/6</td>
+    </tr>
+    <tr>
+      <td>8</td>
+      <td>224/9</td>
+      <td>224/9</td>
+    </tr>
+    <tr>
+      <td>9</td>
+      <td>480/12</td>
+      <td>480/12</td>
+    </tr>
+  </tbody>
+</table>
 
       <RT·chapter>Address</RT·chapter>
 
diff --git a/document/h_of_t_D_table.png b/document/h_of_t_D_table.png
new file mode 100644 (file)
index 0000000..794e93a
Binary files /dev/null and b/document/h_of_t_D_table.png differ