The Principia Machina/Inputs/Refusal messages: Difference between revisions
DeltaS Zero (talk | contribs) Post-TPC-PY page batch B2 (S90, S130): HF3 (help set, revision 7); SWEEP (SW-1, SW-2, SW-3) |
m 1 revision imported |
(No difference)
| |
Revision as of 02:11, 30 September 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. Agents read the agent-facing page instead.
Purpose
Every message the draft checks can return, what it means, and how to fix it.
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); 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 (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 messages as TPC-PY (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) and check_draft 0.5.0 print them; TPX will print the same problems. Where this page and the specification differ, the specification governs.
How to read a message
Each problem is one line. It begins with the component it is about, so you can find it in your file:
LAW:EOM_X,CONSTANT:x_maxand so on: a TPK entry, by kind and name.ENV:,SIGNATURE:,TRANSFORMATION:,ENTRY:: parts of the TrM.PARAMETERS,CONSTANT:,YARDSTICK:: parts of the TMS.TPK:,TrM:,TMS:: the zone as a whole.IC1:toIC4(c):,IC4(a):andCODOMAIN:: the isomorphism checks, which name the entry, signature or quantity inside the message.- A message ending (T2), (T3), (T4), (T5 b), (T5 c) or (T6) comes from a kernel test.
- A line beginning
inspectionis not a problem: it names a check that stays with the declaring authority because an entry carries no declared form. - A line beginning
STRUCTUREis not a problem either: it reports the structure check, which refuses nothing (see Lines that report the run).
A name that cannot be read is shown as ?. All problems in a zone are reported together, sorted alphabetically, each once, so fix them all before you run the check again. Any character the text rules refuse is shown in a message as <U+XXXX>, never as itself, so a message cannot carry hidden text.
In the tables, C is the component, F a field name, N a name, and other italic letters the value quoted.
The file
| Message | Meaning | Fix |
|---|---|---|
DRAFT: cannot be read: duplicate key K |
the key appears twice in one object | delete one of the two; decide which value you meant |
DRAFT: cannot be read: reason |
the file is not valid JSON; the reason gives the line and column | fix the syntax at that place: a missing comma, quote or bracket is usual |
DRAFT: cannot be read: the draft must be one JSON object |
the file holds a list or a single value | wrap the zones in one object: {"TPK": ..., "TrM": ..., "TMS": ...}
|
DRAFT: unknown zone Z |
a top-level key other than TPK, TrM or TMS | remove it, or correct its spelling (case matters) |
Z MISSING (not checked) |
the zone is not in the file | none needed while you work zone by zone; all three must be present to pass |
Any entry, in any zone
| Message | Meaning | Fix |
|---|---|---|
C: missing field F |
a required field is absent | add it; the zone pages list the required fields |
C: unknown field F |
the kind has no such field | remove it, or correct its spelling |
C: mutable field F is not permitted in the TFK |
a status field (STATE, SCRUTINY, RIDER, NOTE, CHECKS_OWED, RECORDS) | remove it; status lives in register records |
C: field F has the wrong type |
a string where a list or number belongs, or the reverse | decimals in quotes, N_X and S_MAX without, REFS, OVER, BEARS and KEY as lists |
C: field F contains disallowed character U+XXXX |
an invisible or control character | retype the text; see Text and numbers |
C: field F has duplicate entries |
a name appears twice in REFS, OVER or BEARS | list each name once |
C: DIMENSION D is not a dimension |
the dimension does not parse | write base and exponent with a space between tokens: L1 T-1
|
C: DIMENSION D: an exponent is out of range |
repeated bases add up to an exponent beyond 9999 | write the dimension plainly, each base once (TPS 2.5.12) |
C: UNIT U is not a unit |
the unit does not parse: a slash, a caret, two spaces, or an exponent of five digits | symbols with exponents, single spaces: kg m s-2
|
C: UNIT U: X is not a unit symbol |
a symbol outside the SI list | use an SI symbol; see Text and numbers |
C: UNIT U: X takes no prefix |
a prefix on min, h, d, ha, au, deg or arcmin | remove the prefix, or use the SI unit: ks for a thousand seconds
|
C: UNIT U: X is refused, reason |
degC, Da, Np, B or dB | use K for a temperature difference; state other values in an accepted unit |
C: UNIT U: an exponent is out of range |
an exponent beyond 9999, after repeated symbols merge | write the unit plainly |
C: F V is not a decimal |
VALUE, UNCERTAINTY or K does not parse | digits, an optional point and fraction, an optional exponent; no commas or spaces |
C: NAME N is not an identifier |
a name with a space, a hyphen, a non-ASCII letter or a leading digit | letters, digits and underscore, not starting with a digit |
part is not a list |
a kind or part that must be a list is something else | put its entries in [ ]
|
part: entry is not an object |
a list member is not { } |
write each entry as an object |
TPK: zone is not an object (also TrM, TMS) |
the zone is a list or a value | write the zone as { }
|
The declared forms
An EQUATION on a LAW, a CONDITION on a BOUNDARY, and FORM and IMAGE_FORM on a SIGNATURE are optional (TPS 2.2). Where one is present, these can come back. The first four are part of T1 and stop the kernel's run like any T1 problem.
| Message | Meaning | Fix |
|---|---|---|
C: F does not parse: reason |
the form breaks the grammar: an unknown function, two operators in a row, a chained ^, no = in an EQUATION, D in a CONDITION, and so on; the reason gives the position |
rewrite it in the grammar of TPS 2.2: a*(-b), x^(-1), (a^2)^3
|
C: F does not parse: the form is longer than 4096 code points; ... more than 64 nested parentheses at P; ... an integer of more than 4 digits at P; ... a computed exponent beyond 9999 at P |
the form is past a bound of TPS 2.2.13: its length, its nesting, the digits of an exponent or an order, or an exponent that nested powers and roots compose | shorten the form, open fewer parentheses, or write a smaller exponent or order |
C: F names N, which is not in REFS |
the form uses a name the entry's REFS does not list | add it to REFS, or correct the form |
C: REFS N is not named in F |
REFS lists a name the form does not use (the variable of a derivative counts as used) | remove it from REFS, or correct the form |
SIGNATURE:N: FORM requires IMAGE_FORM (or the reverse) |
only one of the pair is present | give both, or neither |
SIGNATURE:N: FORM names X, which is not in OVER; OVER X is not named in FORM; IMAGE_FORM names Q, which is not in the ENVIRONMENT INVENTORY |
the signature's form and its OVER, or its image and the inventory, disagree | make them agree |
LAW:N: EQUATION sides have dimensions D1 and D2 (T4) |
the two sides of the law are not the same kind of quantity | find the slip: a factor too many or too few |
LAW:N: EQUATION reason (T4) |
another dimensional fault: + or - joining two dimensions, a function of a quantity that is not dimensionless, division by a zero, or a dimension exponent beyond 9999 (an exponent is out of range) |
correct the equation |
BOUNDARY:N: CONDITION uses operation with no guard guard (T6) |
a partial operation, such as / on x_max, without the conjunct that keeps it defined |
add the guard as an and beside the comparison, or rewrite without the operation
|
BOUNDARY:N: CONDITION uses tan on E, which is not total (T6) |
tan is never total in a predicate | rewrite without tan |
BOUNDARY:N: CONDITION reason (T6) |
a comparison between two different dimensions, or another dimensional fault, such as a dimension exponent beyond 9999 (an exponent is out of range) |
make both sides of each comparison the same kind of quantity |
No check compares a form with its prose. A STATEMENT that says one thing and an EQUATION that says another pass every message here; the declaring authority reads for it.
The Prime Kernel
| Message | Meaning | Fix |
|---|---|---|
TPK: unknown kind K |
a key other than the six kinds and PARAMETERS | use DOF (degree of freedom), CONSTANT, LAW, ASSUMPTION, CONSTRAINT or BOUNDARY, or PARAMETERS |
C: ROLE R is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION |
a LAW's ROLE outside the list, or written with a space or in lower case. A LAW with no ROLE gets C: missing field ROLE |
give the law a ROLE from the list, in capitals, with no spaces (TPS 2.2.6) |
C: ROLE EOM(N) names N, which is not a DOF |
EOM names a constant, a law or a name that does not resolve | name a DOF, or choose another ROLE |
DOF:D: ROLE R is not INPUT |
a DOF carries a ROLE other than INPUT | write INPUT, or leave ROLE out |
LAW:N: EQUATION's D variable S is not a DOF |
the variable a derivative is taken by is a constant, or is not declared | declare it as a DOF (TPS 2.2.13) |
LAW:N: EQUATION's D variable S is the TARGET of CONSTRAINT:C |
a constraint fixes or removes the variable a derivative is taken by | take it out of the constraint, or take the derivative by another DOF |
TPK: D_VARIABLES is ONE (ONE when absent), but the forms use D variables S1 (laws), S2 (laws) |
the laws take derivatives by two or more variables, and the kernel does not say it may | use one variable, or write "PARAMETERS": {"D_VARIABLES": "SEVERAL"}
|
TPK PARAMETERS: D_VARIABLES V is not ONE or SEVERAL |
an unknown value | use ONE or SEVERAL, or leave PARAMETERS out |
TPK: PARAMETERS is not an object |
PARAMETERS is a list or a value | write it as { } with its one field
|
TPK: duplicate name N |
two entries share a name, perhaps in different kinds | rename one; names are unique across the TPK |
C: cites itself |
an entry's REFS or TARGET names the entry | cite the DOF or constants instead |
C: REFS R does not resolve |
no entry has that name | correct the name, or add the missing DOF or constant |
C: REFS R is a KIND, not a DOF or CONSTANT |
REFS names a law, assumption, constraint or boundary | cite only DOF and constants |
C: TARGET T is not a DOF |
a constraint acts on something other than a DOF | name the DOF it removes or fixes |
C: ACTION A is not REMOVE or FIX |
an unknown action | use REMOVE or FIX, in capitals |
C: FIX requires VALUE |
a FIX constraint without the value it fixes | add VALUE |
C: FIX requires UNIT |
a FIX constraint without the unit of its value | add UNIT, with the TARGET's dimension |
C: REMOVE forbids VALUE |
a REMOVE constraint with a value | remove VALUE, or change the action to FIX |
C: REMOVE forbids UNIT |
a REMOVE constraint with a unit | remove UNIT, or change the action to FIX |
C: UNIT U has dimension D1, not D2 |
a constant's unit measures something else | use a unit of the constant's dimension |
C: UNIT U has dimension D1, not D2 of TARGET T |
a FIX constraint's unit does not fit its DOF | use a unit of the DOF's dimension |
C: VALUE requires UNIT |
a constant with a value and no unit | add UNIT |
C: UNIT requires VALUE |
a constant with a unit and no value | add VALUE, or remove UNIT |
C: UNCERTAINTY requires VALUE |
an uncertainty without a value | add VALUE |
C: UNCERTAINTY U is negative |
a negative uncertainty | state its magnitude |
The Translation Manifold
| Message | Meaning | Fix |
|---|---|---|
TrM: missing part P / TrM: unknown part P |
HEADER or ENTRIES absent, or an extra part | the TrM has exactly HEADER and ENTRIES |
TrM: HEADER is not an object |
HEADER is a list or a value | write it as { } with its three parts
|
TrM HEADER: missing part P / unknown part P |
a header part absent, or an extra one | the header has ENVIRONMENT_INVENTORY, SIGNATURE and TRANSFORMATIONS |
ENV:Q: ENVIRONMENT_QUANTITY Q is not an identifier |
an inventory name that is not an identifier | letters, digits and underscore |
TrM: duplicate environment quantity Q |
an inventory name appears twice | list each quantity once |
SIGNATURE:N: OVER D is not a TPK DOF |
a signature acts on a name that is not a kernel DOF | name kernel DOF only |
TrM: duplicate signature name N (also transformation, entry) |
two members share a name | rename one |
ENTRY:N: DOF D is not a TPK DOF |
the entry identifies something the kernel does not have | name a kernel DOF |
ENTRY:N: ENVIRONMENT_QUANTITY Q is not in the ENVIRONMENT INVENTORY |
the entry names a quantity the header does not list | add it to the inventory, or correct the name |
ENTRY:N: DOMAIN is empty (also FALSIFIER) |
the field is blank or only spaces | state it; every entry needs both |
ENTRY:N: FALSIFIER_CLASS F0 is inadmissible |
an entry declares no falsifier | state a falsifier and its class |
ENTRY:N: FALSIFIER_CLASS X is not one of F1 F2 F3 |
an unknown class | use F1, F2 or F3 |
ENTRY:N: BEARS B is not a TPK LAW or CONSTRAINT |
BEARS names a DOF, constant, assumption or boundary, or an unknown name | name kernel laws and constraints only |
The Measure Set
| Message | Meaning | Fix |
|---|---|---|
TMS: missing part PARAMETERS / TMS: unknown part P |
PARAMETERS absent, or an extra part | the TMS has PARAMETERS and, if needed, CONSTANTS and YARDSTICKS |
TMS: PARAMETERS is not an object |
PARAMETERS is a list or a value | write it as { }
|
PARAMETERS: STEP_CONVENTION is empty |
the convention is blank | state what counts as one step |
PARAMETERS: K V is not a positive decimal in double range |
K is zero, negative, or too small or too large for a double | give a positive decimal of ordinary size |
PARAMETERS: N_X must be at least n / at most n |
N_X outside its range (zone schemas 4.2) | choose a value inside it |
PARAMETERS: S_MAX must be at least n / at most n |
S_MAX outside its range | choose a value inside it |
PARAMETERS: IC2_POLICY V is not GAP or REJECT |
an unknown policy | use GAP or REJECT, or leave it out |
PARAMETERS: PROMOTION_FLOOR V is not F1, F2 or F3 |
an unknown floor | use F1, F2 or F3, or leave it out |
PARAMETERS: STRUCTURE_CHECK V is not ON or OFF |
an unknown switch value | use ON or OFF, or leave it out (ON) |
TMS: duplicate constant name N (also yardstick) |
two members share a name | rename one |
The kernel tests
T2 and T5 run as the kernel is entered, once it passes T1, and T4 and T6 with them where forms are declared (above); T3 runs at the final pass, over the constraints and over the laws.
| Message | Meaning | Fix |
|---|---|---|
ASSUMPTION:N: PROPOSITION joins claims with "W" (T2) |
the proposition is joined at its top level by and, but, whereas or as well as (any case) | split it into one assumption per claim; if the word does not join claims, rephrase: "x lies between 0 and 1" becomes "0 < x < 1" |
ASSUMPTION:N: PROPOSITION joins claims with "&" (T2) |
an ampersand at top level; the logical-and sign gives the same line with U+2227 in place of "&" | split it into one assumption per claim |
ASSUMPTION:N: PROPOSITION has a semicolon (T2) |
a semicolon at top level | split it, or put the second part in brackets if it only qualifies the first |
ASSUMPTION:N: PROPOSITION has more than one sentence (T2) |
a full stop, ! or ? followed by a space and a capital letter; also after an abbreviation such as "e.g." | one sentence per assumption; write "for example" for "e.g." before a capital |
ASSUMPTION:N: PROPOSITION is a list (T2) |
a new line beginning with -, *, +, a bullet or a number | one assumption per list item |
DOF:D: named by no LAW (T5 c) |
no law's REFS names the DOF, so it is idle | add the law that governs it, or delete the DOF |
CONSTRAINT:N: TARGET T is named by no LAW, so no law leaves it free (T5 b) |
the constraint acts on a DOF no law uses | correct the TARGET, or add the law |
CONSTRAINT:N1 and CONSTRAINT:N2: T is both removed and fixed (T3) |
one constraint removes the DOF and another fixes it | keep one of them |
CONSTRAINT:N1 and CONSTRAINT:N2: T fixed at V1 U1 and at V2 U2 (T3) |
two FIX constraints give one DOF different values, compared in SI | keep one value |
CONSTRAINT:N1 and CONSTRAINT:N2: the two FIX values of T cannot be compared: units of different kind: K1 and K2 (T3) |
the units have one dimension and a different kind, such as Hz and rad s-1 | write both values in units of one kind, or keep one constraint |
CONSTRAINT:N1 and CONSTRAINT:N2: the two FIX values of T cannot be compared (T3) |
a value too large or too small to convert | write the values at ordinary size, or keep one constraint |
LAW:N and CONSTRAINT:C: N evaluates V1 = V2 under the fixed values (T3) |
every name in the law has a value - a constant with a VALUE, or a DOF under a FIX - and the law, evaluated in SI, is false | the law and the fixed values contradict each other: correct the law, the constant or the constraint; often a force is missing (see tutorial step 6) |
LAW:N: N evaluates V1 = V2 under the declared values (T3) |
the same, with only constants' values | correct the law or the constants |
LAW:N1 and LAW:N2: the left side L is equated to R1 and to R2 (T3) |
two laws give one left side, as written, two different right sides | keep one law, or combine them |
LAW:N: the two sides of EQUATION cannot be compared: units of different kind: K1 and K2 (T3) |
the values have one dimension and a different kind, such as Hz and rad s-1 | write the values in units of one kind |
LAW:N: EQUATION cannot be evaluated ...: reason (T3) |
the evaluation fails: a division by zero, ln or sqrt outside its domain, a zero under a negative exponent (0 under a negative exponent), a kind exponent beyond 9999 (a kind exponent is out of range), or a result that is not finite |
correct the law or the values |
T3: S_MAX is not a declared depth of at least 1 |
the Measure Set gives T3 no depth | declare S_MAX in PARAMETERS |
The isomorphism checks
They run as the manifold is entered, once it and the kernel pass their structural checks. Every line but the untied-DOF line refuses the manifold.
| Message | Meaning | Fix |
|---|---|---|
IC1: environment quantity Q is identified by no entry |
the inventory lists a quantity no entry uses | add the entry that identifies it, or remove it from the inventory |
IC2: DOF D is untied |
no entry identifies the DOF. Not a problem: a named gap, held for the final pass | add an entry; or leave it, and IC2_POLICY decides at the final pass |
IC2: DOF D is untied and IC2_POLICY is REJECT |
the Measure Set refuses untied DOF | add the entry, or change the policy to GAP |
IC3: DOF D is identified with inequivalent quantities Q1, Q2 (entries) |
two entries tie one DOF to two different quantities | keep one entry for the DOF |
IC3: environment quantity Q is identified with DOF D1, D2 (entries) |
two entries tie one quantity to two DOF | keep one entry for the quantity |
IC4(b): ENTRY:N: DIMENSION D1 differs from DOF X's D2 |
the entry's dimension is not its DOF's | correct the entry's DIMENSION |
IC4(b): ENTRY:N: DIMENSION D1 differs from environment quantity Q's D2 |
the entry's dimension is not its quantity's | correct the entry's or the inventory's DIMENSION |
IC4(c): ENTRY:N: BEARS LAW:L, which names DOF D that no entry identifies |
the entry carries a law about a DOF with no entry | add an entry for that DOF, or stop bearing the law |
IC4(c): ENTRY:N: BEARS CONSTRAINT:C, whose TARGET T no entry identifies |
the entry carries a constraint on a DOF with no entry | add an entry for that DOF, or stop bearing the constraint |
IC4(a): SIGNATURE:N: FORM under the entries reads X, not IMAGE_FORM Y |
the signature's FORM, with each DOF replaced by the quantity its entry names, is not its IMAGE_FORM | correct the IMAGE_FORM, the FORM, or the entries' quantities |
IC4(a): SIGNATURE:N: DOF D untied, not decided |
a DOF of the FORM has no entry, so the signature cannot be read. Not a problem: IC2's gap | give the DOF an entry, or leave the gap to IC2_POLICY |
CODOMAIN: ENTRY:N identifies DOF D, which CONSTRAINT:C removes |
an entry for a DOF the kernel removes | delete the entry |
Lines that report the run
| Message | Meaning | Fix |
|---|---|---|
IC1-IC4 not run: the TPK does not pass T1 (or is missing) |
the checks need a kernel that passes T1 | fix the kernel first |
IC1-IC4 PASS with n untied DOF, held for the final pass |
the manifold passes; the named gaps follow on the next lines | nothing yet; IC2_POLICY decides at the final pass |
and n untied DOF, held for the final pass |
the same, after a refusal | fix the problems above; the gaps are settled at the final pass |
T4 NO FORM (by inspection), T6 NO FORM (by inspection) |
no law carries an EQUATION, or no boundary a CONDITION, so the test has nothing to read | nothing; the lines below list what the declaring authority inspects instead |
inspection LAW:N: no EQUATION; T4 and T3 over this law by inspection |
this law has no declared form | nothing, or add an EQUATION |
inspection BOUNDARY:N: no CONDITION; T6 totality by inspection |
this boundary has no declared form | nothing, or add a CONDITION |
inspection SIGNATURE:N: no FORM; IC4 (a) by inspection |
this signature has no declared pair | nothing, or add FORM and IMAGE_FORM |
FINAL not run: a zone is missing |
the final pass needs all three zones | add the missing zone |
FINAL not run: it runs once every check above passes |
an earlier check refused something | fix what is refused above |
FINAL T3 (constraints and laws) and IC2 PASS, admitted with n named gap(s) (IC2_POLICY GAP) |
the draft passes; the gaps stay named on the UWC | nothing; or add the missing entries |
STRUCTURE map (shown whatever STRUCTURE_CHECK says): analysis A; D variable S |
after a final pass that admits the draft, the structure check's EOM map: A is RUN, NO FORM or PDE; one line per DOF follows with its label and the law that gives it, then the index line and any closed or invariant laws | nothing; it refuses nothing (TPS 2.2.20) |
STRUCTURE findings: none; STRUCTURE findings: n |
the findings follow, one line each, CLASS: question, the class one of UNDER, OVER-EOM, OVER, CLOSED, ROLE MISMATCH, PROSE, NO FORM and PDE; with STRUCTURE_CHECK OFF the header says the gate lists none |
nothing is refused: answer the question for the declaring authority, or change the kernel |
STRUCTURE structurally regular; STRUCTURE Structure not Validated at Inception: reasons |
the label the candidate certificate's STRUCTURE line would carry; the reasons are CHECK OFF, or FINDINGS, PROSE, PDE and NO FORM | nothing; both labels are valid UWCs |
STRUCTURE not computed: reason |
the structure check could not read the draft | fix what the lines above refuse |
Yardsticks
The first eight come from the key rules at entry; the last three from running the yardstick on the synthetic record suite, which happens only when the Measure Set has passed.
| Message | Meaning | Fix |
|---|---|---|
YARDSTICK:N: KEY is empty |
the key has no terms | begin with SR1
|
YARDSTICK:N: KEY must begin with SR1 |
the first term is not SR1 | put SR1 first
|
YARDSTICK:N: SR1 may appear only as the first term |
SR1 appears again later | remove the later SR1 |
YARDSTICK:N: term t is not well-formed |
the term does not parse: a space, an unknown atom, an atom twice in one WSUM, or a missing * |
see the term table on Yardsticks |
YARDSTICK:N: constant c is not a TMS constant |
a weight names no constant | declare it under CONSTANTS |
YARDSTICK:N: KEY ranks a record higher when an assumption is added (SR9 C2) |
the key prefers records with more assumptions | make the first A-dependent term increase with A, or move the rule into a LIMITING case with its DOMAIN |
YARDSTICK:N LIMITING D: DOMAIN is empty |
a limiting case has a blank domain | state where it applies |
YARDSTICK:N: duplicate limiting DOMAIN D |
two limiting cases share a domain | merge them, or make the domains distinct |
YARDSTICK N: REFUSED, FIELD terms await the record field schema (C-16) |
the checker of the declared TPC-PY cannot run a FIELD term; the next TPC-PY retires this message (increment 12, proposed) | do not use FIELD terms until the checker runs them |
YARDSTICK N: REFUSED, FIELD name is not in the field table |
the next TPC-PY (increment 12, proposed): the field table holds U_C alone (TPS 2.4.8, revision 7, proposed) | write FIELD:U_C, or drop the term
|
YARDSTICK N: REFUSED, weight c is not a finite double |
a weight is too large to compute with | use a weight of ordinary size |
YARDSTICK N: REFUSED, a yardstick value is not finite |
the weights overflow on the test records | use smaller weights |
Environment modules
Environment modules are selected (D178.1) and not yet offered: the interaction question is part of TPX's new-container form, and the catalogue acts are the declaring authority's declarations (Inputs: environment modules; TPS 5.22). These come back from the calculator's module functions:
| Message | Meaning | Fix |
|---|---|---|
CLAIM ID V: not OFFERED when chosen (a new claim names the OFFERED version) |
the version you chose is not in the offer, and no copy-forward carried it | choose the offered version, or drop the module |
CLAIMS: A VA and B VB exclude each other (EXCLUDES) |
the two may not be combined, such as the two air-resistance modules | keep one of them |
BIND: slot S: N is not a KIND of the TPK; BIND: slot S: N has dimension D, not D2 |
a module slot is bound to a name that is not a DOF or constant of the dimension it needs; on the form each message follows CLAIM ID V: |
bind a name of the kind and dimension the slot names |
EXPAND: ID1 V1 and ID2 V2 both emit N, differently |
two modules write an entry of the same name differently, such as one constant with different values or units | keep one of the modules, or ask the declaring authority which is right |
On the declaring authority's declaration form the catalogue acts are refused as well: adding an ID that exists, a version of an unknown ID, an ID or version used before, a withdrawal without its reason, reinstating a withdrawn version, and a version whose test bindings fail the mechanical checks or that combines with an offered module to two kernels by order (guide 10). A draft that carries a withdrawn version is not refused: it reaches the gate with one question for the declaring authority.
The end of the output
When every check passes, the final pass included, the checker prints the structure check's lines, the four digests and the inspections still owed to the declaring authority, then:
Advisory result (TPC-PY: 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). TPX decides at the gate.
The exit status is 0 only when all three zones are present and every check passes. A named gap under IC2_POLICY GAP passes.
Non-goals
A clean result is not a certificate. It says the draft is well-formed under the checks that exist; the inspections listed at the end of a passing run are still owed, and TPX decides at the gate. No message ever says what the kernel leaves out: a force you did not declare is absent, not refused.
Worked example
The kernel below (examples/spring_mistakes_tpk.json) has six mistakes: a status field, a name with a space, a dimension without the space between its tokens, a REFS name that does not exist, a unit of time on a constraint that fixes a length, and a boundary REFS that follows the misspelled name. The declared forms report two of them more than once:
TPK REFUSED, 9 problems
ASSUMPTION:A_kpos: mutable field STATE is not permitted in the TFK
BOUNDARY:B_small: CONDITION names x_max, which is not in REFS
BOUNDARY:B_small: REFS x max is not named in CONDITION
CONSTANT:x max: NAME x max is not an identifier
CONSTRAINT:C_NOZ: UNIT s has dimension T1, not L1 of TARGET z
DOF:v: DIMENSION LT-1 is not a dimension
LAW:EOM_X: EQUATION names k_s, which is not in REFS
LAW:EOM_X: REFS k does not resolve
LAW:EOM_X: REFS k is not named in EQUATION
TrM MISSING (not checked)
TMS MISSING (not checked)
FINAL not run: a zone is missing
Advisory result (TPC-PY: 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). TPX decides at the gate.
The fixes are on tutorial step 6.
Governing sections: TPS 5.5, 2.2, 2.3 and 2.4; zone schemas 8.1.
Previous: Text and numbers. Next: The calculator.