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.
11 KiB
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.
semelopaque, 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 = 0the base case rather than philosophy adjacent to the type system. magnitudeis standing. Distance from origin is the same quantitygep_core.halready 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
holdor 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.