Skip to content
← Documentation

docs/universality-proof.md


Cognithamus — Universality Proof

Status: PROOF. Not implemented. Software is forgotten. The core is tested against five domains that share no vocabulary with each other or with engineering.

Under test — six concepts: World, Subject, Fact, Condition, Evidence, Time. Four fact families: condition, measure, exchange, placement. Six subject kinds: resource, work, actor, agreement, artifact, environment. Twenty conditions across Availability, Progress, Capacity, Integrity, Exposure, Economics.

Verdict: no seventh primitive is required. Four refinements within the existing concepts are required, and the test found all four. Each is recorded below with the domain that exposed it.


1. Hospital

Event. At 03:12 a ventilator in ICU bed 12 fails its self-test during use. The patient's care episode is moved to bed 9. The ICU is now at capacity.

Concept Instance
Subject resource:hosp-a/icu/ventilator-12
Subject environment:hosp-a/icu
Subject work:hosp-a/care-episode/adm-88231
Subject actor:hosp-a/nurse/j-okoro
condition  unavailable   of resource:…/ventilator-12
           validAt 03:12  evidence "self-test fault E14, device log"

exchange   moved work:…/adm-88231
           from environment:…/icu/bed-12  to environment:…/icu/bed-9
           validAt 03:19  evidence "transfer record TR-4412"

placement  actor:…/j-okoro at environment:…/icu  since 03:12
           evidence "shift roster 2026-07-31 night"

measure    environment:…/icu  metric occupied-beds  value 12
           limit 12 enforced  evidence "bed board snapshot 03:20"

The saturation condition follows from the measure; the platform derives it, the connector does not assert it.

No new concept. Remaining connector vocabulary: ventilator, ICU, bed, care episode, fault code E14, transfer record — all in subtypes, evidence strings and metric names. None reaches the core.

⚠ Refinement 1 exposed here. exchange as specified is { from, to, observedAt, evidence } — it records between what but never what moved. "The patient moved from bed 12 to bed 9" and "the oxygen feed was rerouted from bed 12 to bed 9" are indistinguishable. exchange requires a moved: SubjectRef. That is a missing field naming an existing core concept, not a new primitive.


2. Manufacturing plant

Event. Line 3 halts at 14:02. A forming die has worn past tolerance. The production order behind it stops advancing, threatening a delivery commitment.

Concept Instance
Subject resource:acme/plant-7/line-3
Subject artifact:acme/plant-7/die-4471
Subject work:acme/production-order/PO-99120
Subject agreement:acme/delivery/contract-5512
condition  degraded   of resource:…/line-3
           validAt 14:02  evidence "SCADA tag L3_RATE = 0"

condition  drifted    of artifact:…/die-4471
           validAt 14:02  evidence "CMM measured 4.02mm against spec 4.00 ±0.01"

condition  stalled    of work:…/PO-99120
           validAt 14:02  evidence "no units completed since 14:02"

measure    resource:…/line-3  metric throughput  value 0  unit units/hour
           limit 120  NOT enforced   evidence "rated capacity, nameplate"

condition  overcommitted  of agreement:…/contract-5512
           evidence "committed 40,000 by 08-15; run rate implies 31,200"

limit … NOT enforced is doing real work here: a rated line speed is an aspiration, not a constraint the plant enforces. The world may report the number but may not draw a capacity meter from it.

No new concept. Remaining vocabulary: die, SCADA, CMM, tolerance, production order, nameplate.


3. Shipping company

Event. Container MSKU7654321 has sat at Rotterdam since 26 July. Customs placed a hold because the declaration is incomplete. Demurrage is accruing past the free period.

Concept Instance
Subject artifact:maersk/container/MSKU7654321
Subject environment:maersk/port/NLRTM
Subject work:maersk/shipment/BL-88231
Subject artifact:maersk/customs-declaration/DEC-4412
Subject agreement:maersk/booking/BK-7781
placement  artifact:…/MSKU7654321  at environment:…/NLRTM
           since 2026-07-26T09:40Z   evidence "gate-in scan GI-11928"

condition  blocked     of work:…/BL-88231
           evidence "customs hold H2 raised 2026-07-28"

condition  unverified  of artifact:…/DEC-4412
           evidence "HS code absent on line 3"

measure    artifact:…/MSKU7654321  metric dwell  value 5  unit days
           evidence "gate-in 07-26 to now"

condition  overspend   of agreement:…/BK-7781
           evidence "demurrage EUR 1,240 beyond 3 free days"

⚠ Refinement 2 exposed here, and it is the sharpest finding. placement was specified as { actor: ActorRef; at: SubjectRef; since }. A container is not an actor. Neither is a patient, a die, or a spacecraft. Locatedness is not a property of participants — it is a property of things.

placement must be { subject: SubjectRef; at: SubjectRef; since }. This is a widening of an existing family, not a new one — and it makes the core smaller, because ActorRef disappears entirely and actor becomes purely a subject kind with no residual special case anywhere.

No new concept. Remaining vocabulary: container, demurrage, bill of lading, HS code, gate-in, TEU.


4. University

Event. CS101 section A is over-enrolled for autumn term. The only qualified lab is fully booked, so a required practical cannot be scheduled, putting an accreditation requirement at risk.

Concept Instance
Subject resource:univ/course-section/CS101-A
Subject resource:univ/eng/lab-2
Subject actor:univ/staff/dr-shah
Subject environment:univ/term/2026-fall
Subject agreement:univ/accreditation/abet-2027
measure    resource:…/CS101-A  metric enrolment  value 142
           limit 120  enforced   evidence "registrar snapshot 07-31"

condition  overcommitted  of resource:…/CS101-A
           evidence "142 enrolled against an enforced cap of 120"

measure    resource:…/lab-2  metric booked-sessions  value 40
           limit 40  enforced   evidence "timetable 2026-fall"

condition  saturated      of resource:…/lab-2
condition  blocked        of work:univ/requirement/CS101-practical
           evidence "no lab session available in term 2026-fall"

condition  misconfigured  of agreement:…/abet-2027
           evidence "criterion 5 requires a practical component"

placement  actor:…/dr-shah at resource:…/lab-2  since 2026-09-08T09:00Z

Note that unmonetised and vulnerable never appear. A domain not using part of the taxonomy is not a failure — a closed vocabulary is only wrong if a domain needs something it lacks.

No new concept. Remaining vocabulary: enrolment, section, term, accreditation criterion, timetable.


5. Space mission

Event. Reaction wheel 3 shows friction rising 12% per week. A science observation is deferred. The telemetry establishing this was true at the spacecraft 45 minutes before anyone on Earth could know it.

Concept Instance
Subject resource:esa/juice/reaction-wheel-3
Subject work:esa/juice/observation/OBS-2291
Subject artifact:esa/juice/telemetry-frame/88213
Subject agreement:esa/dsn/pass-4471
Subject environment:esa/juice/phase/cruise
condition  degraded  of resource:…/reaction-wheel-3
           validAt    2026-07-31T04:15Z   ← true at the spacecraft
           recordedAt 2026-07-31T05:00Z   ← knowable on Earth
           evidence "TLM RW3_TRQ 0.8 mNm, +12%/wk, frame 88213"

measure    resource:…/reaction-wheel-3  metric friction-torque
           value 0.8  unit mNm
           validAt 04:15  recordedAt 05:00

condition  queued    of work:…/OBS-2291
           evidence "deferred to window 2026-08-03, planning cycle 118"

measure    agreement:…/pass-4471  metric downlink-budget  value 1.0
           limit 1.0  enforced  evidence "DSN allocation exhausted"
condition  saturated of agreement:…/pass-4471

⚠ Refinement 3 exposed here. A single timestamp cannot express this. When something was true and when it became knowable are different instants, and the gap is 45 minutes here, weeks for a monthly batch, and seconds for a bedside monitor. Without both, "what did we know at time T" and "what was true at time T" collapse into one — which silently breaks replay, and would let a world claim foreknowledge it never had.

Facts require bi-temporality: validAt and recordedAt. Both are instants, so this is a refinement of Time, already core — not a seventh primitive.

No new concept. Remaining vocabulary: reaction wheel, mNm, DSN pass, telemetry frame, planning cycle, light-time.


6. Refinement 4 — units and metrics must be open

Across the five domains the metrics are: occupied-beds, throughput, dwell, enrolment, booked-sessions, friction-torque, downlink-budget. The units are: beds, units/hour, days, students, sessions, mNm, fraction.

No closed platform list could contain these. Metric identifiers and units must be connector-declared — namespaced and registered in the manifest with a stated dimension — exactly as subject subtypes are.

The closure that matters is on conditions, not on metrics. A condition is a judgement about state and must be shared to prevent drift; a metric is a measurement and only needs to be declared and dimensioned. That asymmetry is the correct one, and this test is what makes it visible.


7. Verdict

Domain New primitive required? Refinement exposed
Hospital No exchange needs moved
Manufacturing No — (confirmed enforced distinction)
Shipping No placement must be subject-at-subject
University No — (confirmed partial taxonomy use is fine)
Space mission No facts need validAt + recordedAt

Four refinements, zero new primitives. Every one is a missing field or a widened type inside the six concepts:

  1. exchange.moved: SubjectRefSubject, already core
  2. placement.subject replaces placement.actorSubject, already core
  3. validAt / recordedAtTime, already core
  4. metric and unit identifiers are connector-declared — Evidence/provenance

The distinction being claimed

Software-engineering-independence would mean the core avoids naming repos and pods. Domain-independence is stronger: the core avoids naming any domain's furniture, and five domains sharing no vocabulary with one another expressed a real operational event in the same four sentences.

The strongest single piece of evidence is Refinement 2. placement was actor-shaped because Cognithamus grew up watching agents move around a city. A shipping container broke that assumption — and the fix made the core smaller, not larger, by deleting ActorRef entirely. A primitive set that gets simpler under adversarial load is one that was over-fitted before and is converging now.

What is not proven

These five domains were chosen by me. That is a real limit: I selected the tests the core then passed. The honest claim is that the core survived five unrelated domains and got smaller doing it — not that no domain exists which could break it. The gap-reporting requirement in the connector contract is what converts that residual risk into future evidence rather than future surprise.


8. Consolidated core, after all proofs

core/
  time       Instant, Window. validAt and recordedAt.
  evidence   Citation, observer, provenance.
  subject    URN identity. 6 kinds, connector-declared subtypes.
  condition  20 conditions in 6 families. Closed.
  fact       condition | measure | exchange | placement.
  world      Canonical state at an instant. No geometry.

Six modules. Four fact families. Zero domain vocabulary. Zero outgoing imports.