docs/phenomenon-ledger.md
The phenomenon ledger
Phenomena, not domains. Each is scored twice and independently: can the ontology express it, and does the canonicalization preserve it? Conflating the two is how a fixable defect gets promoted into a demand for new primitives.
All rows marked measured were run against core with correctly typed Fact
fixtures and real urn() subjects.
The ledger
| # | Phenomenon | Encoding in the existing vocabulary | Ontology | Canonicalization | Evidence |
|---|---|---|---|---|---|
| 1 | appearance | first fact about a subject, at validAt |
✅ | ✅ | measured |
| 2 | disappearance | condition: unavailable, or measure = 0 |
✅ | ❌ | measured |
| 3 | transformation | successive condition/measure on one subject |
✅ | ❌ | measured |
| 4 | replacement | A unavailable, B takes the placement |
✅ | ✅ | measured |
| 5 | ownership transfer | exchange: from → to |
✅ | ❌ | measured |
| 6 | accumulation | rising measure series |
✅ | ❌ | measured |
| 7 | depletion | falling measure series |
✅ | ❌ | measured |
| 8 | conservation | sum over measure across subjects |
✅ | ⚠️ | measured |
| 9 | split | a → b, a → c |
✅ | ✅ | measured |
| 10 | merge | b → a, c → a |
✅ | ✅ | measured |
| 11 | diffusion | chained exchanges over distinct pairs | ✅ | ⚠️ | measured |
| 12 | synchronization | two subjects' series moving together | ✅ | ❌ | inferred from 6/7 |
| 13 | oscillation | measure up then down |
✅ | ❌ | measured |
Ontology: 13/13. Canonicalization: 4 pass, 2 accidental, 7 fail.
The measurements
Time-varying quantities, read through three lenses:
oscillation t0[x=1] t1[x=1] t2[x=1] (should be 1,5,1)
accumulation t0[x=1] t1[x=1] t2[x=1] (should be 1,2,3)
depletion t0[x=9] t1[x=9] t2[x=9] (should be 9,4,0)
conservation t0[x=10,y=0] t1[x=10,y=0] t2[x=10,y=0] (should be 10,0 → 4,6)
Every series is flat. The world does not change, at any lens, ever.
Subject-varying phenomena, same harness:
split (a->b, a->c) 2/2 survive
merge (b->a, c->a) 2/2 survive
replacement (A unavail, B active) 2/2 survive
diffusion (a->b then b->c) 2/2 survive
The partition, and why it is the important result
The pass/fail line is not arbitrary. It falls exactly where the identity law predicts:
Phenomena that vary in the subject-tuple survive. Phenomena that vary only in time are erased.
factIdentity omits validAt from every family. So anything distinguished by
who it is about keeps its distinctness; anything distinguished only by when
collapses to its first-encountered observation. Split, merge, replacement and
diffusion pass not because they are handled, but because they happen to differ in
a field identity retained.
This is a prediction the ledger could have falsified and did not. A phenomenon failing on the subject-varying side, or passing on the time-varying side, would have broken the law. None did.
The two ⚠️ rows are false passes
- Conservation appears to hold:
x + y = 10at every lens. It holds because nothing moved. A frozen world conserves everything trivially. An invariant that passes because the state is unreachable is not evidence the invariant is enforced — and this is the most dangerous row in the table, because it reports success in exactly the register a reviewer would trust. - Diffusion survives only because each hop used a distinct pair. A diffusion that revisits a pair — the normal case — collapses under row 5.
What this does not show
The ledger scores expressibility and preservation. It does not score whether any projection renders these phenomena, and no row should be read as "the world displays change". Rows 9–11 pass at the fact layer alone.
It is also not exhaustive. Thirteen phenomena were chosen before measurement; they are not a proof that a fourteenth is covered, and the Enumeration Lemma applies here as everywhere — a boundary derived from what was tested bounds nothing about what was not.
Classification
| Verdict | |
|---|---|
| Ontology | survived. 13/13 expressible with no new primitive, no new fact family, and no use of Window. |
| Canonicalization | falsified. 7 outright failures and 2 false passes, all traced to a single omission in factIdentity. |
One defect, one function, thirteen phenomena downstream. This is a
canonicalization failure and must not be recorded as an ontology failure — the
vocabulary already carries validAt on every fact; the identity function
discards it.
Unfixed and recorded, per standing instruction. The skew tolerance question in identity-law.md is the open decision blocking the change.