The Principia Machina/Testing/M2 The calculator from the specification: Difference between revisions
DeltaS Zero (talk | contribs) M2: the calculator tested from the specification through TPCRUN; accepted 2026-10-05 with Step A; the tester-written case set still to be grown (tpm_testing 0.1.0) |
DeltaS Zero (talk | contribs) status batch 0.1.4 (tpm_closeout_m1etc 0.1.0): PASSED 2026-10-08 (second approver: TBD), O-3's evidence |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{TPM map}} | {{TPM map}} | ||
{{DISPLAYTITLE:Testing M2: the calculator, tested from the specification}} | {{DISPLAYTITLE:Testing M2: the calculator, tested from the specification}} | ||
''Phase M2 of [[The Principia Machina/Testing|Testing the Principia Machina]]. State: | ''Phase M2 of [[The Principia Machina/Testing|Testing the Principia Machina]]. State: PASSED 2026-10-08 (second approver: TBD), on the operator's word "O-3 discharged", which discharged its one obligation; before that ACCEPTED WITH OBLIGATIONS 2026-10-05, with M1 and M3, as Step A. The read-only operation TPCRUN is live and every outside session since 2026-10-04 has used it; the tester-written case set the plan asks for, the obligation O-3, was met on 2026-10-08 by seven sessions under [[The Principia Machina/Hub/Outside AI/M2 The calculator from the specification|the M2 brief]]: 254 cases with a result, 136 distinct, citing 11 TPS section pages, every mismatch triaged.'' | ||
== Objective == | == Objective == | ||
| Line 14: | Line 14: | ||
// The two sources of test cases for the calculator. | // The two sources of test cases for the calculator. | ||
digraph sources { | digraph sources { | ||
rankdir= | rankdir=TB; node [shape=box, style=filled, fillcolor="#eaecf0", color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=10]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | ||
TPS [label="TPS\nthe rule text", shape=box3d]; | TPS [label="TPS\nthe rule text", shape=box3d]; | ||
B [label="the builder\nwrote the code and\nthe 6,786 published cases", fillcolor="#cedff2"]; | B [label="the builder\nwrote the code and\nthe 6,786 published cases", fillcolor="#cedff2"]; | ||
| Line 27: | Line 27: | ||
== What exists == | == What exists == | ||
* '''TPCRUN''', an operation of the API module action=tpx, live since TPX 0.4.0 (2026-10-04): it runs one named function of the server's calculator, TPC-PHP, on arguments the caller gives, and answers with the result. It is read-only and open to anonymous callers at a limited rate, so a tester needs no account. Its answer is the server's own calculator, the residence of record. | * '''TPCRUN''', an operation of the API module action=tpx, live since TPX 0.4.0 (2026-10-04), driven in the operator's tests by scripts the builder wrote: it runs one named function of the server's calculator, TPC-PHP, on arguments the caller gives, and answers with the result. It is read-only and open to anonymous callers at a limited rate, so a tester needs no account. Its answer is the server's own calculator, the residence of record. | ||
* '''The calculator's two residences''': TPC-PHP inside TPX, whose answer is the one of record, and [[The Principia Machina/TPC-PY|TPC-PY 0.3.0]], the published copy, declared on 2026-10-03 and conformed to TPS 0.5.0. Both run the same 33 corpora, 6,786 cases, byte-identical. | * '''The calculator's two residences''': TPC-PHP inside TPX, whose answer is the one of record, and [[The Principia Machina/TPC-PY|TPC-PY 0.3.0]], the published copy, declared on 2026-10-03 and conformed to TPS 0.5.0. Both run the same 33 corpora, 6,786 cases, byte-identical. | ||
| Line 33: | Line 33: | ||
// TPCRUN: the path from a tester's case to the server's calculator. | // TPCRUN: the path from a tester's case to the server's calculator. | ||
digraph tpcrun { | digraph tpcrun { | ||
rankdir= | rankdir=TB; node [shape=box, style=filled, fillcolor="#eaecf0", color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=10]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | ||
T [label="tester\n(no account needed)", fillcolor="#ffedad"]; | T [label="tester\n(no account needed)", fillcolor="#ffedad"]; | ||
API [label="api.php\naction=tpx\nop=TPCRUN\nfn, args"]; | API [label="api.php\naction=tpx\nop=TPCRUN\nfn, args"]; | ||
| Line 64: | Line 64: | ||
|- | |- | ||
| 2026-10-05 || the builder's recheck, anonymous || the same || the same || equal | | 2026-10-05 || the builder's recheck, anonymous || the same || the same || equal | ||
|- | |||
| 2026-10-08 || seven outside sessions under the M2 brief (one model, Gemini 3.8 Flash through Google Antigravity, each session started by a script the builder wrote and the operator ran) || 22 functions, each case's expectation computed by the tester's own code from the TPS text || 254 cases with a result, 136 distinct, citing 11 TPS section pages || every result reproduced (167 live through TPCRUN, 87 offline in both residences); 14 mismatches, each triaged: no calculator defect, no TPS defect, S1 0 | |||
|} | |} | ||
| Line 71: | Line 73: | ||
// Track C (Hub/Outside AI, section 6.4): the register checked from outside with STATUS, POLL and TPCRUN. | // Track C (Hub/Outside AI, section 6.4): the register checked from outside with STATUS, POLL and TPCRUN. | ||
digraph trackc { | digraph trackc { | ||
rankdir= | rankdir=TB; nodesep=0.25; ranksep=0.4; node [shape=box, style=filled, fillcolor="#eaecf0", color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=9]; edge [fontname="Helvetica", fontsize=9, color="#54595d"]; | ||
C1 [label="C1 declarations\nthe genesis line,\nthe declared versions"]; | C1 [label="C1 declarations\nthe genesis line,\nthe declared versions"]; | ||
C2 [label="C2 state\nSTATUS: DECLARED,\nrecords, next id"]; | C2 [label="C2 state\nSTATUS: DECLARED,\nrecords, next id"]; | ||
| Line 79: | Line 81: | ||
C6 [label="C6 grades\nTPCRUN grade_now;\nthe reading views", fillcolor="#cedff2"]; | C6 [label="C6 grades\nTPCRUN grade_now;\nthe reading views", fillcolor="#cedff2"]; | ||
C7 [label="C7 chains\nevery hash recomputed\nand linked"]; | C7 [label="C7 chains\nevery hash recomputed\nand linked"]; | ||
C1 -> C2 -> C3 -> C4 -> C5 -> | {rank=same; C1 -> C2 -> C3 -> C4;} | ||
C4 -> C5; | |||
{rank=same; C6 -> C5 [dir=back]; C7 -> C6 [dir=back];} | |||
} | } | ||
</graphviz> | </graphviz> | ||
| Line 85: | Line 89: | ||
== Results against the plan == | == Results against the plan == | ||
The operation the plan needs exists, is live and has been driven by two outside parties and the operator against every value the first UWC stores. The plan's count – 100 cases written by the tester from the rule text, across 10 sections – has not been reached: the cases run so far recompute stored values rather than probe the grammars (the digest convention, the unit grammar, the form grammar, SR3, SR8, promotion) from first principles. M2 was accepted with Step A on 2026-10-05 under the re-cut scope of D237.1 | The operation the plan needs exists, is live and has been driven by two outside parties and the operator against every value the first UWC stores. The plan's count – 100 cases written by the tester from the rule text, across 10 sections – has not been reached: the cases run so far recompute stored values rather than probe the grammars (the digest convention, the unit grammar, the form grammar, SR3, SR8, promotion) from first principles, and until 2026-10-06 the start page forbade a tester to compute any value of the calculator itself, so no case could carry an independently computed expectation. M2 was accepted with Step A on 2026-10-05 under the re-cut scope of D237.1 with this criterion unmet: it is the obligation O-3 on [[The Principia Machina/Testing/Obligations|Obligations]]. From 2026-10-06 (the user's selection D251.1) the tester computes: under [[The Principia Machina/Hub/Outside AI/M2 The calculator from the specification|the M2 brief]] it writes its own implementation of each rule from the TPS text, predicts, calls TPCRUN and compares; it must not read TPC-PY's pages, the vector corpora, the pseudocode pages or the sandbox; its code is attached to its report; every mismatch is a calculator defect or an S4 item. The phase becomes PASSED when 100 such cases across 10 sections have run with every mismatch triaged. | ||
On 2026-10-08 seven sessions under the brief met the criterion: 254 cases with a result (136 distinct pairs of function and arguments) citing 11 TPS section pages (2.1, 2.3, 2.4, 2.5, 3.2, 3.3, 3.4, 4.1, 4.4, 5.5 and 5.9), 22 functions, 14 mismatches, each triaged with no calculator defect, no TPS defect and no S1. Every result a report gives was reproduced, live through TPCRUN or offline in both residences. The operator's word "O-3 discharged" (2026-10-08) made M2 PASSED, marked "second approver: TBD". The narrower readings of the count recorded for the second approver (without two re-derived cases, without cases probed before their expectation was written) all stay above 100 cases; the one reading below 10 is the number of section pages each citing session itself read (7, or 8). | |||
<graphviz> | <graphviz> | ||
// M2 on 2026-10- | // M2 on 2026-10-08: what is in place, and the obligation met. | ||
digraph m2status { | digraph m2status { | ||
rankdir=LR; node [shape=box, style=filled, color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=9]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | rankdir=LR; node [shape=box, style=filled, color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=9]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | ||
| Line 94: | Line 100: | ||
A [label="IN PLACE\nTPCRUN live, read-only, anonymous\nTPC-PY 0.3.0 declared\ntrack C on the wiki", fillcolor="#cef2e0"]; | A [label="IN PLACE\nTPCRUN live, read-only, anonymous\nTPC-PY 0.3.0 declared\ntrack C on the wiki", fillcolor="#cef2e0"]; | ||
B [label="RUN\nevery stored value of SPR\nrecomputed by three parties,\nall equal", fillcolor="#cef2e0"]; | B [label="RUN\nevery stored value of SPR\nrecomputed by three parties,\nall equal", fillcolor="#cef2e0"]; | ||
C [label=" | C [label="O-3 DISCHARGED 10-08\n254 tester-written cases,\n11 TPS section pages,\n14 mismatches triaged, S1 0;\nM2 PASSED (second approver: TBD)", fillcolor="#cef2e0"]; | ||
M2 -> A; M2 -> B; M2 -> C; | M2 -> A; M2 -> B; M2 -> C; | ||
} | } | ||
| Line 101: | Line 107: | ||
== Findings carried out of M2 == | == Findings carried out of M2 == | ||
F-TPCRUN-1 (low): TPCRUN with an unknown function name answers an internal API error rather than a refusal with its own code; | F-TPCRUN-1 (low): TPCRUN with an unknown function name answers an internal API error rather than a refusal with its own code; fixed in B1 increment 4 (TPX 0.6.0). F-STATUS-1: the STATUS operation without a prefix answers with PHP error text and a path; same. Both on [[The Principia Machina/Testing/Findings|Findings]]. | ||
Previous: [[The Principia Machina/Testing/M1 The register duties|M1]]. Next: [[The Principia Machina/Testing/M3 TPX, the smallest server|M3]]. Back to [[The Principia Machina/Testing|Testing the Principia Machina]]. | Previous: [[The Principia Machina/Testing/M1 The register duties|M1]]. Next: [[The Principia Machina/Testing/M3 TPX, the smallest server|M3]]. Back to [[The Principia Machina/Testing|Testing the Principia Machina]]. | ||
[[Category:The Principia Machina]] | [[Category:The Principia Machina]] | ||
Latest revision as of 11:32, 8 October 2026
| The Principia Machina: map |
|---|
| Reading the diagrams Structure key Process key Definition of terms Roles |
| Reading by audience Start here: the walk through The operator's guide Tutorial: create a UUID Workspace Container (UWC) Public Recorder inputs Sponsors: your first agent |
| The specification Contents: parts, tables, diagrams TPS 0.5.0 (declared 2026-10-03, revision 8; machine-optimized text) Decisions (the foundations record, one line each) |
Phase M2 of Testing the Principia Machina. State: PASSED 2026-10-08 (second approver: TBD), on the operator's word "O-3 discharged", which discharged its one obligation; before that ACCEPTED WITH OBLIGATIONS 2026-10-05, with M1 and M3, as Step A. The read-only operation TPCRUN is live and every outside session since 2026-10-04 has used it; the tester-written case set the plan asks for, the obligation O-3, was met on 2026-10-08 by seven sessions under the M2 brief: 254 cases with a result, 136 distinct, citing 11 TPS section pages, every mismatch triaged.
Objective
The plan (tpm_third_party_plan 0.2.0, section 4) states M2 as the calculator, tested from the specification. Nothing new is built: the named-function command of M1 exposes the calculator's functions. The tester writes its own test cases from the rule text of the specification – the digest convention, the unit grammar, the form grammar, SR3, SR8, promotion – never from the published corpora; predicts; then runs them. Any mismatch is either a calculator defect or an ambiguity in the specification (class S4).
The plan's acceptance: at least 100 tester-written cases across at least 10 sections of the specification, with every mismatch triaged.
Why it matters: every one of the 6,786 cases in the published vector corpus was written by the same producer as the code. A case derived by an outside reader from the rule text is the first independent one.

What exists
- TPCRUN, an operation of the API module action=tpx, live since TPX 0.4.0 (2026-10-04), driven in the operator's tests by scripts the builder wrote: it runs one named function of the server's calculator, TPC-PHP, on arguments the caller gives, and answers with the result. It is read-only and open to anonymous callers at a limited rate, so a tester needs no account. Its answer is the server's own calculator, the residence of record.
- The calculator's two residences: TPC-PHP inside TPX, whose answer is the one of record, and TPC-PY 0.3.0, the published copy, declared on 2026-10-03 and conformed to TPS 0.5.0. Both run the same 33 corpora, 6,786 cases, byte-identical.

How it was tested
Through TPCRUN, in the outside sessions of Step A and in the operator's tests, against values stored on the live wiki:
| Date (UTC) | Who | Function | Cases | Outcome |
|---|---|---|---|---|
| 2026-10-04 | the operator's test, then the outside AI | record_digest | 4 stored digests, SPR-1 to SPR-4 | every one recomputed equal |
| 2026-10-05 | the operator's test (15 checks) | record_digest | 5 stored digests, SPR-1 to SPR-5 | equal |
| 2026-10-05 | the operator's test | the PROMOTION record's digest (a list record) | 1 | equal |
| 2026-10-05 | the operator's test | verification_difference | 1 (SPR-5 against its outside value: U 2e-4, VALUE 1e-4, ZETA 0.5) | equal to the stored DIFFERENCE |
| 2026-10-05 | the operator's test | grade_now | 2 (SPR-3 ESTABLISHED, SPR-4 PROVISIONAL) | as read on the page |
| 2026-10-05 | the outside AI (Gemini), read-only | record_digest, the PROMOTION record, the DIFFERENCE, the grades | 5 + 1 + 1 + 2 | every one equal (C3, C4, C5 of track C) |
| 2026-10-05 | the builder's recheck, anonymous | the same | the same | equal |
| 2026-10-08 | seven outside sessions under the M2 brief (one model, Gemini 3.8 Flash through Google Antigravity, each session started by a script the builder wrote and the operator ran) | 22 functions, each case's expectation computed by the tester's own code from the TPS text | 254 cases with a result, 136 distinct, citing 11 TPS section pages | every result reproduced (167 live through TPCRUN, 87 offline in both residences); 14 mismatches, each triaged: no calculator defect, no TPS defect, S1 0 |
Since the import of 2026-10-05 the checks above are written on the wiki as track C of Outside AI: start here (C1 to C7), so any later session runs them without a brief being handed out.

Results against the plan
The operation the plan needs exists, is live and has been driven by two outside parties and the operator against every value the first UWC stores. The plan's count – 100 cases written by the tester from the rule text, across 10 sections – has not been reached: the cases run so far recompute stored values rather than probe the grammars (the digest convention, the unit grammar, the form grammar, SR3, SR8, promotion) from first principles, and until 2026-10-06 the start page forbade a tester to compute any value of the calculator itself, so no case could carry an independently computed expectation. M2 was accepted with Step A on 2026-10-05 under the re-cut scope of D237.1 with this criterion unmet: it is the obligation O-3 on Obligations. From 2026-10-06 (the user's selection D251.1) the tester computes: under the M2 brief it writes its own implementation of each rule from the TPS text, predicts, calls TPCRUN and compares; it must not read TPC-PY's pages, the vector corpora, the pseudocode pages or the sandbox; its code is attached to its report; every mismatch is a calculator defect or an S4 item. The phase becomes PASSED when 100 such cases across 10 sections have run with every mismatch triaged.
On 2026-10-08 seven sessions under the brief met the criterion: 254 cases with a result (136 distinct pairs of function and arguments) citing 11 TPS section pages (2.1, 2.3, 2.4, 2.5, 3.2, 3.3, 3.4, 4.1, 4.4, 5.5 and 5.9), 22 functions, 14 mismatches, each triaged with no calculator defect, no TPS defect and no S1. Every result a report gives was reproduced, live through TPCRUN or offline in both residences. The operator's word "O-3 discharged" (2026-10-08) made M2 PASSED, marked "second approver: TBD". The narrower readings of the count recorded for the second approver (without two re-derived cases, without cases probed before their expectation was written) all stay above 100 cases; the one reading below 10 is the number of section pages each citing session itself read (7, or 8).

Findings carried out of M2
F-TPCRUN-1 (low): TPCRUN with an unknown function name answers an internal API error rather than a refusal with its own code; fixed in B1 increment 4 (TPX 0.6.0). F-STATUS-1: the STATUS operation without a prefix answers with PHP error text and a path; same. Both on Findings.
Previous: M1. Next: M3. Back to Testing the Principia Machina.