Jump to content

The Principia Machina/Testing/M2 The calculator from the specification: Difference between revisions

From The Invariance Itself
M2: the diagrams re-laid out to fit the content column (tpm_testing 0.1.1)
M2: ACCEPTED WITH OBLIGATIONS; O-3 under the M2 brief, the tester computes (D251.1) (tpm_status 0.1.3)
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: accepted 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 is still to be grown.''
''Phase M2 of [[The Principia Machina/Testing|Testing the Principia Machina]]. State: 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 is the obligation O-3 (0 of 100 on 2026-10-06), run under [[The Principia Machina/Hub/Outside AI/M2 The calculator from the specification|the M2 brief]].''


== Objective ==
== Objective ==
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 87: Line 87:
== 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; growing the tester-written set is open work for the next outside sessions and is tracked on the project's ledger.
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.


<graphviz>
<graphviz>
// M2 on 2026-10-05: what is in place, what is still to be grown.
// M2 on 2026-10-06: what is in place, what the obligation asks.
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 96: Line 96:
   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="TO BE GROWN\n100 tester-written cases\nacross 10 TPS sections,\nevery mismatch triaged", fillcolor="#ffedad", style="filled,dashed"];
   C [label="OBLIGATION O-3\n100 tester-written cases\nacross 10 TPS sections, under\nthe M2 brief (the tester computes);\n0 of 100 on 2026-10-06", fillcolor="#ffedad", style="filled,dashed"];
   M2 -> A; M2 -> B; M2 -> C;
   M2 -> A; M2 -> B; M2 -> C;
}
}
Line 103: Line 103:
== 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; for the next 0.5.x. 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]].
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]].

Revision as of 13:22, 7 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: 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 is the obligation O-3 (0 of 100 on 2026-10-06), run under the M2 brief.

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

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.

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.