Files
memex/notes/passepartout-whitehead.org
Amr Gharbeia 4e9431ec1d memex: update passepartout submodule → v0.7.2, add notes
passepartout v0.7.2 (Gate Trace + HITL + Search + 11 more features):
- Gate trace visualization with Ctrl+G toggle
- HITL inline panels with styled collapse on approve/deny
- Agent identity file + /identity command
- Safe-tool read-only allowlist
- Message search mode with Up/Down nav and highlights
- Context budget visibility with section breakdown
- Session rewind /sessions /resume /rewind
- Undo/redo per operation
- Context debugging /context why /context dropped
- Tool hardening (timeouts, write verify, read-only cache)
- Tag stack severity tiers + trigger counts
- Merkle provenance audit + audit-verify
- Self-help /help <topic> reads USER_MANUAL.org
- Live CONFIG section in system prompts
- Pads: Page Up/Down scroll by 10 lines

Core 92/92  TUI Main 104/104  TUI View 29/29  Neuro 13/13
2026-05-08 21:56:11 -04:00

174 lines
12 KiB
Org Mode
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#+TITLE: Whitehead's Logic & Process Philosophy → Passepartout
#+FILETAGS: :notes:whitehead:logic:philosophy:architecture:passepartout:
* Purpose
Alfred North Whitehead's two major bodies of work — /Principia Mathematica/ (19101913, with Bertrand Russell) and /Process and Reality/ (1929) — are assessed for their applicability to Passepartout's architecture, gate stack, knowledge graph, and self-descriptive vocabulary.
* Historical Connection: PM → Lisp
Principia Mathematica is a direct ancestor of Lisp. Alonzo Church's lambda calculus (1930s), from which John McCarthy built Lisp (1958), was a response to PM's foundational program. PM's notation:
#+BEGIN_EXAMPLE
(x).φx ≡ (for all x, φ holds of x)
(∃x).φx ≡ (there exists x such that φ holds)
* x̂(φx) ≡ (the class of x satisfying φ)
ιx(φx) ≡ (the unique x satisfying φ)
#+END_EXAMPLE
These map directly to Lisp: ~(lambda (x) (φ x))~, ~(class (x) (φ x))~, ~(the (x) (φ x))~. McCarthy cited PM as an influence. The connection is genetic, not metaphorical.
* Contribution 1: Ramified Theory of Types → Gate Stack
** The Problem PM Solved
Russell's paradox ("the set of all sets that do not contain themselves") proved that unrestricted comprehension produces contradictions. PM's solution: a /ramified theory of types/ that assigns every propositional function a type level. A function can only apply to arguments of a lower type — self-application is syntactically invalid.
** The Problem Passepartout Faces
Passepartout's dispatcher gate stack (vectors 08b active, 918 planned) currently enforces safety through runtime predicates. But there is no /structural/ guarantee preventing a request from modifying the rules that validate it. Gate vector 2 (self-build-core) catches this empirically — a request modifies core → rejected. But this is a heuristic, not a theorem.
** The PM-Type Solution
Assign every cognitive tool a ~:type-level~ integer. Assign every gate vector a ~:type-level~ integer. The dispatcher framework, before running any gate predicate, checks:
#+BEGIN_SRC lisp
(defun gate-type-check (signal gate-vector)
(let ((signal-type-level (getf (signal-meta signal) :type-level))
(gate-type-level (gate-vector-type-level gate-vector)))
(if (>= signal-type-level gate-type-level)
:reject-type-violation ; self-referential — reject
:pass))) ; safe — proceed to predicate
#+END_SRC
A request to modify dispatcher rules (type-level 5) cannot pass a gate of type-level 4 or lower. No predicate needed — it's a structural prohibition, just as PM's theory of types makes self-membership syntactically invalid.
** Concrete Implementation
- ~defgate~ gains a ~:type-level~ keyword argument (default 0)
- Each cognitive tool registered via ~def-cognitive-tool~ inherits a ~:type-level~
- The dispatcher's ~run-gates~ function checks type-level before predicate evaluation
- Gate vector 2b (self-build-core) at type-level 5; write-file at type-level 3; read-file at type-level 1
- ~30 lines in ~core-dispatcher.lisp~~; no new dependencies; v0.7.2 viable
* Contribution 2: Theory of Descriptions → Reference Resolution
** The Problem PM Solved
PM's theory of descriptions addresses: "the current king of France is bald" — a sentence that seems to refer to something that doesn't exist. PM formalizes:
#+BEGIN_EXAMPLE
ιx(φx) = "the unique x such that φ holds"
#+END_EXAMPLE
A statement about ~ιx(φx)~ is false (not meaningless) when there is no unique x satisfying φ. This is the origin of definite description semantics in modern linguistics and programming.
** The Problem Passepartout Faces
When the user says "the function that validates secrets," the agent must resolve this to a specific code entity. Natural language is ambiguous — there might be multiple functions matching the description. Resolving to the wrong one causes incorrect actions.
** The PM-Description Solution
A cognitive tool that checks descriptional uniqueness before resolution:
#+BEGIN_SRC lisp
(def-cognitive-tool :resolve-reference
(query-string &key (max-candidates 10)
(context-path *current-context*))
"Resolve a definite description to a unique referent."
(let ((candidates (search-knowledge-graph query-string
:source-path context-path
:limit max-candidates)))
(cond
((null candidates)
(values nil :no-referent query-string))
((> (length candidates) 1)
(values nil :ambiguous candidates))
(t
(values (first candidates) :unique nil)))))
#+END_SRC
~40 lines as a skill in v0.7.2. When VivaceGraph ships (v3.0.0), descriptions become native Prolog queries with uniqueness constraints.
* Contribution 3: Process and Reality → Architectural Vocabulary
Whitehead's process philosophy is a metaphysics of /becoming/ rather than /being/. The fundamental entities are not substances (atoms, objects) but /processes/ (/actual entities/, /occasions of experience/. This maps precisely to Passepartout's pipeline architecture.
** Mapping Whiteheadian Concepts to Passepartout
| Whiteheadian Concept | Passepartout Mapping | Significance |
|--------------------------------|---------------------------------------------|----------------------------------------------|
| Actual entity (actual occasion) | An event/signal in the pipeline | The fundamental unit — everything else is abstraction |
| Prehension | A gate's grasping of a signal | How one entity "takes account of" another |
| Positive prehension | A gate passing a signal | The signal is included in the concrescence |
| Negative prehension | A gate rejecting a signal | The signal is excluded from the concrescence |
| Concrescence | The pipeline process from input to output | Many prehensions → one satisfaction |
| Subjective aim | The agent's active goal / plan | The telos directing which prehensions matter |
| Eternal objects | Pure concepts in the knowledge graph | Universals — types, functions, categories |
| Nexus | A cluster of related memory objects | A Merkle subtree |
| Satisfaction | The final agent response | The "completed" entity — determinate output |
| Transition | From one signal to the next | The pipeline's forward motion |
| Causal efficacy | The agent's past context (memory) | What is prehended from the settled past |
| Presentational immediacy | The current signal (user input) | What is prehended from the immediate present |
** The Foveal-Peripheral Model in Whiteheadian Terms
Passepartout's foveal-peripheral model (near focus = current signal, far periphery = context window + memory) maps to Whitehead's distinction:
- /Presentational immediacy/ (perception of the contemporary world, vivid but superficial) = foveal focus on the current signal
- /Causal efficacy/ (prehension of the past, dim but causally powerful) = peripheral context from memory
This is not merely poetic. Whitehead argues that all perception is in the "mixed mode" of symbolic reference — the synthesis of presentational immediacy and causal efficacy. Passepartout's think() function does exactly this: it synthesizes the current signal (presentational immediacy) with context from memory (causal efficacy) into a response.
** Why This Matters for Self-Documentation
Passepartout already has the pipeline. Whitehead gives it a /descriptive vocabulary/:
- "I am concrescing signal 47 through gates 0-8" ≠ poetry — it's a precise description of dispatcher operation.
- "Gate 3 has negatively prehended signal 136" = "the secret-content gate rejected signal 136."
- "The satisfaction includes a file-write prehension with Merkle commit abc123" = "the response contains a file write with the given merkle hash."
The agent can use this vocabulary in its ~/why~ output (gate trace in human-readable form) and in the ARCHITECTURE.org documentation. The terms are precise, standard (Whitehead's /Process and Reality/ is a recognized philosophical text), and already map perfectly to Passepartout's design.
* Contribution 4: VivaceGraph + PM Types (v3.0.0)
When the knowledge graph ships in v3.0.0, every entity inherits PM's type hierarchy:
- Entities have ~:pm-type-level~ metadata
- Queries cannot return entities of the same level as the querying function
- Self-referential knowledge becomes structurally impossible — no "this entity defines its own type level"
- The KG query layer enforces this at the Prolog level, not through runtime checks
This is the same contribution as Contribution 1, but applied to the /knowledge base/ rather than the /execution layer/. The dispatcher prevents self-referential /actions/; the KG prevents self-referential /facts/.
* What Would NOT Be Useful
** Implementing PM's Full Formalism
PM takes 300+ pages to prove ~1+1=2~. The notation (~*54·43~) is notoriously unreadable. Using it as a reasoning engine would be a catastrophic waste of effort — the /ideas/ (type theory, descriptions, propositional functions) are what matter, not the notation. Implement the ideas, not the pages.
** Process Theology
Whitehead's later work includes a concept of God (the "principle of concretion," the "Eros of the Universe") that has no useful mapping to an agent architecture. Skip it.
** Full Whiteheadian Metaphysics
The 25 categories of existence, the eight categories of explanation, the nine categoreal obligations — these are philosophical commitments, not engineering requirements. Select the concepts that map to the architecture; don't build a process-philosophy engine.
* Summary: What to Ship and When
| Contribution | Lines | Depends On | Earliest Release | Impact |
|----------------------------+-------+----------------+------------------+-----------------------------------------------|
| Type-level gates | ~30 | dispatcher | v0.7.2 | Provable safety against self-modification |
| Description tool | ~40 | search | v0.7.2 | Better reference resolution |
| Whiteheadian doc vocabulary | prose | docs/ | anytime | Sharper architectural self-description |
| KG type hierarchy | built-in | VivaceGraph | v3.0.0 | Structural anti-self-reference in facts |
Whitehead is the rare case where philosophy is directly engineerable. PM's type theory /is/ the solution to a real Passepartout problem; the process ontology /describes/ the pipeline more precisely than any existing vocabulary.
* Relation to Passepartout's Neuro-Symbolic Architecture
Passepartout is level 4 neuro-symbolic (symbolic gates + neural LLM, deterministic components coordinate heterogeneous systems). PM's type theory adds level-5 properties: /structural/ safety guarantees rather than /empirical/ ones. The dispatcher becomes not just a runtime gate stack but a type-theoretic framework where category errors are impossible by construction — just as PM made Russell's paradox impossible by construction.
The Whiteheadian vocabulary reinforces the architectural identity: Passepartout is not a chatbot with safety checks. It is a /process/ — a continuous concrescence of prehensions producing satisfactions — whose safety is guaranteed by the type structure of the prehending entities.