docs/occurrence-falsification.md
Attacking occurrence
Occurrence attacked as constraint was. Two reductions attempted, one ledger of six failure classes across seven domains, and a correction to the previous document's conclusion about state.
⚠️ Superseded by minimal-ontology.md. State and Occurrence were subsequently found to derive from a persistence law, which is promoted in their place. The reductions refuted below stay refuted — occurrence is not a state — but the two kinds are the law's two values, not primitives.
Outcome: occurrence does not reduce. It is promoted. And the conditional on state is retracted — it rested on a category error this document names.
The three layers, kept apart
The previous document conflated them, and the conflation produced a wrong result.
| Layer | Question |
|---|---|
| Ontological kind | is there a truth of this kind that is not a truth of another kind? |
| Canonical representation | must it be stored, or may it be recomputed? |
| Computational derivation | can it be computed from the others? |
Derivability is a claim about computation. It is not a claim about kinds. Every argument below is filed against one layer and does not migrate.
Reduction A — occurrence as adjacent state difference
An occurrence is nothing but the difference between the state immediately before it and the state immediately after.
The falsification ledger
1. Occurrences with no lasting state — the state difference is zero.
| Domain | Case | State difference |
|---|---|---|
| software | git commit --allow-empty |
zero — identical tree hash |
| software | a cache hit; a health-check ping | zero |
| physics | elastic collision of indistinguishable particles | zero — momenta swap, configuration identical |
| physics | Rayleigh scattering — photon absorbed, re-emitted at the same frequency | zero — atom returns to ground state |
| biology | an action potential | zero — neuron returns to resting potential |
| biology | heartbeat | zero |
| chemistry | one turn of a catalytic cycle | zero — the catalyst is regenerated |
| astronomy | a planetary transit | zero — configuration recurs each period |
| economics | a wash trade | zero net position |
| transportation | a round trip | zero — vehicle returns to origin |
Every domain supplies one. These are not exotic edge cases: an empty commit, a health check and a heartbeat are ordinary.
The circularity objection, and why it is fatal to the reduction. A defender answers that the state does differ — a counter incremented, a log line appended. But a counter of heartbeats is a count of occurrences, and a log of commits is a list of occurrences. Any state that distinguishes before from after in these cases is defined in terms of the very thing being eliminated. The reduction presupposes its target.
2. Simultaneous occurrences — the state difference is a sum, and sums do not invert.
| Domain | Case | Collision |
|---|---|---|
| economics | two payments of $50 vs one of $100 | identical balance; distinct for reconciliation |
| software | two commits merged as one squash | identical tree |
| chemistry | two pathways yielding the same product | identical concentrations, different mechanism |
| physics | two superposed waves | the sum does not reveal the components |
| transportation | a→b and c→b of 5 each, vs one transfer of 10 |
identical net levels |
The map from occurrence-sets to state-differences is not injective. Not merely hard to invert — many-to-one, so no inverse exists.
3. Reversible occurrences — the sharpest case in the ledger.
| Domain | Case |
|---|---|
| chemistry | dynamic equilibrium A ⇌ B |
| software | commit, then revert |
| economics | buy, then sell |
| transportation | delivered, then returned |
| physics | a pendulum at the same phase |
Dynamic equilibrium is decisive. At equilibrium the forward and reverse reactions proceed continuously and at high rate, while every concentration stays constant. Two vessels with identical states can have turnover rates differing by orders of magnitude. That difference is physically real, measurable by isotopic labelling — and completely invisible in the state, at every instant, forever. This is not a case where state-difference loses information at the margin. There is no state difference at all, and the occurrences never stop.
4. Cyclic occurrences — state difference over a complete cycle is zero.
| Domain | Case |
|---|---|
| astronomy | an orbit — the body returns to the same position |
| biology | the cell cycle; circadian rhythm; the Krebs cycle |
| software | a scheduled CI run; a polling loop |
| physics | any oscillation |
Over one period the state returns exactly. Yet N cycles is not M cycles, and an orbital period is knowable only by counting returns. Counting requires countable things. This is the polling-sensor result from identity-axes.md reappearing from the other direction: there, repeated equal observations were one truth; here, repeated equal states are many. The two together show value-equality settles nothing on its own.
5. Idempotent occurrences — zero state difference by design.
| Domain | Case |
|---|---|
| software | PUT with the same body twice; mkdir -p; installing an installed package |
| economics | a duplicate payment rejected as duplicate |
| biology | re-vaccination of an immune subject |
The second occurrence has no state effect by construction. And the operational question "was the request never received, or received and a no-op?" is real, routinely asked, and unanswerable from state. That is the missing-versus-zero distinction, reappearing at the occurrence layer — arrived at now by a third independent route.
6. Causally related occurrences.
| Domain | Case |
|---|---|
| software | commit → CI run → deploy |
| chemistry | chain reaction: initiation, propagation, termination |
| biology | a signal transduction cascade |
| physics | photon emitted here, absorbed there |
| economics | payment → shipment |
Causation relates occurrences. Eliminate occurrences and the relata vanish — concentrations do not carry the chain structure that produced them.
This argument is weaker than the others and is graded accordingly. It shows that eliminating occurrences would make something else inexpressible, not that occurrence is itself irreducible. It is corroboration, not proof.
Verdict on Reduction A
Fails at the computational derivation layer: classes 1–5 exhibit occurrences with zero or non-invertible state difference. Fails at the ontological layer too, and by a bridge that must be stated explicitly:
An empty commit did happen. That is a fact about reality. It is not recoverable from any state, at any time, under any observational completeness. Therefore there exists a truth that no state expresses.
Non-derivability alone would be a computation result. Non-derivability plus the truth being real is an ontology result.
Reduction B — occurrence as a state of the record
"Commit
abc123exists in the repository" is a state. It is interpolable — it holds continuously once written. So occurrences are just states of logs.
This is stronger than Reduction A, because it is how systems actually work. It fails on three counts.
It reduces records, not occurrences. The commit's presence in the log is a state of the log. The committing was an occurrence. These have different subjects, and conflating them is the substitution defect: measuring the record and reporting the event.
It presupposes occurrences as subjects. "Commit abc123 exists" is a state
whose subject is an occurrence. truth-kinds.md already found
that occurrences become subjects — a commit acquires an author, a payment a
status. So the reduction requires occurrences to exist as entities in order to
name them. Same circularity as the counter, one level up.
It requires universal recording. Where nothing recorded, there is no state to appeal to — and the heartbeat, the transit and the equilibrium turnover mostly go unrecorded. The reduction therefore covers recorded occurrences only, which is the class defined by having a state, chosen after the fact.
Verdict on Reduction B
Fails. It is a canonical representation result wearing ontological clothing: recording an occurrence produces a state that stands in for it. True, useful, and not an elimination.
Retraction — state's survival is not conditional
truth-reduction.md concluded that "the size of the taxonomy is a function of observational completeness — one kind under complete observation, two under partial."
That is wrong, and wrong in exactly the way this document's first section warns against. Event sourcing shows state is computable from a complete occurrence history plus an origin. It does not show that "the temperature is 20°" is the same kind of truth as "the temperature changed by 2°." Those have different absent-evidence semantics, different separation, and answer different questions — the kind-identity criterion from truth-reduction.md §3, applied to itself.
Filed correctly:
| Layer | State |
|---|---|
| ontological kind | distinct — unconditionally |
| canonical representation | may be derived in a closed system with a known origin |
| computational derivation | derivable from complete occurrence history; not from partial |
The completeness condition governs the bottom two rows and does not reach the top one. I had let a derivation result set an ontology conclusion, which is the error the layer separation exists to prevent.
What the two kinds now look like
Symmetric ontologically, asymmetric in representation:
| state | occurrence | |
|---|---|---|
| ontological kind | distinct | distinct |
| must be stored? | no — derivable from complete occurrences | yes — derivable from nothing |
| absent evidence means | unchanged | did not happen |
| separation | on change of value | always |
The asymmetry is real and does not rank them. A derivable kind is not a lesser kind.
One representation-level unification, offered as such
Occurrence separation is the degenerate case of episode separation — the case where value-equality never implies truth-identity. So a single separation mechanism can serve both, parameterised by whether equal values may merge.
That is a canonical representation result. It does not merge the kinds: the parameter is exactly the fork, and every other law still reads it.
Where the taxonomy stands
| Kind | Verdict |
|---|---|
| occurrence | promoted. Two reductions attempted; six failure classes across seven domains; both reductions circular in the same way |
| state | promoted. Distinct ontologically and unconditionally; the earlier conditional is retracted |
| constraint | eliminated → state on a policy subject |
| relation | eliminated → state over a tuple |
| measurement | eliminated → evidence layer |
| capability | eliminated → state (least settled) |
Both reductions of occurrence failed by presupposing occurrences — one in a counter, one in a log entry's subject. A reduction that must name its target to perform the elimination is not an elimination. That is the sustained failure the promotion required.
What is still not established
capabilityremains the soft joint, untouched by this round.- The promotion rests on failures to reduce, which never prove impossibility. Two reductions failing is stronger than one, and it is not a proof.
- The causal argument (class 6) is corroboration and is not load-bearing.
Nothing implemented.