Jump to content

The Principia Machina/Inputs/Yardsticks: Difference between revisions

From The Invariance Itself
m 1 revision imported
m 1 revision imported
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TPM map}}
{{TPM map}}
{{DISPLAYTITLE:Inputs: yardsticks}}
{{DISPLAYTITLE:Inputs: yardsticks}}
''Public Recorder inputs: a help set for the people who put things into The Principia Machina - authors of a new UWC, operators, and the declaring authority. It explains; the specification governs. Start at [[The Principia Machina/Inputs|the index]]; for a guided walk from a blank file to a declared UWC, follow [[The Principia Machina/Tutorial|the tutorial]]. Agents read [[The Principia Machina/Agent/Inputs|the agent-facing page]] instead.''
''Public Recorder inputs: a help set for the people who put things into The Principia Machina - authors of a new UWC, operators, and the declaring authority. It explains; the specification governs. Start at [[The Principia Machina/Inputs|the index]]; for a guided walk from a blank file to a declared UWC, follow [[The Principia Machina/Tutorial|the tutorial]]. Its counterpart for agents is [[The Principia Machina/Agent/Inputs|the agent-facing page]].''


{{:The Principia Machina/Diagrams/07 Strike-rule flow}}
{{:The Principia Machina/Diagrams/07 Strike-rule flow}}
Line 9: Line 9:
How to write a yardstick: a UWC's own rule for ordering records, and the rules that keep it from bending the strike skeleton.
How to write a yardstick: a UWC's own rule for ordering records, and the rules that keep it from bending the strike skeleton.


''Explains: TPS 0.3.0 (declared final on 2026-09-28 at revision 6; it follows TPS 0.1.1, declared final on 2026-09-26; revision 7, proposed as TPS 0.4.0, is on the TPS pages from batch B2, and a passage marked "revision 7, proposed" states it), whose sections 2.2 to 2.5 carry the zone schemas with the optional declared form, the ROLE field, the D variable and the structure check (records D92.1, D98.1, D99.1, D100.1, D103.1-D105.1, D106.1-D108.1, D132.1, D176.1, D177.1, D179.1 and D186.1); [[The Principia Machina/TPC-PY|TPC-PY 0.1.0]] (declared on 2026-09-28, tree digest a00161c1b321fd66abc591209007d46a7fa6290097835060e50f381426259043, conformed TPS 0.3.0; tpc_zone 0.5.0, tpc_units 0.1.1, tpc_tests 0.2.0, tpc_form 0.2.0, tpc_eom 0.1.0; schema 0.5.0) with check_draft 0.5.0, and [[The Principia Machina/TPC-PY|TPC-PY 0.2.0]] (proposed, not declared; its pages on this wiki since batch B2; tree digest 2998ac4c24dff83bd047a691081b7d27bb25c9d26512bffe519f5c2b6ba127e2, conformed TPS 0.4.0; tpc_zone 0.5.1, tpc_units 0.1.2, tpc_tests 0.2.1, tpc_form 0.2.1, tpc_eom 0.2.0; schema 0.5.0) with check_draft 0.6.0; the yardstick evaluator, TPC-PY tpc_yardstick 0.1.0. Where this page and the specification differ, the specification governs.''
''Explains: TPS 0.4.0 (declared final on 2026-09-30 at revision 7, and in force; it follows TPS 0.3.0, declared final on 2026-09-28 at revision 6), whose sections 2.2 to 2.5 carry the zone schemas with the optional declared form, the ROLE field, the D variable and the structure check (records D92.1, D98.1, D99.1, D100.1, D103.1-D105.1, D106.1-D108.1, D132.1, D176.1, D177.1, D179.1 and D186.1); [[The Principia Machina/TPC-PY|TPC-PY 0.1.0]] (declared on 2026-09-28, tree digest a00161c1b321fd66abc591209007d46a7fa6290097835060e50f381426259043, conformed TPS 0.3.0; tpc_zone 0.5.0, tpc_units 0.1.1, tpc_tests 0.2.0, tpc_form 0.2.0, tpc_eom 0.1.0; schema 0.5.0) with check_draft 0.5.0, and [[The Principia Machina/TPC-PY|TPC-PY 0.2.0]] (declared on 2026-09-30; tree digest 2998ac4c24dff83bd047a691081b7d27bb25c9d26512bffe519f5c2b6ba127e2, conformed TPS 0.4.0; tpc_zone 0.5.1, tpc_units 0.1.2, tpc_tests 0.2.1, tpc_form 0.2.1, tpc_eom 0.2.0; schema 0.5.0) with check_draft 0.6.0; the yardstick evaluator, TPC-PY tpc_yardstick 0.1.0. Where this page and the specification differ, the specification governs.''


== What a yardstick is ==
== What a yardstick is ==
Line 56: Line 56:


== FIELD terms ==
== FIELD terms ==
A FIELD term names a numeric field of a register record, read from a closed field table. The table holds one field, U_C: <code>FIELD:U_C</code> is a record's combined standard uncertainty, an L record's read as 0; any other FIELD name is refused ([[The Principia Machina/TPS/2.4 The Measure Set|TPS 2.4.8]]; revision 7, proposed). The checker of the declared TPC-PY still reports <code>REFUSED, FIELD terms await the record field schema (C-16)</code> for every FIELD term, and the draft does not pass. The checker of the next TPC-PY (increment 12, proposed) retires that message. It builds the field table over its synthetic record suite, an L record reading 0, and runs a yardstick with <code>FIELD:U_C</code> through the SR9 checks like any other; a FIELD other than U_C it reports <code>REFUSED, FIELD ''name'' is not in the field table</code>. Until that TPC-PY is declared, leave FIELD terms out of a draft you want the declared checker to pass.
A FIELD term names a numeric field of a register record, read from a closed field table. The table holds one field, U_C: <code>FIELD:U_C</code> is a record's combined standard uncertainty, an L record's read as 0; any other FIELD name is refused ([[The Principia Machina/TPS/2.4 The Measure Set|TPS 2.4.8]]). The checker of TPC-PY 0.1.0 still reports <code>REFUSED, FIELD terms await the record field schema (C-16)</code> for every FIELD term, and the draft does not pass. The checker of TPC-PY 0.2.0, declared on 2026-09-30, retires that message. It builds the field table over its synthetic record suite, an L record reading 0, and runs a yardstick with <code>FIELD:U_C</code> through the SR9 checks like any other; a FIELD other than U_C it reports <code>REFUSED, FIELD ''name'' is not in the field table</code>. With TPC-PY 0.1.0's checker, leave FIELD terms out of a draft you want it to pass.


== Non-goals ==
== Non-goals ==

Latest revision as of 01:45, 3 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)


Public Recorder inputs: a help set for the people who put things into The Principia Machina - authors of a new UWC, operators, and the declaring authority. It explains; the specification governs. Start at the index; for a guided walk from a blank file to a declared UWC, follow the tutorial. Its counterpart for agents is the agent-facing page.

Where ordering enters: SR4 and SR5 order conflicting records; a yardstick refines the order, never the outcome. (diagram page.)

Purpose

How to write a yardstick: a UWC's own rule for ordering records, and the rules that keep it from bending the strike skeleton.

Explains: TPS 0.4.0 (declared final on 2026-09-30 at revision 7, and in force; it follows TPS 0.3.0, declared final on 2026-09-28 at revision 6), whose sections 2.2 to 2.5 carry the zone schemas with the optional declared form, the ROLE field, the D variable and the structure check (records D92.1, D98.1, D99.1, D100.1, D103.1-D105.1, D106.1-D108.1, D132.1, D176.1, D177.1, D179.1 and D186.1); TPC-PY 0.1.0 (declared on 2026-09-28, tree digest a00161c1b321fd66abc591209007d46a7fa6290097835060e50f381426259043, conformed TPS 0.3.0; tpc_zone 0.5.0, tpc_units 0.1.1, tpc_tests 0.2.0, tpc_form 0.2.0, tpc_eom 0.1.0; schema 0.5.0) with check_draft 0.5.0, and TPC-PY 0.2.0 (declared on 2026-09-30; tree digest 2998ac4c24dff83bd047a691081b7d27bb25c9d26512bffe519f5c2b6ba127e2, conformed TPS 0.4.0; tpc_zone 0.5.1, tpc_units 0.1.2, tpc_tests 0.2.1, tpc_form 0.2.1, tpc_eom 0.2.0; schema 0.5.0) with check_draft 0.6.0; the yardstick evaluator, TPC-PY tpc_yardstick 0.1.0. Where this page and the specification differ, the specification governs.

What a yardstick is

When two standing records contradict each other, the strike rule keeps the one closer to the TFK and strikes the other. The framework's own measure of closeness is distance: first the number of assumptions a record rests on, then its number of derivation steps (SR4, SR5). A yardstick is a Measure Set entry that declares a finer order, or a different order inside a limiting case. It orders records; it never decides a contradiction itself. SR5 and SR7 do that, whatever the yardstick says (TPS 2.4, 4.4 and 4.5).

The form

Each yardstick is an object with three fields, all required:

NAME
an identifier, unique among the yardsticks.
KEY
a list of terms. Two records are compared term by term, first to last; the first term that differs decides, and the lower value is closer.
LIMITING
a list of limiting cases, each {"DOMAIN": ..., "KEY": [...]}. Inside that DOMAIN, and only there, its KEY replaces the main KEY. Write [] when there are none.

The terms

Term Value on a record
SR1 0 if the record passes SR1 (it does not contradict the TFK), 1 if it fails
A the number of distinct assumptions in the record's closure
S the record's number of derivation steps
FIELD:name a numeric field of the record (not usable yet; see below)
NEG:term the term with its sign reversed
WSUM:c*atom;... a weighted sum; each weight c is a TMS constant by name; each atom (A, S or FIELD:name) at most once

A term contains no spaces.

The rules a key must meet

  1. It begins with SR1, and SR1 appears nowhere else. So every record that contradicts the TFK ranks below every record that does not (SR9 C1).
  2. Every term parses, and every weight is a TMS constant (SR9 C5).
  3. Adding an assumption never makes a record closer. The first term whose value moves with A must move up with it. A key that prefers records with more assumptions is refused (SR9 C2). A limiting key is exempt inside its declared DOMAIN, as SR9 C2 allows.
  4. You cannot declare how contradictions are resolved. That is fixed by SR5 and SR7 (SR9 C4).

The second line: the SR9 harness

A yardstick that passes the key rules is then run on the synthetic record suite, a fixed set of test records, and SR9 C1, C2 and C4 are checked on it. The checker prints one line per yardstick:

YARDSTICK combined_distance: C1 pass, C2 pass, C4 pass

For a well-formed yardstick without FIELD terms the key rules already guarantee all three, so this line confirms them. If it ever shows FAIL on a yardstick the key rules accepted, that is a defect in the checker, not in your draft: report it to the operator.

FIELD terms

A FIELD term names a numeric field of a register record, read from a closed field table. The table holds one field, U_C: FIELD:U_C is a record's combined standard uncertainty, an L record's read as 0; any other FIELD name is refused (TPS 2.4.8). The checker of TPC-PY 0.1.0 still reports REFUSED, FIELD terms await the record field schema (C-16) for every FIELD term, and the draft does not pass. The checker of TPC-PY 0.2.0, declared on 2026-09-30, retires that message. It builds the field table over its synthetic record suite, an L record reading 0, and runs a yardstick with FIELD:U_C through the SR9 checks like any other; a FIELD other than U_C it reports REFUSED, FIELD name is not in the field table. With TPC-PY 0.1.0's checker, leave FIELD terms out of a draft you want it to pass.

Non-goals

A pass on the synthetic suite is evidence, not proof: the suite is finite (TPS 4.5).

Worked example

The spring UWC's yardstick, with constants w_a = "1" and w_s = "0.5":

{
  "NAME": "combined_distance",
  "KEY": ["SR1", "WSUM:w_a*A;w_s*S", "S"],
  "LIMITING": []
}

It ranks first on SR1, then on a + 0.5 s, then on s. Take two records that both pass SR1. The first rests on one assumption and takes three steps: its key is [0, 2.5, 3]. The second rests on two assumptions and takes one step: its key is [0, 2.5, 1]. They tie on the weighted sum, and the step count breaks the tie: the second is closer.

A limiting case, which reverses the priority of steps and assumptions only for small displacements:

{
  "NAME": "small_domain_first",
  "KEY": ["SR1", "A", "S"],
  "LIMITING": [
    {
      "DOMAIN": "|x| < x_max / 10",
      "KEY": ["SR1", "S", "A"]
    }
  ]
}

Two keys that are refused, with the checker's messages:

[
  {
    "NAME": "no_sr1",
    "KEY": ["WSUM:w_a*A;w_s*S", "S"],
    "LIMITING": []
  },
  {
    "NAME": "prefers_more",
    "KEY": ["SR1", "NEG:A"],
    "LIMITING": []
  }
]

YARDSTICK:no_sr1: KEY must begin with SR1
YARDSTICK:prefers_more: KEY ranks a record higher when an assumption is added (SR9 C2)

Governing sections: TPS 2.4, 4.4 and 4.5.


Previous: The Measure Set. Next: Text and numbers.