409bf57341
They were written outside git, so the reasoning that produces the design had no history and no way to be superseded. capabilities.md and geometry-vs-code.md are both known stale at this commit; they are tracked as-is so the corrections are visible as movement rather than as a rewrite.
246 lines
11 KiB
Markdown
246 lines
11 KiB
Markdown
# El — Language Design
|
|
|
|
**Status:** decisions recorded, design unwritten.
|
|
**Date:** 2026-08-17.
|
|
**Provenance:** decisions are Will's, taken in session. Items marked *proposed* are not
|
|
decided and are recorded only so the reasoning isn't lost. Items marked **OPEN** are
|
|
his to rule on and must not be guessed at.
|
|
|
|
Companion documents: `el-architecture.html` (the measured state — see §7 note on its
|
|
§04 scoreboard), and `design/completing-el.html` (whiteboard v0: the reduction, the
|
|
faculty table, the ordering principle).
|
|
|
|
---
|
|
|
|
## 1. The reduction
|
|
|
|
`language.md` §18.0 records five concerns that decayed into conventions:
|
|
|
|
| Concern | Fragments | The convention it became |
|
|
|---|---|---|
|
|
| Process identity | 0 guards | "check nothing is already running first" |
|
|
| Configuration | 20 env vars | "remember the right default here" |
|
|
| Durability | 62 call sites | "after you mutate, remember to persist" |
|
|
| Request auth | 10 per-route | "check the token in this handler too" |
|
|
| Index-after-append | 9 of 9 failed | "after you append, remember to index" |
|
|
|
|
The last row is the strongest available evidence about what this class of convention
|
|
is worth: **it failed at 100% of its sites.**
|
|
|
|
Every one of these is an obligation at a **crossing** — a point where a value moves
|
|
between regions. El can name a region and it can name a call. A call is procedural,
|
|
so the obligation degrades into something a human must remember to perform.
|
|
|
|
> **The generator, one level up:** El cannot name what holds at a crossing.
|
|
|
|
And underneath that:
|
|
|
|
> **The deeper absence:** El cannot name the thing meaning is made of.
|
|
|
|
`semel` appears in whitepaper §84, §86, §209, §737, in
|
|
`the-metaphysics-of-will-anderson.md`, and in session notes. It appears in **zero code
|
|
identifiers**. Every geometric concept in the system — region, neighbourhood, manifold,
|
|
world-tube — is defined in terms of a unit the language cannot say, while the code
|
|
underneath speaks in arrays, floats and offsets: the vocabulary of a voxel, a value at
|
|
a dumb address. Precisely the thing the impact brief says a semel is not.
|
|
|
|
`el_runtime.c` is a concept that leaked into C. `semel` never got that far — it did
|
|
not even decay into a convention.
|
|
|
|
---
|
|
|
|
## 2. DECIDED — `semel` is the primitive
|
|
|
|
**A semel is a difference that matters. The smallest unit of understanding.**
|
|
|
|
Not a node. Not a coordinate. Not a float.
|
|
|
|
The reasoning, in Will's terms:
|
|
|
|
- Meaning is position, and position is only ever relative. *"There is no atom of
|
|
meaning that isn't already a relation. It grounds on nothing but difference — two
|
|
points and the gap, and the gap is pure not-the-same."*
|
|
- A node doesn't mean. A node is a label at a location; labels don't mean.
|
|
- A lone coordinate doesn't mean either. Nothing means anything by itself.
|
|
- The smallest thing that can be understood is a **distinction**: *these two are not
|
|
the same.* Below that there is no content to apprehend.
|
|
- And a difference with nothing it matters to is not meaning — it is variation. The
|
|
mattering is not decoration; it is what makes it understanding rather than data.
|
|
|
|
**Consequence: relating is the floor, and the point is derived.** The
|
|
point-primitive / relation-primitive fork raised in session is not a fork. It was
|
|
answered by the definition.
|
|
|
|
### Historical note, to be recorded as fact rather than as origin story
|
|
|
|
The term was coined by Will on the pixel/voxel/texel pattern — *semantic element*,
|
|
and Latin *semel*, "once, a single time." It was recognised, not invented, from a
|
|
2019 experience he calls **semelation**: perceiving mind as a high-dimensional point
|
|
space. The initial reading was "pixels"; the correction to `semel` was made later and
|
|
was made on the **mechanism** — a pixel is a value at an address, and what was
|
|
perceived had no separate address and value.
|
|
|
|
Convergence worth citing, not deferring to: neural population geometry and
|
|
representational similarity analysis independently model cognition as position in a
|
|
high-dimensional space where similarity is distance.
|
|
|
|
---
|
|
|
|
## 3. DECIDED — `semel` lands first
|
|
|
|
By the ordering criterion already on the whiteboard: *which concept, added to El, most
|
|
increases the ability to add the next one?* Not size of payoff — **leverage on the next
|
|
iteration**, because El compiles itself and the fixpoint makes each turn provable in
|
|
2.9s.
|
|
|
|
**Every other concept on the board is defined in terms of `semel`. It is maximal on
|
|
that criterion by construction.**
|
|
|
|
---
|
|
|
|
## 4. DECIDED — `ground` is the checker
|
|
|
|
Whiteboard question 4 — *does `ground` in El mean the same thing as `ground` in the
|
|
engram?* — is answered: **yes, and it should be one implementation.**
|
|
|
|
If a declaration names a region, then type checking is asking whether the geometry
|
|
supports the use. That is not unification. **That is grounding**, and it is already
|
|
built, proven, and byte-identically reproducible:
|
|
|
|
```
|
|
cc -std=c11 -O2 -o gep_proof gep_proof.c -lm && ./gep_proof
|
|
|
|
C1 5 independent sources pos_mass 1.3500 n_indep=5 0.1000 → 0.9741 GROUNDED
|
|
C2 5 mutually-linked pos_mass 0.2700 n_indep=1 0.1000 → 0.1000 refused
|
|
C3 1 source, 5 parallel edges pos_mass 0.2700 n_indep=1 0.1000 → 0.1000 refused
|
|
```
|
|
|
|
Independence-weighted grounding is the general case; execution is the cheap case.
|
|
**Attestation is `verify` where nothing can be run** — as already implemented for
|
|
language in `authority.py`, where an LLM proposes and a primary source disposes.
|
|
|
|
At the point where the checker and the grounder are one mechanism, the language and
|
|
the mind stop being two things.
|
|
|
|
---
|
|
|
|
## 5. OPEN — Will's to rule on
|
|
|
|
### 5.1 What is a semel's representation in the language?
|
|
|
|
*Proposed, not decided:* a **displacement from `love = 0`** — a relation held as one
|
|
object. It reconciles "the address is the value" with "position is only ever relative,"
|
|
because a displacement *is* a relation and is still a single nameable thing.
|
|
|
|
If taken, the operator set falls out rather than being bolted on:
|
|
|
|
```
|
|
subtract(now, then) → what changed (growth, drift)
|
|
translate origin → empathy
|
|
rotate frame → reframe
|
|
project onto axis → a lens
|
|
change basis → analogy, metaphor, skill transfer
|
|
reflect an axis → negation, sarcasm
|
|
```
|
|
|
|
Three consequences that would hold:
|
|
|
|
- **Dimension must never appear in the type.** `semel` opaque, never `[768]float`.
|
|
The moment the arity is in the language, the manifold's implementation is in the
|
|
language, and adding a modality requires a runtime patch — which the standing rule
|
|
forbids.
|
|
- **Zero is the only literal.** Everything else is reached by displacement from it,
|
|
which makes `love = 0` the base case rather than philosophy adjacent to the type
|
|
system.
|
|
- **`magnitude` is standing.** Distance from origin is the same quantity
|
|
`gep_core.h` already computes.
|
|
|
|
### 5.2 Is `hold` one construct or two?
|
|
|
|
The obligation *before* a crossing (auth, guard) and the obligation *after* (persist,
|
|
index, free) may be one shape seen from both sides, or the seam may need both faces
|
|
named. This decides whether §19.3's prologue/epilogue seam is one construct or a pair.
|
|
|
|
**Precedent already shipping:** `@manager` makes `dharma_emit` outside the boundary a
|
|
**compile error, not a lint.** The concept is proven at N=1; the work is generalising
|
|
it and naming it.
|
|
|
|
**And the shape is already implemented in the learning region:** `L.reach_out` sits
|
|
between `L.detect_gap` and `L.verify`. You cannot reach out without a detected gap and
|
|
you cannot keep what returns without passing verify. **A hold is a neighbour.** The
|
|
obligation is not attached to the crossing — the obligation *is* the adjacent node.
|
|
That is why `reach_out` cannot be abused and why 62 persist sites could be.
|
|
|
|
### 5.3 What does a declaration bind?
|
|
|
|
If `cat` names a region rather than a struct — one that shifts and completes against
|
|
the engram and the neighbouring code — what is written at the declaration site, and
|
|
what is resolved at use? **This is the centre and it is specified nowhere.**
|
|
|
|
Falls out of 5.1 if displacement is taken: a declaration **locates** rather than
|
|
allocates.
|
|
|
|
### 5.4 Is the faculty list right?
|
|
|
|
Seven were derived from what broke. Derived-from-failure is a biased sample — it finds
|
|
what is loud, not what is missing. **What faculty is absent entirely and therefore
|
|
never failed?**
|
|
|
|
---
|
|
|
|
## 6. The residue map
|
|
|
|
What each construct must absorb, from §18.0 plus measured state:
|
|
|
|
| Residue | Count | Absorbed by |
|
|
|---|---|---|
|
|
| persist-after-mutate | 62 sites | `hold` (after-crossing) |
|
|
| auth-per-route | 10 sites | `hold` (before-crossing) |
|
|
| index-after-append | 9 of 9 failed | `hold` (after-crossing) |
|
|
| env var defaults | 20 | configuration declared once |
|
|
| process identity | 0 guards | `hold` (before-crossing) |
|
|
| `geometry_free` at every call site | every site | ownership follows from `semel` |
|
|
| five ingest functions where there is one | 5 → 1 | `protocol` / `impl` |
|
|
| `el_runtime.c` | 20,504 lines | faculty decomposition, ordered after `semel` |
|
|
|
|
---
|
|
|
|
## 7. Notes carried forward
|
|
|
|
**`el-architecture.html` §04 needs its numbers sourced or cut.** An audit found the
|
|
faculty scoreboard — `Ingest 2 min → 0 nodes`, `Recall self ranked 8th`,
|
|
`Body CC 356 / 1,626 ln`, `the verifier answers in 2.9s`, `5 of 13 native suites
|
|
failing` — has no supporting evidence in the repository, under a footer asserting
|
|
*"nothing is inferred and presented as fact."* Against a corpus whose documents
|
|
supersede their own conclusions in place, that is the one file that would not survive
|
|
scrutiny. Fix or remove.
|
|
|
|
**Source as a projection surface is claimed and unimplemented.** `el-architecture.html`
|
|
§147/§150: *"if source is a surface, then emitting a corrected file is projection."*
|
|
Greps for `surface_profile_code`, `emit_source` → zero hits.
|
|
|
|
It is not unbacked. **It was demonstrated on 2026-08-14** — three faculties (phonetic,
|
|
semantic, procedural) projected into TypeScript, a surface the system had never used,
|
|
with the network severed. Recovered at
|
|
`~/Development/neuron-technologies/andre-server-recovered/` and copied into
|
|
`evidence/03-andre-demo/`. The claim needs bringing home to El, not proving.
|
|
|
|
**`hold` is the highest-leverage construct after `semel`** — it collapses 62 + 10 + 9
|
|
sites and unblocks the runtime extraction. §19.3 names the prologue/epilogue seam as
|
|
the prerequisite and its stated blocker has expired.
|
|
|
|
---
|
|
|
|
## 8. What is not decided and must not be guessed
|
|
|
|
- The representation of `semel` (§5.1)
|
|
- One `hold` or two (§5.2)
|
|
- What a declaration binds (§5.3)
|
|
- The missing faculty (§5.4)
|
|
- Sequencing after `semel` — the ordering criterion decides it, not preference
|
|
|
|
---
|
|
|
|
*Recorded 2026-08-17. Everything in §2, §3 and §4 is decided. Everything in §5 is open
|
|
and is Will's. Nothing here was inferred from a document that was not read.*
|