docs/external-calibration.md
Independent calibration, modality, and the projection grammar
The typing instrument tested against concepts it was not derived from, modality attacked, and the grammar built and executed.
Outcome: the instrument matches three established results in philosophy of
biology it was not shown, and fails one case — configuration — because
warrant is not one of its three components. The failure is recorded and not
fixed, per the standing instruction. Modality is overloaded: at least four
distinct modal logics, and convention is not one of them. The grammar rejects
eight classes of encoding across three domains, tests/projection-grammar.test.ts,
11 tests.
Task 1 — external calibration
Sixteen concepts, four domains, none of them the source of the instrument.
Mathematics
| Reduction | Alg | Role | Layer | Verdict | Correct? |
|---|---|---|---|---|---|
| function → relation | ✓ | ✓ | ✓ | accept | ✓ a function is a functional relation |
| equivalence relation → partition | ✓ | ✓ | ✓ | accept | ✓ genuinely the same object |
| equivalence relation → tolerance relation | ✗ | ✓ | ✓ | reject | ✓ transitivity differs |
| vector space → set | ✗ | ✓ | ✓ | reject | ✓ structure is lost |
Physics
| Reduction | Alg | Role | Layer | Verdict | Correct? |
|---|---|---|---|---|---|
| force → field | ✓ | ✗ | ✓ | reject | ✓ a field gives rise to forces; it is not one |
| mass → number | ✓ | ✗ | ✗ | reject | ✓ a property is not a value |
| probability → measure | ✓ | ✗ | ambiguous | flagged | ✓ — see below |
The probability row is the interesting one: the instrument cannot assign a layer, because probability is epistemic under one reading and ontological under another. It independently flags the same concept that Task 2 and semantic-typing.md found contested. Flagging rather than deciding is correct behaviour, not a failure.
Biology — the strongest evidence
| Reduction | Alg | Role | Layer | Verdict | Correct? |
|---|---|---|---|---|---|
| species → set of organisms | ✓ | ✗ | ✓ | reject | ✓ |
| adaptation → trait | ✓ | ✗ | ✓ | reject | ✓ |
| capability → state | ✓ | ✗ | ✓ | reject | ✓ |
| organism → collection of cells | ✓ | ✗ | ✓ | reject | ✓ |
All four match established positions in philosophy of biology that the instrument was never shown. Species are not sets — a species persists through complete membership turnover, which is the Ship-of-Theseus structure the subject round found for teams and nations. Adaptation carries a historical role a trait does not: a trait that happens to be useful was not thereby selected for.
And biological capability produces the same verdict as organisational capability, from a different domain, on the same role mismatch — modal versus actual. That is the retraction reproduced independently.
Software — where it fails
| Reduction | Alg | Role | Layer | Verdict | Correct? |
|---|---|---|---|---|---|
| interface → type | ✓ | ✓ | ✓ | accept | ✓ |
| implementation → interface | ✓ | ✗ | ✓ | reject | ✓ |
| permission → state | ✓ | ✗ | ✓ | reject | ✓ deontic, not actual |
| configuration → state | ✓ | ✓ | ✓ | accept | ✗ WRONG |
Configuration is a convention-warranted state. Its algebra, role and layer
all match an evidence-warranted state, so the instrument accepts a reduction that
discards the thing that matters — a configured threshold is stipulated, not
measured, and by semantic-typing.md that difference is
exactly what nothing downstream can detect.
The instrument is blind to warrant, because warrant is not one of its three components.
Not fixed. Adding warrant as a fourth component is the obvious repair and it is precisely the tuning-against-observed-failure that was forbidden. The instrument's calibration is now: 15 of 16 correct, one systematic blind spot, one correct flag. A repair should be justified from derivation, not from this table.
Also worth recording: permission → state is rejected, and permission is
deontic modality — a fourth independently-sourced instance of the capability
shape, alongside biological capability, organisational capability, and
dependence.
Task 2 — modality is overloaded
Six candidates, tested by which modal axioms hold. That is the discriminator algebra alone cannot supply, and it is decisive.
| Modality | □p → p? |
Closed under consequence? | Layer |
|---|---|---|---|
| logical necessity | yes | yes | semantics |
| physical possibility | yes | yes | ontology |
| legal / deontic | no | yes | convention |
| computational feasibility | yes | no | computation |
| statistical probability | graded | — | contested |
| human intention | no | no | — |
Two axioms separate four groups. What is legally required is frequently not
actual — the deontic T failure is the whole reason law exists. What is provable
is not thereby feasible: computational modality is bounded by resources, so it is
not closed under logical consequence. Intention fails both — intending does not
achieve, and one does not intend every consequence of what one intends.
"Possible" is an overloaded word, not one semantic role. Four distinct logics, five layers.
The typing test says the same thing from the other side — six items, five layers, so not one concept. Two independent routes, same verdict, and the modal-logic route was not derived from this investigation.
Modal force and warrant separate cleanly
They vary independently in both directions: "it is physically possible that X" can be asserted on weak evidence (strong modal claim, weak warrant), and "it is certain that X is merely possible" is a strong warrant about a weak modality. So semantic-typing.md's repair holds.
But the repair was under-specified. It added modal force to the relation
tuple as a single field. It must be a pair:
relation = (domain, codomain, algebra, layer, (modality kind, force))
Convention is not a modality — a correction
Convention was listed among the modal appearances. It does not belong.
Modality concerns what could or must be. Convention constitutes — it does not constrain possibility, it creates a category. By semantic-typing.md's criterion, asserting makes it so, which no modality does.
So of the four appearances — capability, dependence, probability, convention — the first three are modal and distinct from one another (dispositional, counterfactual, graded), and the fourth is not modal at all. Four appearances, three modalities, one misfiling.
Task 3 — the projection grammar
Built: src/lib/grammar/index.ts. Tested: tests/projection-grammar.test.ts, 11
tests, all passing. Eight rejection rules, each citing the finding it derives
from.
| Rule | Rejects | Derived from |
|---|---|---|
| R1 order-invented | categorical → ordered channel | geometry is derived, never chosen |
| R2 proximity-invented | categorical → spatial, no metric | metric.ts |
| R3 order-destroyed | ordered → categorical channel | projection conservation |
| R4 direction-invented | symmetric → arrow | separation-audit.md |
| R5 persistence-mismatch | occurrence → persistent mark | minimal-ontology.md |
| R6 channel-overloaded | two meanings, one channel | visual channel separation |
| R7 constraint-as-state | a limit drawn like a level | core/fact.ts |
| R8 warrant-unencoded | convention with no warrant channel | semantic-typing.md |
Three rules reproduce decisions already in this codebase — R2 the coupling metric, R7 the "a limit that nothing enforces may not be drawn as a capacity meter" comment, R6 the channel separation work. The grammar was derived from the ontology and lands on choices made earlier for local reasons. That is the evidence it is describing the system rather than decorating it.
It made a prediction, and the prediction is uncomfortable
If persistence must match, then of ten channels exactly one can carry a zero-extent truth. The test asserts it and it holds:
occurrences are drawable on 1/10 channels —
the renderer's vocabulary for events is one channel wide
That was not built in; it falls out. And it says something about the renderer:
this system is far better equipped to draw states than events, which is the
visual counterpart of the finding that exchange is the only occurrence family
and cannot express a unary occurrence.
And the grammar separated a conflation without being told
shipment was found in truth-kinds.md to name two truths — a
parcel and an act. The grammar takes them apart from their types alone: the
location is a state and takes position; the dispatch is an occurrence and is
rejected from position, admitted only to flash.
Standing
| Question | Answer |
|---|---|
| Does the instrument survive external calibration? | 15/16, with one systematic blind spot |
| What is the blind spot? | warrant — configuration is a stipulated state and types identically to a measured one |
| Was it fixed? | no — that is tuning against observed failure |
| Is "possible" one role? | no — four modal logics, separated by two axioms |
| Is convention modal? | no — constitutive, and it was misfiled |
| Does typing predict visual validity? | yes — 8 rules, 3 domains, 11 tests, 3 rules reproducing existing decisions |
What is still not established
- The calibration set is 16 concepts chosen by one party, and the reductions attempted were ones I selected. A set chosen adversarially would be stronger.
- The biology results agree with established positions, but I supplied both the reduction and the judgement of correctness. That is weaker than an independent adjudicator.
- The grammar is tested on encodings I wrote. It has not been run against
WorldScene, which is the real test and would likely find violations — R6 in particular, given thespan.styleoverload recorded as unresolved. - The
modality kindrefinement is derived and not implemented.
npm test 154 → 165, all passing.